内容正文:
2023 CCF非专业级别软件能力认证第一轮
(CSP-J1) 入门级C++语言试题
认证时间:2023年9月16日09:30~11:30
考生注意事项:
试题纸共有10页,答题纸共有1页,满分100分。请在答题纸上作答,写在试题纸上的
一律无效。
不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、 单项选择题(共15题, 每题2分, 共计30分; 每题有且有一个正确选项)
1. 在C++中,下面哪个关键字用于声明一个变量,其值不能被修改? ( )
A. unsigned
B. const
C. static
D. mutable
2. 八进制数123456788和076543218的和为()。
A. 222222218
B.211111118
C.221111118
D.222222118
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;
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;
5. 根节点的高度为1,一棵拥有2023个节点的三叉树高度至少为()
A. 6
B. 7
C. 8
D. 9
6. 小明在某一天中依次有七个空闲时间段,他想要选出至少一个空闲时间段来练习唱歌,但他希望任意两个练习的时间段之间都有至少两个空闲的时间段让他休息。则小明一共有( ) 种选择时间段的方案
A. 31
B. 18
C. 21
D. 33
7. 以下关于高精度运算的说法错误的是( )。
A. 高精度计算主要是用来处理大整数或需要保留多位小数的运算。
B. 大整数除以小整数的处理的步骤可以是,将被除数和除数对齐,从左到右逐位尝试将除数乘以某个数,通过减法得到新的被除数,并累加商。
C. 高精度乘法的运算时间只与参与运算的两个整数中长度较长者的位数有关。
D. 高精度加法运算的关键在于逐位相加并处理进位。
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
9. 数1010102和1668的和为( )
A. 101100002
B. 2368
C. 15810
D. A016
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
11.给定一棵二叉树,其前序遍历结果为: ABDECFG,中序遍历结果为: DEBACFG。请问这棵树的正确后序遍历结果是什么?( )
A. EDBFGCA
B. EDBGCFA
C. DEBGFCA
D. DBEGFCA
12.考虑一个有向无环图,该图包含