CCF CSP - S 2021 第一轮 C ++ 语言试题
第 1 页 , 共 16 页
20 2 1 CCF 非专业级别软件能力认证第一轮
( CSP - S 1 ) 提高 级 C++ 语言试题
认证时间: 20 2 1 年 9 月 1 9 日 09 :30~1 1 :30
考生注意 事项 :
l 试题 纸共有 16 页 ,答题纸共有 1 页,满分 100 分。请在答题纸上作答,写在试题纸上的
一律无效。
l 不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。
一、单项选题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)
1. 在 Linux 系统终端中,用于列出当前目录下所含的文件和子目录的命令为 ( )。
A. l s
B. c d
C. c p
D. a ll
2. 二进制数 00101010 2 和 00010110 2 的和为( )。
A. 00111100 2
B. 01000000 2
C. 00111100 2
D. 01000010 2
3. 在程序运行过程中,如果递归调用的层数过多, 可能会由于 ( )引发错误。
A. 系统分配的栈空间溢出
B. 系统分配的队列空间溢出
C. 系统分配的链表空间溢出
D. 系统分配的堆空间溢出
4. 以下排序方法中,( )是不稳定的。
A. 插入排序
B. 冒泡排序
福建
福建
CCF CSP - S 2021 第一轮 C ++ 语言试题
第 2 页 , 共 16 页
C. 堆排序
D. 归并排序
5. 以比较为基本运算,对于 2n 个数,同时找到最大值和最小值,
0 , 1, 2 , 3 , 4 , 5 , 6 , 7 ),哈希函
数为 h(x)=x
2
mod 11 。请问 7 存储在哈希表哪个地址中( )。
A. 5
B. 6
C. 7
D. 8
7. G 是一个非连通简单无向图(没有自环和重边),共有 36 条边,则该图至少有( )个点。
A. 8
B. 9
C. 10
D. 11
8. 令根结点的高度为 1 , 则一棵含有 2021 个结点的二叉树的高度至少为( )。
A. 10
B. 11
C. 12
D. 2021
福建
福建
CCF CSP - S 2021 第一轮 C ++ 语言试题
第 3 页 , 共 16 页
9. 前序遍历和中序遍历相同的二叉树为且仅为( )。
A. 只有 1 个点的二叉树
B. 根结点没有左子树的二叉树
C. 非叶子结点只有左子树的二叉树
D. 非叶子结点只有右子树的二叉树
10. 定义一种字符串操作为交换相邻两个字符。将“ DACFEB ”变为 “ABCDEF” 最少需要( )
次上述操作。
A. 7
B. 8
C. 9
D. 6
11. 有如下递归代码
solve(t, n):
if t=1 return 1
else return 5*solve(t - 1,n) mod n
则 solve(23,23) 的结果为( )。
A. 1
B. 7
C. 12
D. 22
12. 斐波那契数列的定义为: F 1 =1 , F 2 =1 , F n =F n - 1 +F n - 2 (n>=3) 。现在用如下程序来计算斐波
那契数列的第 n 项,其时间复杂度为( )。
F(n):
if n<=2 return 1
else return F(n - 1) + F(n - 2)
福建
福建
CCF CSP - S 2021 第一轮 C ++ 语言试题
第 4 页 , 共 16 页
A. O( ! )
B. O( !
!
)
C. O( 2
"
)
D. O( ! log ! )
13. 有 8 个苹果从左到右 排 成一排,你要从中挑选至少一个苹果,并且不能同时挑选相邻的两
个苹果,一共有( )种方案。
A. 36
B. 48
C. 54
D. 64
14. 设一个三位数 n = &'( , a, b, c 均为 1 ~ 9 之间的整数,若以 a 、 b 、 c 作为三角形的三
条边可以构成等腰三角形(包括等边),则这样的 n 有( )个。
A. 81
B. 120
C. 165
D. 216
15. 有如下的有向图,节点为 A, B, … , J, 其中每条边的长度都标在图中。则节点 A 到节
点 J 的最短路径长度为( )。
福建
福建
CCF CSP - S 2021 第一轮 C ++ 语言试题
第 5 页 , 共 16 页
A. 16
B. 1 9
C. 20
D. 22
二、阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 √ ,错误填 × ;除特
殊说明外,判断题 1.5 分,选题 3 分,共计 40 分)
( 1)
01 #include <iostream>
02 #include <cmath>
03 using namespace std;
04
05 const double r = acos(0.5);
06
07 int a1, b1, c1, d1;
08 int a2, b2, c2, d2;
09
10 inline int sq(const int x) { return x * x; }
11 inline int cu(const int x) { return x * x * x; }
12
13 int main()
14 {
15 cout.flags(ios::fixed);
16 cout.precision(4);
17
18 cin >> a1 >> b1 >> c1 >> d1;
19 cin >> a2 >> b2 >> c2 >> d2;
20
21 int t = sq(a1 - a2 ) + sq(b1 - b2) + sq(c1 - c2);
22
23 if (t <= sq(d2
CSP2021提高组初赛C++试题,2021年信息学奥赛CSP-S提高组初赛C++真题