2023csp-j(选择题)

目录

单项选择题:

第1题

第2题

第3题

第4题

第5题

第6题

第7题

第8题

第9题

第10题

第11题

第12题

第13题

第14题

第15题


单项选择题:

第1题

在 C++中,下面哪个关键字用于声明一个变量,其值不能被修改?()

A.unsigned

B.const

C.static

D.mutable

【参考答案】B

【知识点】关键字

【解析】

unsigned:无符号变量,默认是非负数

const:恒定变量,无法被修改

static:静态局部变量,类似于全局变量

mutable:可变的变量。mutable也是为了突破const的限制而设置的。被mutable修饰的变量(mutable只能用于修饰类的非静态数据成员),将永远处于可变的状态


第2题

八进制数12345670(8进制)和07654321(8进制)的和为()。

A.222222218

B.211111118

C.221111118

D.222222118

【参考答案】D

【知识点】八进制计算

【解析】逢8进1,对齐计算就好了。


第3题

阅读下述代码,请问修改 data 的 value 成员以存储3.14,正确的方式是()。

union Data{

     int num;

     float value;

     char symbol;

};

union Data data;

A.data.value = 3.14;

B.value.data=3.14;

C.data->value = 3.14;

D.value->data = 3.14;

【参考答案】A

【知识点】联合体

【解析】union是联合体,它内部只能有一个变量起作用,用法和struct类似,所以答案选A,其中CD选项的“->”用于指针。


第4题

假设有一个链表的节点定义如下:

struct Node{

     int data;

     Node* next;

};

现在有一个指向链表头部的指针:Node* head,如果想要在链表中插入一个新节点。其成员 data 的值为42,并使新节点成为链表的第一个节点,下面哪个操作是正确的?()

A. Node* newNode = new Node; newNode -> data = 42; newNode -> next = head; head = newNode;

B.Node* newNode = new Node; head -> data = 42; newNode -> next = head; head = newNode;

C.Node* newNode = new Node; newNode -> data = 42;head -> next = newNode;

D.Node* newNode = new Node; newNode -> data = 42;newNode->next = head;

【参考答案】A

【知识点】链表的插入

【解析】

向链表头部中插入数据newNode的流程是:

1. 初始化待插入数据newNode:Node* newNode = new Node;newNode -> data = 42;

2. 将newNode的next指针指向:head:newNode -> next = head;

3. 将head指针指向newNode:head = newNode;


第5题

根节点的高度为1,一棵拥有 2023 个节点的三又树高度至少为()。

A.6

B.7

C.8

D.9

【参考答案】C

【知识点】树的结构

【解析】满三叉树的节点数为  s=(3^{n}-1)/2   ,2023个节点介于7层到8层之间,所以最少需要8层二叉树,所以至少8层


第6题

小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他体息,则小明一共有()种选择时间段的方案。

A.31

B.18

C.21

D.33

【参考答案】B

【知识点】排列组合

【解析】只选一个练习时间段的有7种,选2个练习时间段的有10种,选3个联系时间段的有1 种,故总数为18 种


第7题

以下关于高精度运算的说法错误的是().

A.高精度计算主要是用来处理大整数或需要保多位小数的运算。

B.大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将

除数乘以某个数,通过减法得到新的被除数,并累加商。

C.高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。

D.高精度加法运算的关键在于逐位相加并处理进位。

【参考答案】C

【知识点】高精度计算

【解析】高精度乘法的运算时间与两个整数的位数的乘积有关,而不仅仅是较长者的位数。位数的增加会导致乘法的复杂度呈指数级增长,需要更多的计算步骤和时间。


第8题

8.后缀表达式“6 2 3 + - 3 8 2 / + * 2 ^ 3 +”对应的中缀表达式是()。

A.((6 - (2 + 3)) * (3 + 8 / 2)) ^ 2 + 3

B.6 - 2 + 3 * 3 + 8 / 2 ^ 2 + 3

C.(6 - (2 + 3)) * ((3 + 8 / 2) ^ 2) + 3

D.6 - ((2 + 3) * (3 + 8 / 2)) ^ 2 + 3

【参考答案】A

【知识点】后缀表达式与中缀表达式

【解析】

根据后缀表达式到中缀表达式的转换规则,我们可以逆序遍历后缀表达式并使用栈来构建中缀表达式。遇到数字时,直接将其入栈;遇到运算符时,从栈中弹出相应数量的操作数,并按照运算符和操作数之间的优先级进行括号添加,然后将结果再次入栈。

对于给定的后缀表达式 6 2 3 + - 3 8 2 / + * 2 ^ 3 + ,我们可以通过上述方法得到中缀表达式为:

因此,选项 A. ((6 - (2 + 3)) * (3 + 8 / 2)) ^ 2 + 3 是正确的答案。


第9题

数101010(2进制)和166(8进制)的和为 ()。

A.101100002

B.2368

C.15810

D.A016

【参考答案】D

【知识点】进制转换

【解析】

将二进制数

图片

转换为十进制得到 $42$,将八进制数

图片

转换为十进制得到118。

将十进制数42和118相加得到160。

现在我们将160转换为十六进制,得到

图片


第10题

假设有一组字符(a,b,c,d,e,f),对应的频率分别为 5%、9%、12%、13%、16%、45%。请问以下哪个选项是字符 a,b,c,d,e,f分别对应的一组哈夫曼编码? ()

A.1111, 1110, 101, 100, 110, 0

B.1010,1001,1000,011, 010,00

C.000,001,010,011, 10, 11

D.1010,1011,110,111, 00,01

【参考答案】A

【知识点】哈夫曼编码

【解析】

根据哈夫曼编码的生成过程,我们可以按照如下步骤得到字符 a,b,c,d,e,f分别对应的哈夫曼编码:

1.将所有字符按照出现频率从小到大排序,得到字符序列 {a,b,c,d,e,f}

2.取出频率最小的两个字符 a和 $b$,构建一棵二叉树,并将其根节点的频率设置为 a和 b 的频率之和(即 5%+9%=14%)。

3.将原序列中的a和b删除,并将新生成的节点插入到序列中,得到新的字符序列{c,d,e,f,ab}。

重复步骤 2和 3,直到得到一棵包含所有字符的二叉树。

对于每条从根节点到叶子节点的路径,用 0表示向左走,用 1表示向右走,得到对应字符的哈夫曼编码a(1111),b(1110),c(101),d(100),e(110),f(0)


第11题

给定一棵二叉树,其前序遍历结果为: ABDECFG,中序遍历结果为: DEBACFG。请问这树的正确后序遍历结果是什么?()

A.EDBFGCA

B.EDGBCFA

C.DEBGFCA

D.DBEGFCA

【参考答案】A

【知识点】二叉树的遍历

【解析】根据前序遍历和中序遍历画出二叉树,根据求得的二叉树,生成后序遍历。


第12题

考虑一个有向无环图,该图包含 4 条有向边:(1,2),(1,3),(2,4)和(3,4)。以下哪个选项是这个有向无环图的一个有效的拓扑排序?()

图片

A.4, 2, 3, 1

B.1, 2, 3, 4

C.1, 2, 4, 3

D.2, 1, 3, 4

【参考答案】B

【知识点】有向图的拓扑序

【解析】

拓扑排序是有向无环图中对顶点进行排序的一种方法,使得所有的有向边从排在前面的顶点指向排在后面的顶点。根据提供的有向边 (1,2),(1,3),(2,4),(3,4),我们可以确定拓扑排序的正确选项。

根据拓扑排序的定义,我们需要先排列没有前置依赖的顶点。根据上述关系,只有顶点 1没有前置依赖,所以它必须是拓扑排序的第一个顶点。

接下来,根据关系 (1,2)和 (1,3),顶点 2 和 3 是直接依赖于顶点 1的,它们应该在 1 后面。

最后,根据关系 (2,4) 和 (3,4),顶点 4 是直接依赖于顶点 2 和 3的,所以它们也应该在 2 和 3 后面。

所以有效的拓扑排序应该为 1,2,3,4 或者 1,3,2,4


第13题

在计算机中,以下哪个选项描述的数据存储容量最小? ()

A.字节(byte)

B.比特(bit)

C.字(word)

D.千字节 (kilobyte)

【参考答案】B

【知识点】计算机储存单位

【解析】

比特bit是计算机中最基本的单位,用来表示二进制数据的单个位,可以取0或1两个值。比特是计算机中最小的存储单位。

字节byte是计算机中常用的数据存储单位,它由8个比特组成,可以用来表示一个字符或8个二进制位。字节是相对于比特来说更常用的单位。

字word通常指计算机中一个机器字的大小,表示计算机一次能够处理的二进制位数,其大小由机器的架构决定。

千字节kilobyte是计算机中常用的数据存储容量单位,等于1024字节,用来表示较小的数据量。


第14题

一个班级有10个男生和12个女生。如果要选出一个3人的小组,并且小组中必须至少包含1个女生,那么有多少种可能的组合? ()

A.1420

B.1770

C.1540

D.2200

【参考答案】A

【知识点】排列组合

【解析】

要选出一个 3 人的小组,并且小组中必须至少包含 1个女生。

我们可以按照以下几种情况进行计算:

情况一:选取 1 个女生和 2个男生。

选择女生的方式有 12 种,选择男生的方式有

图片

总共的组合方式为 12 * 45 = 540 种。

情况二:选取 2 个女生和 1个男生。

选择女生的方式有

图片

选择男生的方式有 10种。

总共的组合方式为 66 * 10 = 660 种。

情况三:选取 3个女生。

选择女生的方式有

图片

总共的组合方式为220种。

综上所述,总共的可能的组合方式为 540 + 660 + 220 = 1420 种


第15题

以下哪个不是操作系统?()

A.Linux

B.Windows

C.Android

D.HTML

【参考答案】D

【知识点】操作系统

【解析】

HTML(超文本标记语言)是一种用于创建网页的标记语言,它并不是操作系统。HTML主要用于描述网页的结构和内容,而不是提供操作系统所需的核心功能,如管理资源、调度任务和控制硬件等。

Linux、Windows 和 Android都是常见的操作系统。

Linux 是一种开源的操作系统,被广泛应用于服务器和嵌入式设备等领域。

Windows 是由微软公司开发的操作系统,用于个人电脑和服务器等。

Android是由谷歌开发的移动设备操作系统,用于智能手机、平板电脑等移动设备。

  • 19
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源来源于网络,如有侵权,私信立删。 CSP-J/S第一轮时间 CSP-J/S第一轮分为:CSP-J1和CSP-S1。和NOIP第一轮时间一样,CSP-J/S第一轮认证在10月份第三个星期六进行。 CSP-J/S第一轮考察重点 第一轮认证为笔试或机试,主要测试选手有关计算机方面的基本知识,第一轮为资格测试。从2020年开始,全部为机试。 CSP-J/S第一轮报名方式 参加CSP-S/J两组两轮认证均须在网上注册报名,注册网站为http://rg.noi.cn。参加认证者必须如实填写个人信息报名,包括但不限于姓名、身份证号、出生日期、性别、就学(学籍学校)/就职单位等,信息一旦注册,不得修改,如有错误,责任自负。 CSP-J/S第一轮认证考点 省认证点由CCF授权的CSP非专业级别省认证组织单位设置。 1、第一轮认证点:由省认证组织单位总负责人设置,每个认证点人数不应少于20人。 2、未经批准的认证点,其认证成绩不予承认。 认证费用 第一轮CSP-S/J组:50元/人(该费用不包括食宿及交通费)。 CSP-J/S第一轮认证试题组成 CSP-J/S第一轮在10月份第三个星期六进行,其中CSP-J1认证时间为周六9:30-11:30,CSP-S1认证时间为周六14:30-16:30。考试时长为2小时,内容为笔试或机试(从2020年开始全部为机试),满分100分。 试题由三部分组成: ① 选择题(共15题,每题2分,共计30分) CSP-S1的前10道题为单选题,后10道题为不定项选择题(只有全部选对才得分,否则不得分);CSP-J1的前15道题都是单选题。 ② 程序阅读理解题(共3题,共计40分) 题目给出一段程序(不一定有关于程序功能的说明),考生通过阅读理解该段程序进行答题,分为选择题和判断题。 ③ 程序完善题(共3题,共计30分) 题目给出一段关于程序功能的文字说明,然后给出一段程序代码,在代码中略去了若干个语句或语句的一部分并在这些位置给出空格,要求考生根据程序的功能说明和代码的上下文,选择对应答案 。三题皆为选择题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值