#1098. GESP C++ 六 级 2025年6月真题 · 判断题
GESP C++ 六 级 2025年6月真题 · 判断题
GESP C++ 六 级 2025年6月真题(180 分钟,总分 100 分)
判断题(共 10 题,每题 2 分,共 20 分)
1. 构造函数可以被声明为 virtual。
{{ select(1) }}
- 正确
- 错误
2. 给定一组字符及其出现的频率,构造出的哈夫曼树是唯一的。
{{ select(2) }}
- 正确
- 错误
3. 为了实现一个队列,使其出队操作(pop)的时间复杂度为 O(1) 并且避免数组删除首元素的 O(n) 问题,一种常见且有效的方法是使用环形数组,通过调整队首和队尾指针来实现。
{{ select(3) }}
- 正确
- 错误
4. 对一棵二叉排序树进行中序遍历,可以得到一个递增的有序序列。
{{ select(4) }}
- 正确
- 错误
5. 如果二叉搜索树在连续的插入和删除操作后,所有节点都偏向一侧,导致其退化为类似于链表的结构,这时其查找、插入、删除操作的时间复杂度会从理想情况下的 O(log n) 退化到 O(n log n)。
{{ select(5) }}
- 正确
- 错误
6. 执行下列代码,my_dog.name 的最终值是 Charlie。
class Dog
{
public:
std::string name;
Dog(std::string str) : name(str) {}
};
int main()
{
Dog my_dog("Buddy");
my_dog.name = "Charlie";
return 0;
}
{{ select(6) }}
- 正确
- 错误
7. 下列 C++ 代码可以成功编译,并且子类 Child 的实例能通过其成员函数访问父类 Parent 的属性 value。
class Parent
{
private:
int value = 100;
};
class Child : public Parent
{
public:
int get_private_val()
{
return value; // 尝试访问父类的私有成员
}
};
{{ select(7) }}
- 正确
- 错误
8. 下列代码中的 tree 向量,表示的是一棵完全二叉树 (-1代表空节点)按照层序遍历的结果。
#include <vector>
std::vector<int> tree = {1, 2, 3, 4, -1, 6, 7};
{{ select(8) }}
- 正确
- 错误
9. 在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构以实现“先进后出”的访问顺序。
{{ select(9) }}
- 正确
- 错误
10. 下面代码采用动态规划求解零钱兑换问题:给定 n 种硬币,第 i 种硬币的面值为 coins[i-1],目标金额为 amt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回-1。
int coinChangeDPComp(vector<int> &coins, int amt)
{
int n = coins.size();
int MAX = amt + 1;
vector<int> dp(amt + 1, MAX);
dp[0] = 0;
for (int i = 1; i <= n; i++)
{
for (int a = 1; a <= amt; a++)
{
if (coins[i - 1] > a)
dp[a] = dp[a];
else
dp[a] = min(dp[a], dp[a - coins[i - 1]] + 1);
}
}
return dp[amt] != MAX ? dp[amt] : -1;
}
{{ select(10) }}
- 正确
- 错误
相关
在下列比赛中: