信奥刷题站
GESP 认证 6级2023-12

2023年12月 GESP C++ 6级

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

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

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

// questions

题目预览

1
单选题2

关于 C++ 类和对象的说法,错误的是( )。

A

在 C++ 中,一切皆对象,即便是字面量如整数 555 等也是对象

B

在 C++ 中,可以自定义新的类,并实例化为新的对象

C

在 C++ 中,内置函数和自定义函数,都是类或者对象

D

在 C++ 中,可以在自定义函数中嵌套定义新的函数

2
单选题2

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

A

C++ 中类内部可以嵌套定义类

B

在类中定义的类被称为内部类,定义类的类被称为外部类

C

内部类可以随便访问,不需要通过外部类来访问

D

代码中 Point 被称为内部类,可以通过外部类 Rectangle 来访问,Rectangle::Point

3
单选题2

有关下面 C++ 代码的说法,正确的是( )。

A

第 14 行代码错误,第 15 行正确

B

第 15 行代码错误,第 14 行代码正确

C

第 14、15 两行代码都正确

D

第 6 行代码可修改为 objCounter += 1

4
单选题2

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

A

上列 C++ 代码适用于构造各种二叉树

B

代码 struct BiNode 用于构造二叉树的节点

C

代码 BiTree(){root=Creat();} 用于构造二叉树

D

析构函数不可以省略

5
单选题2

的定义,有关下面 C++ 代码的说法正确的是( )。

A

代码中 Order() 函数是中序遍历二叉树的方法

B

代码中 Order() 先访问根节点,然后对左子树进行前序遍历,再对右子树前序遍历

C

代码中 Order() 先访问中序遍历左子树,然后访问根节点,最后则是中序遍历右子树

D

代码中 Order() 先后序遍历左子树,然后后序遍历右子树,最后访问根节点

6
单选题2

有关下面 C++ 代码的说法正确的是( )。

A

上述代码构成单向链表

B

上述代码构成双向链表

C

上述代码构成循环链表

D

上述代码构成指针链表

7
单选题2

对 hello world 使用霍夫曼编码(Huffman Coding),最少 bit(比特)为( )。

A

444

B

323232

C

646464

D

888888

8
单选题2

下面的 fiboA()fiboB() 两个函数分别实现斐波那契数列,该数列第 111 、第 222 项值为 111 ,其余各项分别为前两项之和。下面有关说法错误的是( )。

A

fiboA() 采用递归方式实现斐波那契数列

B

fiboB() 采用动态规划算法实现斐波那契数列

C

由于 fiboA() 代码较短,其执行效率较高

D

由于 fiboA() 代码较短,其执行效率较高

9
单选题2

有关下面 C++ 代码不正确的说法是( )。

A

该代码可用于求解二叉树的深度

B

代码中函数 Depth() 的参数 TTT 表示根节点,非根节点不可以作为参数

C

代码中函数 Depth() 采用了递归方法

D

代码中函数 Depth() 可用于求解各种形式的二叉树深度,要求该二叉树节点至少有 leftright 属性

10
单选题2

下面有关树的存储,错误的是( )。

A

完全二叉树可以用 list 存储

B

一般二叉树都可以用 list 存储,空子树位置可以用 None 表示

C

满二叉树可以用 list 存储

D

树数据结构,都可以用 list 存储

11
单选题2

构造二叉树 [1,2,3,null,4][1,2,3,\text{null},4][1,2,3,null,4]( )。

A

1(2()(4))(3)1(2()(4))(3)1(2()(4))(3)

B

1(2(3)())(4)1(2(3)())(4)1(2(3)())(4)

C

(1,2(3),(4))(1,2(3),(4))(1,2(3),(4))

D

(1,(2)(3),(4))(1,(2)(3),(4))(1,(2)(3),(4))

12
单选题2

下面有关布尔类型的函数的说法,正确的是( )。

A

bool 类型函数只能返回 000 或者 111 两种值

B

bool 类型函数可以返回任何整数值

C

bool 类型函数必须有参数传递

D

bool 类型函数没有返回值

13
单选题2

通讯卫星在通信网络系统中主要起到( )的作用。

A

信息过滤

B

信号中继

C

避免攻击

D

数据加密

14
单选题2

小杨想编写一个判断任意输入的整数 NNN 是否为素数的程序,下面哪个方法不合适?( )

A

埃氏筛法

B

线性筛法

C

二分答案

D

枚举法

15
单选题2

内排序有不同的类别,下面哪种排序算法和冒泡排序是同一类?( )

A

希尔排序

B

快速排序

C

堆排序

D

插入排序

16
判断题2

在面向对象中,方法在 C++ 的 class 中表现为 class 内定义的函数。( )

17
判断题2

C++ 类的定义中,可以没有构造函数,会给出默认的构造函数( )

18
判断题2

如果某个 C++ 对象(object)支持下标运算符(方括号运算符),则该对象在所对应 class 中以成员函数的形式进行了重载。( )

19
判断题2

深度优先搜索(DFS,Depth First Search 的简写)属于图算法,其过程是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。( )

20
判断题2

哈夫曼编码(Huffman Coding)具有唯一性,因此有确定的压缩率。 ( )

21
判断题2

在下面 C++ 代码中,由于删除了变量 ptr,因此 ptr 所对应的数据也随之删除,故第 8 行代码被执行时,将报错。( )

22
判断题2

二叉搜索树查找的平均时间复杂度为 O(log⁡n)O(\log n)O(logn)。( )

23
判断题2

二叉搜索树可以是空树(没有任何节点)或者单节点树(只有一个节点),或者多节点。如果是多节点,则左节点的值小于父节点的值,右节点的值大于父节点的值,由此推理,右节点树的值都大于根节点的值,左节点树的值都小于根节点的值。( )

24
判断题2

小杨想写一个程序来算出正整数 NNN 有多少个因数,经过思考他写出了一个重复没有超过 N/2N/2N/2 次的循环就能够算出来了。( )

25
判断题2

同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。( )

GESP 编程操作题
26
编程题25

试题名称:闯关游戏

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

题目描述

你来到了一个闯关游戏。

这个游戏总共有 NNN 关,每关都有 MMM 个通道,你需要选择一个通道并通往后续关卡。其中,第 iii 个通道可以让你前进 aia_iai 关,也就是说,如果你现在在第 xxx 关,那么选择第 iii 个通道后,你将直接来到第 x+aix+a_ix+ai 关(特别地,如果 x+ai≥Nx + a_i \geq Nx+aiN,那么你就通关了)。此外,当你顺利离开第 sss 关时,你还将获得 bsb_sbs 分。

游戏开始时,你在第 000 关。请问,你通关时最多能获得多少总分。

输入格式

第一行两个整数 NNNMMM,分别表示关卡数量和每关的通道数量。

接下来一行 MMM 个用单个空格隔开的整数 a0,a1⋯ ,aM−1a_0,a_1\cdots,a_{M-1}a0,a1,aM1。保证 1≤ai≤N1\le a_i \le N1aiN

接下来一行 NNN 个用单个空格隔开的整数 b0,b1⋯ ,bN−1b_0,b_1\cdots,b_{N-1}b0,b1,bN1。保证 ∣bi∣≤105|b_i|\le 10^5bi105

输出格式

一行一个整数,表示你通关时最多能够获得的分数。

样例输入 #1

6 2 
2 3
1 0 30 100 30 30

样例输出 #1

131

样例输入 #2

6 2
2 3
1 0 30 100 30 -1

样例输出 #2

101

说明/提示

样例解释 1

你可以在第 000 关选择第 111 个通道,获得 111 分并来到第 333 关;随后再选择第 000 个通道,获得 100100100 分并来到第 555 关;最后任选一个通道,都可以获得 303030 分并通关。如此,总得分为 1+100+30=1311+100+30=1311+100+30=131

样例解释 2

请注意,一些关卡的得分可能是负数。

数据范围

对于 20%20\%20% 的测试点,保证 M=1M=1M=1

对于 40%40\%40% 的测试点,保证 N≤20N \le 20N20;保证 M≤2M\le 2M2

对于所有测试点,保证 1≤N≤1041 \le N \le 10^41N104;保证 1≤M≤1001 \le M\le 1001M100

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

试题名称:工作沟通

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

题目描述

某公司有 NNN 名员工,编号从 000N−1N-1N1。其中,除了 000 号员工是老板,其余每名员工都有一个直接领导。我们假设编号为 iii 的员工的直接领导是 fif_ifi

该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工 xxx 可以管理员工 yyy,当且仅当 x=yx=yx=y,或 x=fyx=f_yx=fy,或 xxx 可以管理 fyf_yfy。特别地,000 号员工老板只能自我管理,无法由其他任何员工管理。

现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。如果有多名满足这一条件的员工,他们希望找到编号最大的员工。你能帮帮他们吗?

输入格式

第一行一个整数 NNN,表示员工的数量。

第二行 N−1N - 1N1 个用空格隔开的正整数,依次为 f1,f2,…fN−1f_1,f_2,\dots f_{N−1}f1,f2,fN1

第三行一个整数 QQQ,表示共有 QQQ 场合作需要安排。

接下来 QQQ 行,每行描述一场合作:开头是一个整数 mmm2≤m≤N2 \le m \le N2mN),表示参与本次合作的员工数量;接着是 mmm 个整数,依次表示参与本次合作的员工编号(保证编号合法且不重复)。

保证公司结构合法,即不存在任意一名员工,其本人是自己的直接或间接领导。

输出格式

输出 QQQ 行,每行一个整数,依次为每场合作的主持人选。

样例输入 #1

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

样例输出 #1

2
2
0

样例输入 #2

7
0 1 0 2 1 2
5
2 4 6
2 4 5
3 4 5 6
4 2 4 5 6
2 3 4

样例输出 #2

2
1
1
1
0

说明/提示

样例解释 1

对于第一场合作,员工 3,43,43,4 有共同领导 222 ,可以主持合作。

对于第二场合作,员工 222 本人即可以管理所有参与者。

对于第三场合作,只有 000 号老板才能管理所有员工。

数据范围

对于 50%50\%50% 的测试点,保证 N≤50N \leq 50N50

对于所有测试点,保证 3≤N≤3003 \leq N \leq 3003N300Q≤100Q \leq 100Q100


2024/1/28 添加一组 hack 数据。

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