#1101. GESP C++ 六 级 2025年12月真题 · 单选题
GESP C++ 六 级 2025年12月真题 · 单选题
GESP C++ 六 级 2025年12月真题(180 分钟,总分 100 分)
单选题(共 15 题,每题 2 分,共 30 分)
1. 在面向对象编程中,下列关于虚函数的描述中,错误的是( )。
{{ select(1) }}
- 虚函数用于支持运行时多态
- 通过基类指针调用虚函数时,会根据对象实际类型决定调用版本
- 构造函数可以声明为虚函数以支持多态
- 基类析构函数常声明为虚函数以避免资源泄漏
2. 执行如下代码,会输出 钢琴:叮咚叮咚 和 吉他:咚咚当当。这体现了面向对象编程的( )特性。

{{ select(2) }}
- 继承
- 封装
- 多态
- 链接
3. 关于以下代码,说法正确的是( )。

{{ select(3) }}
- 执行代码会输出两行,内容分别为:钢琴:叮咚叮咚和吉他:咚咚当当
- 执行代码会输出两行,内容分别为:乐器在演奏声音和乐器在演奏声音
- 代码编译出现错误
- 代码运行出现错误
4. 某文本编辑器把用户输入的字符依次压入栈S。用户依次输入A, B, C, D 后,用户按了两次撤销(每次撤销,弹出栈顶一个字符)。此时栈从栈底到栈顶的内容是:( )。
{{ select(4) }}
- A B
- A B C
- A B D
- B C
5. 假设循环队列数组长度为 N,其中队空判断条件为:front == rear,队满判断条件为:(rear + 1) % N == front,出队对应的操作为:front = (front + 1) % N,入队对于的操作为:rear = (rear + 1) % N。循环队列长度 N = 6,初始 front = 1, rear = 1,执行操作序列为:入队, 入队, 入队, 出队, 入队, 入队,则最终 (front, rear) 的值是( )。
{{ select(5) }}
- (2, 5)
- (2, 0)
- (3, 5)
- (3, 0)
6. 以下函数check()用于判断一棵二叉树是否为( )。

{{ select(6) }}
- 满二叉树
- 完全二叉树
- 二叉搜索树
- 平衡二叉树
7. 以下代码实现了二叉树的( )。

{{ select(7) }}
- 前序遍历
- 中序遍历
- 后序遍历
- 层序遍历
8. 下面代码实现了哈夫曼编码,则横线处应填写的代码是( )。



{{ select(8) }}
nodes.push_back(Node(nodes[x].w + nodes[y].w, x, y, -1)); internalIdx.push_back(z);nodes.push_back(Node(nodes[x].w + nodes[y].w, x, y, -1)); leafIdx.push_back(z);internalIdx.push_back(z); nodes.push_back(Node(nodes[x].w + nodes[y].w, x, y, x+y));nodes.push_back(Node(nodes[x].w + nodes[y].w, x, y, x+y)); leafIdx.push_back(z);
9. 以下关于哈夫曼编码的说法,正确的是( )。
{{ select(9) }}
- 哈夫曼编码是定长编码
- 哈夫曼编码中,没有任何一个字符的编码是另一个字符编码的前缀
- 哈夫曼编码一定唯一
- 哈夫曼编码不能用于数据压缩
10. 以下函数实现了二叉排序树(BST)的( )操作。

{{ select(10) }}
- 查找
- 插入
- 删除
- 遍历
11. 下列代码实现了树的深度优先遍历,则横线处应填入( )。

{{ select(11) }}
if (node->left) st.push(node->left);if (node->left) st.pop(node->left);if (node->left) st.front(node->left);if (node->left) st.push(node->right);
12. 给定一棵普通二叉树(节点值没有大小规律),下面代码判断是否存在值为x的结点,则横线处应填入( )。

{{ select(12) }}
q.push(cur);if (cur->right) q.push(cur->right);

13. 在二叉排序树(Binary Search Tree, BST)中,假设节点值互不相同。给定如下搜索函数,以下说法一定正确的是( )。

{{ select(13) }}
- 最坏情况下,访问结点数是O(log n)
- 最坏情况下,访问结点数是O(n)
- 无论如何,访问结点数都不超过树高的一半
- 一定比在普通二叉树中搜索快
14. 0/1背包(每件物品最多选一次)问题通常可用一维动态规划求解,核心代码如下。则下面说法正确的是( )。

{{ select(14) }}
- 内层j必须从小到大,否则会漏解
- 内层j必须从大到小,否则同一件物品会被用多次
- j从大到小或从小到大都一样
- 只要dp初始为0,方向无所谓
15. 以下关于动态规划的说法中,错误的是( )。
{{ select(15) }}
- 动态规划方法通常能够列出递推公式。
- 动态规划方法的时间复杂度通常为状态的个数。
- 动态规划方法有递推和递归两种实现形式。
- 对很多问题,递推实现和递归实现动态规划方法的时间复杂度相当。
相关
在下列比赛中: