理论卷2024年3月GESP等级认证(C++) · 六级

GESP C++ 6级 2024.03

满分 100 · 及格 60 · 时长 60 分钟 · 共 27 题 (单选15 / 判断10 / 编程题2)
试卷阅览 · 免费预览前 10 题 · 交卷后可查看答案与解析
1
单选题号 #12537
分值 2

阅读以下广度优先搜索的代码:

void bfs(TreeNode* root) {
 if (root == NULL) {
 return;
 }
 queue q;
 q.push(root);
 while (!q.empty()) {
 TreeNode* current = q.front();
 q.pop();
 cout val left) {
 q.push(current->left);
 }
 if (current->right) {
 q.push(current->right);
 }
 }
}

使用以上算法遍历以下这棵树,可能的输出是( )。

 1
 / \
 2 3
 / \ \
8 9 6
 / \ \
 4 5 7
 / \
 10 11
A

1 2 8 9 4 5 3 6 7 10 11

B

1 2 3 4 5 6 7 8 9 10 11

C

1 2 3 8 9 6 4 5 7 10 11

D

1 2 3 8 9 4 5 6 7 10 11

2
单选题号 #12538
分值 2

在构建哈夫曼树时,每次应该选择( )合并。

A

最小权值的节点

B

最大权值的节点

C

随机节点

D

深度最深的节点

3
单选题号 #12539
分值 2

面向对象的编程思想主要包括以下哪些原则

A

贪心、动态规划、回溯

B

并发、并行、异步

C

递归、循环、分治

D

封装、继承、多态

4
单选题号 #12540
分值 2

在队列中,元素的添加和删除是按照( )原则进行的。

A

先进先出

B

先进后出

C

最小值先出

D

随机进出

5
单选题号 #12541
分值 2

给定一个简单的类定义如下,( )语句在类的外部正确地创建了一个 Circle 对象并调用了 getArea 函数?

class Circle {
private:
 double radius;
public:
 Circle(double r) : radius(r) {}
 double getArea() {
 return 3.14 * radius * radius;
 }
};
A

Circle c = Circle(5.0); c.getArea(c);

B

Circle c(5.0); getArea(c);

C

Circle c = new Circle(5.0); c.getArea();

D

Circle c(5.0); c.getArea();

6
单选题号 #12542
分值 2

以下代码希望能在一棵二叉排序树中搜索特定的值,请在横线处填入( ),使其能正确实现相应功能。

TreeNode* search(TreeNode* root, int target) {
 if (root == NULL || root->val == target) {
 return root;
 }
 if (_______________) {
 return search(root->left, target);
 } else {
 return search(root->right, target);
 }
}
A

target left

B

target val

C

target > root->val

D

target > root->left

7
单选题号 #12543
分值 2

3 位格雷编码的正确顺序是

A

000, 001, 010, 011, 100, 101, 110, 111

B

000, 001, 011, 010, 110, 111, 101, 100

C

000, 010, 001, 011, 100, 110, 101, 111

D

000, 010, 110, 100, 111, 101, 011, 001

8
单选题号 #12544
分值 2

以下动态规划算法的含义与目的是

int function(vector& nums) {
 int n = nums.size();
 if (n == 0)
 return 0;
 if (n == 1)
 return nums[0];
 vector dp(n, 0);
 dp[0] = nums[0];
 dp[1] = max(nums[0], nums[1]);
 for (int i = 2; i < n; ++i) {
 dp[i] = max(dp[i - 1], nums[i] + dp[i - 2]);
 }
 return dp[n - 1];
}
A

计算数组 nums 中的所有元素的和

B

计算数组 nums 中相邻元素的最大和

C

计算数组 nums 中不相邻元素的最大和

D

计算数组 nums 中的最小元素

9
单选题号 #12545
分值 2

给定一个空栈,执行以下操作序列:
操作序列: push(1), push(2), push(3), pop(), pop(), push(4), push(5), pop()
最终栈中的元素是( )。

A

1, 2

B

1, 4, 5

C

1, 2, 5

D

1, 4

10
单选题号 #12546
分值 2

一个有 124 个叶子节点的完全二叉树,最多有( )个结点。

A

247

B

248

C

249

D

250

🔒

已解锁前 10 题

第 11~27 题(共 17 题)可在考试中作答
本卷为普通试卷:注册用户每题扣 1 积分(每日登录送 30 体验积分),交卷后查看答案与解析
海小星AI平台海小星AI平台

点亮AI梦想,编程未来之星。专业的青少年AI编程教育平台。

课程方向

  • AIGC人工智能
  • Scratch图形化
  • Python编程
  • C++/NOIP竞赛

联系我们

  • 北京市西城区万博苑7号楼3层F28室
  • +86-010-83553010
  • contact@seanova.cn

© 2026 海小星AI平台|京ICP备2022032747号

隐私政策服务条款