没有合适的资源?快使用搜索试试~ 我知道了~
2023年信息学奥赛CSP-J第一轮比赛真题的详细解析
需积分: 5 1 下载量 48 浏览量
2024-05-09
10:00:10
上传
评论
收藏 469KB PDF 举报
温馨提示
试读
13页
内容概要: 该内容为信息学奥赛CSP-J第一轮比赛真题的详细解析,包含所有题目类型的详细解析过程,供需要的学生和家长使用。 使用范围: 参加信息学奥赛的高中生、初中生、小学生
资源推荐
资源详情
资源评论
第 1 页 共 13 页
2023 C CF 非专业级别软件能力认证第一轮
(CSP-J1)入门级 C++语言试题
认证时间:2023 年 9 月 16 日 09:30~11:30
考生注意事项:
试 题纸共有 10 页,答题纸共有 1 页,满分 100 分。请在答题纸上作答,
写在试题纸上的
一律无效。
不 得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资
料。
一、单项选择题(共 15 题,每题 2 分,共计 3 0 分;每题有且仅有一个正确
选项)
1. 在 C++中,下面哪个关键字用于声明一个变量,其值不能被修改?()
A. unsigned
B. const
C. static
D. mutable
解析:B
因为其它几个声明的变量,其值都是可以修改的。只有 const 声明的常量其值只
能在声明时赋值一次。
2. 八进制数 12345670
8
和 07654321
8
的和为()
A.22222221
8
B.21111111
8
C.22111111
8
D.22222211
8
解析: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;
第 2 页 共 13 页
解析:A
声明了一个联合体,类似于结构体的数据类型,然后声明了变量 data,此时调
用其成员变量的方式是采用点号。如果采用的是指针,则必须使用箭头了。
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* n ewNode = n ew Node; h ead->data = 4 2; n ewNode->next = h ead; h ead =
newNode;
C. Node* newNode = new Node; newode->data = 42; head-next = newNode;
D. Node* newNode = new Node; newNode->data = 2; newNode->next = head;
解析:A
声明新结点,并赋值 42,然后将其 next 指针指向 head,再让 head 等于新结点。
5. 根节点的高度为 1,一棵有 2 023 个节点的三叉树高度至少为()
A.6
B.7
C.8
D.9
解析:C
三叉树,自树根向下,每一层的结点数为 3 的 x 次方。3 的 7 次方是 2187,明显
超过了上面的结点总数,前面 0~6 层之和不会超过 2023,故至少要到 7 这一层,
而树根高度为 1,故有 8 层。
6. 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,
但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他体息,则小明一共有()
种选择时间段的方案。
A.31
B.18
C.21
D.33
解析:B
分 3 种情况,选 1 个的情况,任选,故有 C(7,1)个。
选 2 个的情况,去掉两个之后任选,故有 C(5,2)个。
选 3 个的情况,去掉四个之后任选,故有 C(3,3)个。
求和即可。7+10+1=18。
第 3 页 共 13 页
7. 以下关于高精度运算的说法错误的是()
A.高精度计算主要是用来处理大整数或需要保留多位小数的运算
B.大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将
除数乘以某个数,通过减法得到新的被除数,并累加商。
C.高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。
D.高精度加法运算的关键在于逐位相加并处理进位。
解析:C
两个因数逐位运算的,所以运算时间和两个因数的位数都有关系。
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
画出树形结构
9. 数 101010₂和 166
8
的和为()
A.10110000
2
B.236
8
C.158
10
D.A0
16
解析:D
将非相同进制的两数转换为同一进制,然后进行运算,之后再与给出的 4 个结果
去比对,选出正确答案即可。
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,11
D.1010,1011,110,111,00,01
解析:A
首先建立一棵哈夫曼树,但是在建树的过程中,如果严格按照 左小右大 的规则
去建树,则最终出现的树其编码会与给出的有所不同,所以在左右子树的问题上,
不必严格纠结是放左还是放右。
剩余12页未读,继续阅读
资源评论
美洲豹教编程
- 粉丝: 9
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功