万卷网> GESP认证 >C++ > 2024年6月CCF—GESP(C++八级)编程能力等级认证试卷

2024年6月CCF—GESP(C++八级)编程能力等级认证试卷
八级 2024 2025-05-16 19:20:05 39

一、单选题

1.

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

A.

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

B.

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

C.

两个类的方法可以重名。

D.

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

2.

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

A.

24

B.

48

C.

32

D.

12

3.

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

int gcd(int m, int n) {
	if (m == 0)
		return n;
	return gcd(n % m, m);
}
A.

B.

O(log(n))

C.

O(n)

D.

O(1)

4.

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

A.

4

B.

5

C.

6

D.

3

5.

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

A.

5

B.

9

C.

10

D.

8

6.

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

A.

如果n是质数,那么

B.

两个质数一定是互质数。

C.

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

D.

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

7.

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

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.

O(N)

B.

O(N×logN)

C.

O(N×loglogN)

D.

O(N2)

8.

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

A.

4.25

B.

4.125

C.

4.5

D.

4.75

9.

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

A.

B.

C.

D.

10.

以下函数声明,哪个是符合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);

11.

0,1,2,3,4,5这些数字组成一个三位数,请问没有重复数字的情况下,有多少种组法( )。

A.

180

B.

120

C.

80

D.

100

12.

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

A.

O(V)

B.

O(E)

C.

O(V+E)

D.

O(log(V+E))

13.

从1到2024这2024个数中,共有( )个包含数字6的数。

A.

544

B.

546

C.

564

D.

602

14.

7进制数235转换成3进制数是( )。

A.

11121

B.

11122

C.

11211

D.

11112

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

90

B.

91

C.

710

D.

711

二、判断题

1.

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

A.正确 B.错误
2.

ABCDE五个小朋友,排成一队跑步,其中AB两人必须排在一起,一共有48种排法。

A.正确 B.错误
3.

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

A.正确 B.错误
4.

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

A.正确 B.错误
5.

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

A.正确 B.错误
6.

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

A.正确 B.错误
7.

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

A.正确 B.错误
8.

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

A.正确 B.错误
9.

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

A.正确 B.错误
10.

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

A.正确 B.错误

三、编程题

1.

空间跳跃

题面描述

小杨在二维空间中有n个水平挡板,并且挡板之间彼此不重叠,其中第i个挡板处于水平高度hi,左右端点分别位于li 与 ri。

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

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

注意:可能无法从第 s个挡板到达到第 t个挡板。

输入格式

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

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

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

输出格式

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


输入样例

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

输出样例

100001

样例范围

耗费时间最少的移动方案为,从第3个挡板左端点移动到右端点,耗费3个单位时间,然后向右移动掉落到第 2个挡板上,耗费 100000-6=99994个单位时间,之后再向右移动1个单位长度,耗费1个单位时间,最后向右移动掉落到第1个挡板上,耗费3个单位时间。共耗费 3+99994+1+3=100001个单位时间。

数据范围

对于全部数据,保证有1≤n≤1000,1≤li≤ri≤105,1≤hi≤105。

2.

最远点对

题面描述

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

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

输入格式

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

第二行包含n个非负整数a1,a2,...,an(对于所有的1≤i≤n,均有ai等于0或1),其中如果ai=0,则节点i的颜色为白色;如果ai=1,则节点i的颜色为黑色。

之后n-1行,每行包含两个正整数xi,yi,代表存在一条连接节点xi和yi的边。

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

输出格式

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


输入样例

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

输出样例

3

样例解释

相距最远的不同颜色的一对节点为节点 2 和 5。

数据范围

对于全部数据,保证有1≤n≤105,0≤ai≤1。

公众号
客服 反馈
顶部