#1504. GESP-C++八级(2024-06)
GESP-C++八级(2024-06)
CCF GESP C++ 八级 (2024 年 06 月)
一、单选题(每题 2 分,共 30 分)
第 1 题GESP 活动期间,举办方从获胜者 A、B、C、D、E 五个人中选出三个人排成一队升国旗,其中 A 不能排在队首,请问有多少种排法?
{{ select(1) }}
- 24
- 48
- 32
- 12
第 2 题7 进制数 235 转换成 3 进制数是 ( )。
{{ select(2) }}
- 11121
- 11122
- 11211
- 11112
第 3 题用 0、1、2、3、4、5 这些数字组成一个三位数,请问在没有重复数字的情况下,有多少种组法?( )
{{ select(3) }}
- 180
- 120
- 80
- 100
第 4 题有 V 个顶点、E 条边的图的深度优先搜索遍历时间复杂度为 ( )。
{{ select(4) }}
第 5 题一对夫妻生男生女的概率相同。已知这对夫妻有两个孩子,其中一个是女孩,另一个是男孩的概率是多少?
{{ select(5) }}
第 6 题从 1 到 2024 这 2024 个数中,共有 ( ) 个包含数字 6 的数。
{{ select(6) }}
- 544
- 546
- 564
- 602
第 7 题二进制数 100.001 转换成十进制数是 ( )。
{{ select(7) }}
- 4.25
- 4.125
- 4.5
- 4.75
第 8 题以下函数声明,哪个是符合 C++ 语法的?( )
{{ select(8) }}
- void BubbleSort(char a[][], int n);
- void BubbleSort(char a[][20], int n);
- void BubbleSort(char a[10][], int n);
- void BubbleSort(char[,] a, int n);
第 9 题下面有关 C++ 重载的说法,错误的是 ( )。
{{ select(9) }}
- 两个参数个数不同的函数可以重名。
- 两个参数类型不同的函数可以重名。
- 两个类的方法可以重名。
- 所有 C++ 运算符均可以重载。
第 10 题小于或等于给定正整数 n 的数中,与 n 互质的数的个数,我们称为欧拉函数,记作(\phi(n))。下面说法错误的是 ( )。
{{ select(10) }}
- 如果 n 是质数,那么(\phi(n)=n-1)。
- 两个质数一定是互质数。
- 两个相邻的数一定是互质数。
- 相邻的两个质数不一定是互质数。
第 11 题已知一棵二叉树有 10 个节点,则其中至多有 ( ) 个节点有 2 个子节点。
{{ select(11) }}
- 4
- 5
- 6
- 3
第 12 题二项展开式((x+y)^{n}=x^{n}+n x^{n-1} y+\frac{n(n-1)}{2} x^{n-2} y^{2}+...+y^{n})的系数,正好满足杨辉三角的规律。当(n=10)时,二项式展开式中(x y^{9})项的系数是 ( )。
{{ select(12) }}
- 5
- 9
- 10
- 8
第 13 题下面程序的时间复杂度为 ( )。
bool notPrime[N] = {false};
void sieve() {
for (int n = 2; n * n < N; n++)
if (!notPrime[n])
for (int i = n * n; i < N; i += n)
notPrime[i] = true;
}
{{ select(13) }}
第 14 题下面程序的最差时间复杂度为 ( )。
int gcd(int m, int n) {
if (m == 0)
return n;
return gcd(n % m, m);
}
{{ select(14) }}
第 15 题下面程序的输出为 ( )。
#include <iostream>
using namespace std;
int main() {
int cnt = 0;
for (int x = 0; x <= 10; x++)
for (int y = 0; y <= 10; y++)
for (int z = 0; z <= 10; z++)
if (x + y + z <= 15)
cnt++;
cout << cnt << endl;
return 0;
}
{{ select(15) }}
- 90
- 91
- 710
- 7112
二、判断题(每题 2 分,共 20 分)
第 1 题A、B、C、D、E 五个小朋友,排成一队跑步,其中 A、B 两人必须排在一起,一共有 48 种排法。
{{ select(16) }}
- 对
- 错
第 2 题已知double类型的变量a和b,则执行语句a = a + b; b = a - b; a = a - b;后,变量a和b的值会互换。
{{ select(17) }}
- 对
- 错
第 3 题一个袋子中有 3 个完全相同的红色小球、2 个完全相同的蓝色小球。每次从中取出 1 个,再放回袋子,这样进行 3 次后,可能的颜色顺序有 8 种。
{{ select(18) }}
- 对
- 错
第 4 题已知int类型的变量a和b中分别存储着一个直角三角形的两条直角边的长度,则斜边的长度可以通过表达式sqrt(a * a + b * b)求得。
{{ select(19) }}
- 对
- 错
第 5 题在一个包含 v 个顶点、e 条边的带权连通简单有向图上使用 Dijkstra 算法求最短路径,时间复杂度为(O(v^{2})),可进一步优化至(O(e + v \log (v)))。
{{ select(20) }}
- 对
- 错
第 6 题在 N 个元素的二叉排序树中查找一个元素,最差情况的时间复杂度是(O(\log N))。
{{ select(21) }}
- 对
- 错
第 7 题C++ 语言中,可以为同一个类定义多个析构函数。
{{ select(22) }}
- 对
- 错
第 8 题使用单链表和使用双向链表,查找元素的时间复杂度相同。
{{ select(23) }}
- 对
- 错
第 9 题为解决哈希函数冲突,可以使用不同的哈希函数为每个表项各建立一个子哈希表,用来管理该表项的所有冲突元素。这些子哈希表一定不会发生冲突。
{{ select(24) }}
- 对
- 错
第 10 题要判断无向图的连通性,在深度优先搜索和广度优先搜索中选择,深度优先的平均时间复杂度更低。
{{ select(25) }}
- 对
- 错