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

2025年9月CCF—GESP(C++八级)编程能力等级认证试卷
八级 2025 2026-07-14 16:27:07 116

一、单选题

1.

一对夫妻生男生女的概率相同。这对夫妻希望儿女双全。请问这对夫妻生下三个孩子时,实现儿女双全的概率是多少?( )。

A.

1/4

B.

1/2

C.

3/4

D.

7/8

2.

下列Dijkstra算法,假设图graph中顶点数v、边数e,则程序的时间复杂度为( )。

A.

O(v^2)

B.

O(vlogv+e)

C.

O(v+e)logv

D.

O(v+e)

3.

二项式(x+y)6的展开式中x2y4项的系数是( )。

A.

720

B.

120

C.

20

D.

15

4.

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

int primes[MAXP], num = 0; 
bool isPrime[MAXN] = {false}; 
void sieve() { 
        for (int n = 2; n <= MAXN; n++) { 
                if (!isPrime[n]) 
                        primes[num++] = n; 
                for (int i = 0; i < num && n * primes[i] <= MAXN; i++) { 
                        isPrime[n * primes[i]] = true; 
                        if (n % primes[i] == 0) 
                                break; 
                } 
        } 
}


A.

O(nlogn)

B.

O(nloglogn)

C.

O(n)

D.

O(logn)

5.

下列关于C++类的说法,错误的是( )。

A.

派生类对象占用的内存总是不小于基类对象。

B.

派生类可以不实现基类的虚函数。

C.

如果一个类包含纯虚函数,则它不能包含成员变量。

D.

如果一个类包含纯虚函数,则不能用它定义对象。

6.

下面 merge_sort 函数试图实现归并排序算法,横线处应该填入的是( )。

A.

arr, left, mid

arr, mid, right

B.

arr, left, mid + 1

arr, mid + 1, right

C.

arr, left, mid

arr, mid + 1, right

D.

arr, left, mid + 1

arr, mid + 1, right + 1

7.

小杨和小刘是好朋友,她们在逛商场时发现新设置的大头贴自拍机,于是决定一起拍一组照片。一组照片包括4张,这4张照片没有顺序区分。拍每张照片时,可以选择有相框或无相框、两人可以分别选择有头饰或无头饰、 还可以从2种位置(小杨在左,或小刘在左)中选出一种。她们不希望一组照片中出现完全相同的相框、头饰、位置的组合。请问一组照片共有多少种不同的方案?( )。

A.

1820

B.

70

C.

24

D.

16

8.

小杨想点一杯奶茶外卖,但还差5元起送。于是,小杨决定点一些小料。可选的小料包括:珍珠1元、椰果2元、奶冻3元、奶盖4元。每种小料最多点1份。请问共有多少种满足起送条件的点小料方案?( )。

A.

16

B.

10

C.

9

D.

7

9.

下面 count_triple 函数的时间复杂度为( )。

A.

O(n^2)

B.

O(n^2logn)

C.

O(n)

D.

O(nlogn)

10.

下面的程序使用出边邻接表表达的带权无向图,则从顶点0到顶点3的最短距离为( )。

A.

12

B.

11

C.

10

D.

9

11.

对一个包含V个顶点、E条边的图,执行广度优先搜索,其最优时间复杂度是( )。

A.

O(V)

B.

O(V+E)

C.

O(V^2)

D.

O(E)

12.

以下关于贪心法和动态规划的说法中,错误的是( )。

A.

动态规划能解决大部分多阶段决策问题。

B.

对特定的问题,贪心法不一定适用。

C.

当特定的问题适用贪心法时,通常比动态规划的时间复杂度更低。

D.

对很多问题,递推实现和递归实现动态规划方法的时间复杂度相当。

13.

下列关于树和图的说法,错误的是( )。

A.

每个连通图都存在生成树。

B.

每个存在生成树的有向图,都一定是强连通的。

C.

保留树的所有节点,并把树的每个节点指向其父节点,则可以将树转换为一个有向弱连通图。

D.

保留树的所有节点,并把树的每个节点指向其子节点,则可以将树转换为一个有向无环图。

14.

下面Prim算法程序中,横线处应该填入的是( )。

A.

graph[u][v] >= 0 && key[v] > graph[u][v]

B.

graph[u][v] <= 0 && key[v] > graph[u][v]

C.

graph[u][v] == 0 && key[v] > graph[u][v]

D.

graph[u][v] != 0 && key[v] > graph[u][v]

15.

下面程序的输出为( )。

#include <iostream> 
using namespace std; 
        int main() { 
                int N = 15, cnt = 0; 
                for (int x = 1; x + x + x <= N; x++) 
                        for (int y = x; x + y + y <= N; y++) 
                                for (int z = y; x + y + z <= N; z++) 
                                        cnt++; 
        cout << cnt << endl; 
        return 0; 
}
A.

45

B.

102

C.

174

D.

3375

二、判断题

1.

从32名学生中选出2人分别担任男生班长和女生班长(男生班长必须是男生,女生班长必须是女生),则共有C(32,3)/2种不同的选法。

A.正确 B.错误
2.

下列C++语言代码,能够安全地输出 arr[5] 的值。

int n = 5; 
int arr[n] = {1, 2, 3}; 
std::cout << arr[5];
A.正确 B.错误
3.

对n个元素的数组进行排序,最差情况的时间复杂度为O(n2)。

A.正确 B.错误
4.

有4个红球、3个蓝球和2个绿球排成一排(相同色球视为完全相同),则不同的排列方案数为1260种。

A.正确 B.错误
5.

使用 math.h 或 cmath 头文件中的函数,对于 int 类型的变量 x ,表达式 fabs(x) 和 sqrt(x * x) 的结果总是近似相等的。

A.正确 B.错误
6.

C++语言中,表达式 '9' ^ 3 的结果值为 '999' 。

A.正确 B.错误
7.

存在一个简单无向图满足:顶点数为6,边数为8,6个顶点的度数分别为3、3、3、3、2、2。

A.正确 B.错误
8.

运算符重载是C++语言静态多态的一种典型体现,而使用C语言则无法实现运算符重载。

A.正确 B.错误
9.

Dijkstra算法的时间复杂度为O(V2),其中V为图中顶点的数量。

A.正确 B.错误
10.

已知两个 double 类型的变量 r 和 theta 分别表示一个扇形的圆半径及圆心角(弧度),则扇形的周长可以通过表达式 (2 + theta) * r 求得。

A.正确 B.错误

三、编程题

1.

最小生成树

2.

最短距离

公众号
客服 反馈
顶部