2024年6月 GESP C++ 8级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
GESP活动期间,举办方从获胜者ABCDE五个⼈中选出三个⼈排成一队升国旗,其中A不能排在队首,请问
有多少种排法?
7进制数235转换成3进制数是( )。
0,1,2,3,4,5这些数字组成一个三位数,请问没有重复数字的情况下,有多少种组法( )。
有V个顶点、E条边的图的深度优先搜索遍历时间复杂度为( )。
一对夫妻生男生⼥的概率相同。已知这对夫妻有两个孩⼦,其中一个是⼥孩,另一个是男孩的概率是多少?
从1到2024这2024个数中,共有( )个包含数字6的数。
二进制数100.001转换成十进制数是( )。
以下函数声明,哪个是符合C++语法的?( )。
下面有关C++重载的说法,错误的是( )。
小于或等于给定正整数n的数中,与n互质的数的个数,我们称为欧拉函数,记作 。下面说法错误的是
( )。
已知一棵二叉树有10个节点,则其中至多有( )个节点有2个⼦节点。
二项展开式 的系数,正好满足杨辉三角的规律。当
时,二项式展开式中 项的系数是( )。
下面程序的时间复杂度为( )。
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;
}
下面程序的最差时间复杂度为( )。
int gcd(int m, int n) {
if (m == 0)
return n;
return gcd(n % m, m);
}
下面程序的输出为( )。
#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;
}
判 判断题(共 10 题,每题 2 分)
ABCDE五个小朋友,排成一队跑步,其中AB两⼈必须排在一起,一共有48种排法。
已知double类型的变量a和b,则执行语句a = a + b; b = a - b; a = a - b;后,变量a和b的
值会互换。
一个袋⼦中有3个完全相同的红色小球、2个完全相同的蓝色小球。每次从中取出1个,再放回袋⼦,这样进
行3次后,可能的颜色顺序有8种。
已知int类型的变量a和b中分别存储着一个直角三角形的两条直角边的长度,则斜边的长度可以通过表
达式sqrt(a * a + b * b)求得。
在一个包含v个顶点、e条边的带权连通简单有向图上使用Dijkstra算法求最短路径,时间复杂度为 ,
可进一步优化至 。
在 个元素的二叉排序树中查找一个元素,最差情况的时间复杂度是 。
C++语⾔中,可以为同一个类定义多个析构函数。
使用单链表和使用双向链表,查找元素的时间复杂度相同。
为解决哈希函数冲突,可以使用不同的哈希函数为每个表项各建⽴一个⼦哈希表,用来管理该表项的所有冲
突元素。这些⼦哈希表一定不会发生冲突。
要判断无向图的连通性,在深度优先搜索和广度优先搜索中选择,深度优先的平均时间复杂度更低。
编 编程操作题(共 2 题,共 50 分)
试题名称:最远点对
时间限制:1.0 s | 内存限制:512.0 MB
输入格式
第⼀⾏包含⼀个正整数 ,代表树的节点数。
第⼆⾏包含 个⾮负整数 (对于所有的 ,均有 等于 0 或 1),其中如果 ,则节点
的颜⾊为⽩⾊;如果 ,则节点 的颜⾊为⿊⾊。
之后 ⾏,每⾏包含两个正整数 ,代表存在⼀条连接节点 和 的边。
保证输⼊的树中存在不同颜⾊的点。
输出格式
输出⼀个整数,代表相距最远的⼀对不同颜⾊节点的距离。
3.1.4 样例1
1 5
2 0 1 0 1 0
3 1 2
4 1 3
5 3 4
6 3 5
1 3
样例解释
相距最远的不同颜⾊的⼀对节点为节点 和 。
数据范围
子任务编号 数据点占比 特殊条件
1 30% 树的形态为⼀条链
2 30%
3 40%
对于全部数据,保证有 , 。
试题名称:空间跳跃
时间限制:1.0 s | 内存限制:512.0 MB
输入格式
第⼀⾏包含⼀个正整数 ,代表挡板数量。
第⼆⾏包含两个正整数 ,含义如题⾯所⽰。
之后 ⾏,每⾏包含三个正整数 ,代表第 个挡板的左右端点位置与⾼度。
输出格式
输出⼀个整数代表需要耗费的最少时间,如果⽆法到达则输出 。
3.2.4 样例1
1 3
2 3 1
3 5 6 3
4 3 5 6
5 1 4 100000
1 100001
3.2.5 样例范围
耗费时间最少的移动⽅案为,从第 个挡板左端点移动到右端点,耗费 个单位时间,然后向右移动掉落到第 个
挡板上,耗费 个单位时间,之后再向右移动 个单位长度,耗费 个单位时间,最后向右移动
掉落到第 个挡板上,耗费 个单位时间。共耗费 个单位时间。
数据范围
子任务编号 数据点占比 特殊条件
1 20%
2 40%
3 40%
对于全部数据,保证有 , , 。