Logo

2024年12月 GESP C++ 7级

GESP · 7级 · 2024-12

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

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

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

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

1

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

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

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

3

已知数组a的定义int a[10] = {0};,下列说法不正确的是( )。

4

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

5

下列关于有向图的说法,错误的是( )。

6

一棵二叉树的每个结点均满足:结点的左⼦树和右⼦树,要么同时存在,要么同时不存在。该树有197个结
点,则其叶结点有多少个?( )

7

下列关于二叉树的说法,错误的是( )。

8

一个简单无向图有10个结点、6条边。在最差情况,至少增加多少条边可以使其连通?( )

9

一个哈希表,包括n个位置(分别编号0~(n-1)),每个位置最多仅能存储一个元素。该哈希表只有插入元素
和查询两种操作,没有删除或修改元素的操作。以下说法错误的是( )。

10

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

11

下面程序的输出为( )。

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    cout << (int)exp(2) << endl;
    return 0;
}
12

下面程序的输出为( )。

#include <iostream>
#define N 10
using namespace std;
int h[N];
int main() {
    h[0] = h[1] = 1;
    for (int n = 2; n < N; n++)
    for (int j = 0; j < n; j++)
    h[n] += h[j] * h[n - j - 1];
    cout << h[6] << endl;
    return 0;
}
13

上题中程序的时间复杂度为( )。

14

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

int sieve[MAX_N];
void init_sieve(int n) {
    for (int i = 1; i <= n; i++)
    sieve[i] = i;
    for (int i = 2; i <= n; i++)
    for (int j = i; j <= n; j += i)
    sieve[j]--;
}
15

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

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

16

表达式5 ^ 3的结果为125。

17

在C++语⾔中,函数定义和函数调用可以不在同一个文件内。

18

在 个元素中进行二分查找,平均时间复杂度是 ,但须要事先进行排序。

19

unsigned long long类型是C++语⾔中表达范围最大的非负整数类型之一,其表达范围是 。超
出该范围的非负整数运算,将无法使用C++语⾔进行计算。

20

使用math.h或cmath头文件中的函数,表达式log2(32)的结果为5、类型为int。

21

C++是一种面向对象编程语⾔,C则不是。继承是面向对象三大特性之一。因此,使用C语⾔无法实现继承。

22

邻接表和邻接矩阵都是图的存储形式。邻接表在遍历单个顶点的所有边时,时间复杂度更低;邻接矩阵在判
断两个顶点之间是否有边时,时间复杂度更低。

23

MD5是一种常见的哈希函数,可以由任意长度的数据生成128位的哈希值,曾广泛应用于数据完整性校验。
中国科学家的系列⼯作首次发现了可实用的MD5破解方法。之后,MD5逐渐被其他哈希函数所取代。

24

递归调用在运行时会由于层数过多导致程序崩溃,可以通过循环配合栈缓解这一问题。

25

一个图中,每个顶点表达一个城市,连接两个顶点的边表达从一个城市到达另一个城市的一种交通方式。
这个图可以用来表达交通网络,且是简单有向图。

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

26
编程操作题 25分

试题名称:武器购买

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

输入格式

第⼀⾏包含⼀个正整数 ,代表测试数据组数。
对于每组测试数据,第⼀⾏包含三个正整数 ,含义如题⾯所⽰。
之后 ⾏,每⾏包含两个正整数 ,代表武器的强度和花费。

输出格式

对于每组测试数据,如果存在满⾜条件的购买⽅案,输出最少花费,否则输出 -1。

27
编程操作题 25分

试题名称:燃烧

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

输入格式

第⼀⾏包含⼀个正整数 ,代表节点数量。
第⼆⾏包含 个正整数 ,代表节点权值。
之后 ⾏,每⾏包含两个正整数 ,代表存在⼀条连接节点 和 的边。

输出格式

输出⼀个正整数,代表最多燃烧的节点个数。

已答 0/27