信奥刷题站
GESP 认证 8级2024-06

2024年6月 GESP C++ 8级

题量
27 题
客观题
25 题
建议时长
60 分钟
卷面总分
100 分

2024年6月 GESP C++ 8级认证考试真题(含编程操作题部分)

开始整卷模拟计时作答 · 交卷即时判分 · 错题自动进错题本(需登录)2 道编程大题:在线只判客观题,编程题请自行前往洛谷等 OJ 提交验证

// questions

题目预览

1
单选题2

GESP 活动期间,举办方从获胜者 ABCDE 五个⼈中选出三个⼈排成一队升国旗,其中 A 不能排在队首,请问有多少种排法?

A

242424

B

484848

C

323232

D

121212

2
单选题2

777 进制数 235235235 转换成 333 进制数是( )。

A

111211112111121

B

111221112211122

C

112111121111211

D

111121111211112

3
单选题2

000,111,222,333,444,555 这些数字组成一个三位数,请问没有重复数字的情况下,有多少种组法( )。

A

180180180

B

120120120

C

808080

D

100100100

4
单选题2

VVV 个顶点、EEE 条边的图的深度优先搜索遍历时间复杂度为( )。

A
B
C
D
5
单选题2

一对夫妻生男生女的概率相同。已知这对夫妻有两个孩子,其中一个是女孩,另一个是男孩的概率是多少?

A
B
C
D
6
单选题2

111202420242024202420242024 个数中,共有( )个包含数字 666 的数。

A

544544544

B

546546546

C

564564564

D

602602602

7
单选题2

二进制数 100.001100.001100.001 转换成十进制数是( )。

A

4.254.254.25

B

4.1254.1254.125

C

4.54.54.5

D

4.754.754.75

8
单选题2

以下函数声明,哪个是符合 C++ 语法的?( )。

A

void BubbleSort(char a[][], int n);

B

void BubbleSort(char a[][20], int n);

C

void BubbleSort(char a[10][], int n);

D

void BubbleSort(char[,] a, int n);

9
单选题2

下面有关 C++ 重载的说法,错误的是( )。

A

两个参数个数不同的函数可以重名。

B

两个参数类型不同的函数可以重名。

C

两个类的方法可以重名。

D

所有 C++ 运算符均可以重载。

10
单选题2

小于或等于给定正整数 nnn 的数中,与 nnn 互质的数的个数,我们称为欧拉函数,记作 φ(n)\varphi(n)φ(n) 。下面说法错误的是( )。

A

如果 nnn 是质数,那么 φ(n)=n−1\varphi(n) = n - 1φ(n)=n1

B

两个质数一定是互质数。

C

两个相邻的数一定是互质数。

D

相邻的两个质数不一定是互质数。

11
单选题2

已知一棵二叉树有 101010 个节点,则其中至多有( )个节点有 222 个子节点。

A

444

B

555

C

666

D

333

12
单选题2

二项展开式的系数,正好满足杨辉三角的规律。当 n=5n = 5n=5 时,二项式展开式中 x3x^3x3 项的系数是( )。

A

555

B

999

C

101010

D

888

13
单选题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;
}
A
B
C
D
14
单选题2

下面程序的最差时间复杂度为( )。

int gcd(int m, int n) {
    if (m == 0)
        return n;
    return gcd(n % m, m);
}
A
B
C
D
15
单选题2

下面程序的输出为( )。

#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;
}
A

909090

B

919191

C

710710710

D

711711711

16
判断题2

AAA BBB CCC DDD EEE 五个小朋友,排成一队跑步,其中 AAA BBB 两人必须排在一起,一共有 484848 种排法。

17
判断题2

已知 double 类型的变量 aaabbb,则执行语句 a = a + b; b = a - b; a = a - b; 后,变量 aaabbb 的值会互换。

18
判断题2

一个袋子中有 333 个完全相同的红色小球、222 个完全相同的蓝色小球。每次从中取出 111 个,再放回袋子,这样进行 333 次后,可能的颜色顺序有 888 种。

19
判断题2

已知 int 类型的变量 aaabbb 中分别存储着一个直角三角形的两条直角边的长度,则斜边的长度可以通过表达式 sqrt(a * a + b * b) 求得。

20
判断题2

在一个包含 vvv 个顶点、eee 条边的带权连通简单有向图上使用 Dijkstra 算法求最短路径,时间复杂度为 O(v2)O(v^2)O(v2),可进一步优化至 O(e+vlog⁡v)O(e + v \log v)O(e+vlogv)

21
判断题2

nnn 个元素的二叉排序树中查找一个元素,最差情况的时间复杂度是 O(n)O(n)O(n)

22
判断题2

C++ 语言中,可以为同一个类定义多个析构函数。

23
判断题2

使用单链表和使用双向链表,查找元素的时间复杂度相同。

24
判断题2

为解决哈希函数冲突,可以使用不同的哈希函数为每个表项各建立一个子哈希表,用来管理该表项的所有冲突元素。这些子哈希表一定不会发生冲突。

25
判断题2

要判断无向图的连通性,在深度优先搜索和广度优先搜索中选择,深度优先的平均时间复杂度更低。

GESP 编程操作题
26
编程题25

试题名称:最远点对

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

小杨有一棵包含 nnn 个节点的树,这棵树上的任意一个节点要么是白色,要么是黑色。

小杨想知道相距最远的一对不同颜色节点的距离是多少。

输入格式

第一行包含一个正整数 nnn,代表树的节点数。

第二行包含 nnn 个非负整数 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,,an(对于所有的 1≤i≤n1\le i\le n1in,均有 aia_iai 等于 000111),其中如果 ai=0a_i=0ai=0,则节点 iii 的颜色为白色;如果 ai=1a_i=1ai=1,则节点 iii 的颜色为黑色。

之后 (n−1)(n-1)(n1) 行,每行包含两个正整数 xi,yix_i,y_ixi,yi,代表存在一条连接节点 xix_ixiyiy_iyi 的边。

保证输入的树中存在不同颜色的点。

输出格式

输出一个整数,代表相距最远的一对不同颜色节点的距离。

样例输入 #1

5
0 1 0 1 0
1 2
1 3
3 4
3 5

样例输出 #1

3

说明/提示

样例解释

相距最远的不同颜色的一对节点为节点 222555

数据范围

本题采用捆绑测试。

子任务编号 得分 nnn aia_iai 特殊条件
111 303030 ≤105\le 10^5105 0≤ai≤10\le a_i\le 10ai1 树的形态为一条链
222 303030 ≤103\le 10^3103 0≤ai≤10\le a_i\le 10ai1
333 404040 ≤105\le 10^5105 0≤ai≤10\le a_i\le 10ai1

对于全部数据,保证有 1≤n≤1051\le n\le 10^51n1050≤ai≤10\le a_i\le 10ai1

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)
27
编程题25

试题名称:空间跳跃

时间限制:1.0 s | 内存限制:500.0 MB

题目描述

小杨在二维空间中有 nnn 个水平挡板,并且挡板之间彼此不重叠,其中第 iii 个挡板处于水平高度 hih_ihi,左右端点分别位于 lil_ilirir_iri

小杨可以在挡板上左右移动,当小杨移动到右端点时,如果再向右移动会竖直掉落,从而落到下方第一个挡板上,移动到左端点时同理。小杨在挡板上每移动 111 个单位长度会耗费 111 个单位时间,掉落时每掉落 111 个单位高度也会耗费 111 个单位时间。

小杨想知道,从第 sss 个挡板上的左端点出发到第 ttt 个挡板需要耗费的最少时间是多少?

注意:可能无法从第 sss 个挡板到达到第 ttt 个挡板。

输入格式

第一行包含一个正整数 nnn,代表挡板数量。

第二行包含两个正整数 s,ts,ts,t,含义如题面所示。

之后 nnn 行,每行包含三个正整数 li,ri,hil_i,r_i,h_ili,ri,hi,代表第 iii 个挡板的左右端点位置与高度。

输出格式

输出一个整数代表需要耗费的最少时间,如果无法到达则输出 −1-11

样例输入 #1

3
3 1
5 6 3
3 5 6
1 4 100000

样例输出 #1

100001

说明/提示

样例解释

耗费时间最少的移动方案为,从第 333 个挡板左端点移动到右端点,耗费 333 个单位时间,然后向右移动掉落到第 222 个挡板上,耗费 100000−6=99994100000-6=999941000006=99994 个单位时间,之后再向右移动 111 个单位长度,耗费 111 个单位时间,最后向右移动掉落到第 111 个挡板上,耗费 333 个单位时间。共耗费 100001100001100001 个单位时间。

数据范围

子任务编号 数据点占比 nnn 特殊条件
111 20%20\%20% ≤1000\leq 10001000 li=1l_i=1li=1
222 40%40\%40% ≤1000\leq 10001000 li=i,ri=i+1l_i=i,r_i=i+1li=i,ri=i+1
333 40%40\%40% ≤1000\leq 10001000

对于全部数据,保证有 1≤n≤10001\leq n\leq 10001n10001≤li≤ri≤1051\leq l_i\leq r_i\leq 10^51liri1051≤hi≤1051\leq h_i\leq 10^51hi105

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)