Logo

2025年6月 GESP C++ 7级

GESP · 7级 · 2025-06

60:00
满分 100
时长 60 分钟
27

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

答题卡 已答 0/27
已答 正确 错误 编程题

单选题(共 15 题,每题 2 分)

1

已知小写字母b的ASCII码为98,下列C++代码的输出结果是( )。

#include <iostream>
using namespace std;
int main() {
    char a = 'b' ^ 4;
    cout << a;
    return 0;
}
2

已知a为int类型变量,p为int *类型变量,下列赋值语句不符合语法的是( )。

3

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

4

下列C++代码的输出是( )。

#include <iostream>
using namespace std;
int main() {
    int arr[5] = {2, 4, 6, 8, 10};
    int * p = arr + 2;
    cout << p[3] << endl;
    return 0;
}
5

假定只有一个根节点的树的深度为 ,则一棵有 个节点的完全二叉树,则树的深度为( )。

6

对于如下图的二叉树,说法正确的是( )。

7

图的存储和遍历算法,下面说法错误的是( )。

8

一个连通的简单有向图,共有28条边,则该图至少有( )个顶点。

9

以下哪个方案不能合理解决或缓解哈希表冲突( )。

10

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

11

下面程序的输出为( )。

#include <iostream>
using namespace std;
int rec_fib[100];
int fib(int n) {
    if (n <= 1)
    return n;
    if (rec_fib[n] == 0)
    rec_fib[n] = fib(n - 1) + fib(n - 2);
    return rec_fib[n];
}
int main() {
    cout << fib(6) << endl;
    return 0;
}
12

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

int rec_fib[MAX_N];
int fib(int n) {
    if (n <= 1)
    return n;
    if (rec_fib[n] == 0)
    rec_fib[n] = fib(n - 1) + fib(n - 2);
    return rec_fib[n];
}
13

下面search函数的平均时间复杂度为( )。

int search(int n, int * p, int target) {
    int low = 0, high = n;
    while (low < high) {
        int middle = (low + high) / 2;
        if (target == p[middle]) {
            return middle;
        } else if (target > p[middle]) {
            low = middle + 1;
        } else {
            high = middle;
        }
    }
    return -1;
}
14

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

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;
        }
    }
}
15

下列选项中,哪个不可能是下图的广度优先遍历序列( )。

判断题(共 10 题,每题 2 分)

16

C++语⾔中,表达式9 & 12的结果类型为int、值为8。

17

C++语⾔中,指针变量指向的内存地址不一定都能够合法访问。

18

对 个元素的数组进行快速排序,最差情况的时间复杂度为 。

19

一般情况下,long long类型占用的字节数比float类型多。

20

使用math.h或cmath头文件中的函数,表达式pow(10, 3)的结果的值为1000、类型为int。

21

二叉排序树的中序遍历序列一定是有序的。

22

无论哈希表采用何种方式解决冲突,只要管理的元素足够多,都无法避免冲突。

23

在C++语⾔中,类的构造函数和析构函数均可以声明为虚函数。

24

动态规划方法将原问题分解为一个或多个相似的⼦问题,因此必须使用递归实现。

25

如果将城市视作顶点,公路视作边,将城际公路网络抽象为简单图,可以满足城市间的车道级导航需求。

编程操作题(共 2 题,共 50 分)

26
编程操作题 25分

试题名称:线图

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

题目描述

给定由 个结点与 条边构成的简单⽆向图 ,结点依次以 编号。简单⽆向图意味着 中不包含重边与
⾃环。 的线图 通过以下⽅式构建:
初始时线图 为空。

输入格式

第⼀⾏,两个正整数 ,分别表⽰⽆向图 中的结点数与边数。
接下来 ⾏,每⾏两个正整数 ,表⽰ 中连接 的⼀条⽆向边。

输出格式

输出共⼀⾏,⼀个整数,表⽰线图 中所包含的⽆向边的数量。

数据范围

对于 % 的测试点,保证 , 。
对于所有测试点,保证 , 。

27
编程操作题 25分

试题名称:调味平衡

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

题目描述

⼩ A 准备了 种⾷材⽤来制作料理,这些⾷材依次以 编号,第 种⾷材的酸度为 ,甜度为 。对于每
种⾷材,⼩ A 可以选择将其放⼊料理,或者不放⼊料理。料理的酸度 为放⼊⾷材的酸度之和,甜度 为放⼊⾷材
的甜度之和。如果料理的酸度与甜度相等,那么料理的调味是平衡的。
过于清淡的料理并不好吃,因此⼩ A 想在满⾜料理调味平衡的前提下,合理选择⾷材,最⼤化料理的酸度与甜度之
和。你能帮他求出在调味平衡的前提下,料理酸度与甜度之和的最⼤值吗?

输入格式

第⼀⾏,⼀个正整数 ,表⽰⾷材种类数量。
接下来 ⾏,每⾏两个正整数 ,表⽰⾷材的酸度与甜度。

输出格式

输出共⼀⾏,⼀个整数,表⽰在调味平衡的前提下,料理酸度与甜度之和的最⼤值。

数据范围

对于 % 的测试点,保证 , 。
对于另外 % 的测试点,保证 , 。
对于所有测试点,保证 , 。

已答 0/27