2024 非专业级别收容能力认证第一轮(创新拔尖人才平台)

(CSP-J1) 入门级C++语言试题
认证时间:2024 年 8 月 11 日 09:30~11:30
*
您的姓名:
考生注意事项:
● 试题纸共有 11 页,满分 100 分。请在洛谷作答,写在试题纸上的一律无效。
● 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
出题人:创新拔尖、人才平台
一、单项选择题(共15题,每题2分,共计30分;每题有且仅有1个正确选项) 
*
1. 以下哪种语言不是面向对象的编程语言 ()
A. C语言
B. C#
C. Python
D. C++
*
2. 以下哪种关键字可以⽤于声明非负整型变量 ()
A. mutable
B. static
C. const
D. unsigned
*
3. 运下下述代码片段 ,程序的输出是 ( )

A. 6
B. 56
C. 11
D. 12
*
4. 以下哪项不是动态数组的特点 ( )
A. 占用连续内存空间
B. 可以自动增长
C. 可以压缩数据
D. 可以随机访问
*
5. 有一棵二叉树, 共有14个结点, 其中有7个叶子结点, 那么该树只有1个子结点的结点个数为 ( )
A. 0
B. 1
C. 2
D. 3
*
6. 任意给定n个结点, 一定可以构造出以下哪种二叉树 ( )
A. 完美二叉树
B. 满二叉树
C. 对称二叉树
D. 完全二叉树
*
7. 关于哈夫曼编码的说法, 以下哪种是错误的 ( )
A. 哈夫曼编码的结果是唯一的
B. 哈夫曼编码是一种不等长编码
C. 任一编码肯定都不是其他编码的前缀
D. 哈夫曼编码总是可以无损压缩数据
*
8. 给定中缀表达式 (A + B) ∗ C − D/F , 其后缀表达式为 ( )
A. AB + C ∗ −DF/
B. AB + C ∗ DF/−
C. − ∗ +ABC/DF
D. CAB + ∗DF/−
*
9. 与⼗进制13.375相等的是以下哪个数( ) 
A.(1101.011)2
B.(15.5))8
C.(C.3)16
D.(C.6))16
*
10. 已知⼆进制补码(11110101)2 ,其对应的二进制整数是多少( )
A. 117
B. -117
C. -11
D. 11
*
11. 已知图中有n个点, n-1条无向边, 以下说法正确的是 ( )
A. 图中任意2点有一条路径
B. 该图是一棵树型结构
C. 图中不可能有环
D. 图中所有点的度数之和一定是2n-2
*
12. 给定一棵二叉树如下图, 其中序遍历为 ( )

A. 385264179
B. 852341769
C. 358261479
D. 825471963
*
13. 已知红 、黄 、蓝 、 白小球各有8个, 装在一个袋子里, 没有其他颜色的小球, 请问至少拿几个小球, 才能保证总是有两个颜色相同的小球 ( )
A. 4
B. 5
C. 6
D. 7
*
14. 给定3对小括号, 请问可以合法匹配的方案数是多少 ( )
A. 3
B. 4
C. 5
D. 6
*
15. 以下哪个人物通常不被视为计算机科学家 ( )
A. 冯诺依曼
B. 图灵
C. 姚期智
D. 丘成桐
二、阅读程序(程序输⼊不超过数组或字符串定义的范围;判断题正确填选A,错
误选B; 除特殊说明外,判断题1.5分,选择题3分,共计40分)

*
16. 将第5行的int改为unsigned int,程序结果不变。( )
*
17. 将第5行的int改为long long, 程序结果不变。( )
*
18. 程序的输出结果不会超过32。( )
*
19. 当程序输入为0时,输出结果为32。( )
*
20. 当程序输入为1时,输出结果为31。( )
*
21. 当程序输入为11时,输出的结果为( )
A. 28
B. 29
C. 30
D. 31
(2)


假设输入的m是不超过1000的非负数,n是不超过100的⾮负数,其余输入是不超过10000的非负数,完
成下⾯的判断题和单选题
判断题 
*
22. 当删除第14行代码后,程序的工作没有任何影响。( )
*
23. 该程序的输出结果永远是非负的。( )
*
24. 当输入的m=10,n=1,w[1]=5,v[1]=10时,输出结果为10。( )
*
25. 该算法的时间复杂度是( )
A. O(n)
B..O(n + m)
C. O(n ∗ m)
D. O(n^2 ∗ m)
*
26. 当输⼊的m=100, n = 2, w[1] = 20, w[2] =30, v[1] = 40, v[2] = 50时,程序输出的结果为( )
A. 60
B. 70
C. 80
D. 90
*
27. (4分)程序中第10行的作用是( )
A. 防止最大值求错
B. 防止运行错误
C. 防止状态重复
D. 防止下标越界
3.
假设输⼊的n是不超过1000的正整数,完成下⾯的判断题和单选题。
判断题
*
28. 该算法的时间复杂度是 O(log2n n^2 )。( )
*
29. 当输入的n为15时,第一个输出的结果是1。( )
*
30. 当输入的n为质数时,第一个输出的结果永远是1。( )
*
31. 该程序存在缺陷,当输入的n为1000时,程序会“数据溢出”。( )
*
32. 当程序输入为7时,输出的结果为( )
A. 0 0
B. 1 0
C. 1 9
D. 0 8
*
33. 当程序输入为20时,输出的结果为( )
A. 0 35
B. 1 35
C. 0 36
D. 1 36
*
34. 已知程序输出的结果为0 15,那么可能的输入是?( )
A. 11
B. 12
C. 13
D. 14
三、完善程序(单选题,每⼩题3分,共计30分) 
(1) (自幂数)
有一种正整数数叫做自幂数。如果一个N 位正整数,满足各位数字N 次方之和等于其本身。例如,
371 是3位数,其每位数的3次方之和 ,因此371是⼀个自幂数。我们也把三位的自幂数称为水仙花数。同理,1634 是 4位数,其每位数的 次4之和,1^ 4 + 6^4 + 3^4 + 4^4 = 1634,,所以1634 也是自幂数。输入正整数n,保证n是1000000内的正整数,请输出n以内的自幂数。

*
35. ①处应填 ( )
A. tmp > 1
B. tmp > 0
C. x > 1
D. x > 0
*
36. ②处应填 ( )
A. cnt+1
B. cnt-1
C. ++cnt
D. cnt++
*
37. ③处应填 ( )
A. i <= cnt
B. i < cnt
C. i <= x
D. i < x
*
38. ④处应填 ( )
A. tmp == 0
B. sum > n
C. i == cnt
D. sum > x
*
39. ⑤处应填 ( )
A. sum == tmp
B. false
C. true
D. sum == x

(2)求先序遍历)

给出一棵二叉树的中序与后序排列,树的结点用大写字母表示,且输入的结点不超过26个。请求出它的先序排列。


*
40. ①处应填 ( )
A. s1 > s2
B. s1.size() == 0
C. s2 > s1
D. s1 == s2
*
41. ②处应填 ( )
A. s1[len-1]
B. s1[len]
C. s2[len-1]
D. s2[len]
*
42. ③处应填 ( )
A. cout << p;
B. cout << root;
C. cout << s1;
D. cout << s2;
*
43. ④处应填 ( )
A. s2.substr(0, p)
B. s2.substr(1, p)
C. s2.substr(0, p-1)
D. s2.substr(1, p-1)
*
44. ⑤处应填 ( )
A. s2.size()-1
B. s2.size()
C. s2.size()-p
D. s2.size()-p-1
问卷星提供技术支持
举报