理论卷2025年12月GESP等级认证(C++) · 七级

GESP C++ 7级 2025.12

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

下⾯关于 C++ 中形参、实参和定义域的说法中,正确的⼀项是( )。

A

形参是函数定义时所指定的变量,它只在函数内部有效。

B

在函数内部,可以修改传⼊的形参的值,即使该形参是⼀个常量引⽤。

C

实参和形参的类型必须完全⼀致,否则会导致编译错误。

D

使⽤指针作为形参时,形参是指向实参的地址,因此对该指针赋值会影响实参。

2
单选题号 #11026
分值 2

已知三个序列:
s₁ = {3, 1, 8, 2, 5, 6, 7, 4},
s₂ = {1, 5, 1, 8, 6, 4, 7, 5, 6},
s₃ = {1, 8, 3, 5, 7, 6, 2, 4}。
以下哪个序列是它们的最长公共⼦序列( )。

A

{1, 8, 5, 6}

B

{1, 5, 6, 7}

C

{1, 8, 6}

D

{1, 5, 7, 4}

3
单选题号 #11027
分值 2

现有一个地址区间为 0∼100 \sim 10 的哈希表,当出现冲突情况,会往后找第一个空的地址存储(到 1010 冲突了就从 00 开始往后),现在要依次存储 {1,3,5,7,9}\{1, 3, 5, 7, 9\},哈希函数为 h(x)=(x2+x) mod 11h(x) = (x^2 + x) \bmod 11。其中 99 存储在哈希表哪个地址中( )。

A

1

B

2

C

3

D

4

4
单选题号 #11028
分值 2

在 0/1 背包问题中,给定一组物品,每个物品有一个重量和价值,背包的容量有限。假设背包的最大容量为 WW,物品的数量为 nn,其中第 ii 个物品的重量为 w[i]w[i],价值为 v[i]v[i]。以下关于 0/1 背包问题的描述,正确的是( )。

A

在解决 0/1 背包问题时,使用贪心算法可以保证找到最优解,因为物品只能放入一次。

B

0/1 背包是 P 问题(多项式时间可解问题),它可以在 O(nW)O(nW) 的时间复杂度内解决。

C

0/1 背包问题中,动态规划解法的空间复杂度为 O(nW)O(nW),但可以通过滚动数组技巧将空间复杂度优化到 O(W)O(W)。

D

0/1 背包问题中,每个物品只能选择一次,并且子问题之间是独立的,无法重用计算结果。

5
单选题号 #11029
分值 2

⼀棵深度为 66(根节点深度为 11)的完全⼆叉树,节点总数最少有( )。

A

31

B

32

C

63

D

64

6
单选题号 #11030
分值 2

对于如下⼆叉树,下⾯关于访问的顺序说法错误的是( )。
image.png

A

D E B F H J I G C A 是它的后序遍历序列

B

A B C D E F G H I J 是它的广度优先遍历序列

C

A B D E C F G H I J 是它的先序遍历序列

D

D B E A F C H G J I 是它的中序遍历序列

7
单选题号 #11031
分值 2

下⾯程序的运⾏结果为( )。

#include 

int query(int n, int *a, int x) {
 int l = 0, r = n;
 while (l = x) r = mid;
 else l = mid + 1;
 }

 if (l == n) return -1;
 return l;
}

int main() {
 int n = 10;
 int x = 3;
 int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};

 std::cout << query(n, num, x) << "\n";
 return 0;
}
A

2

B

3

C

4

D

5

8
单选题号 #11032
分值 2

下⾯程序中,函数 query 的时间复杂度是( )。

#include 

int query(int n, int *a, int x) {
 int l = 0, r = n;
 while (l = x) r = mid;
 else l = mid + 1;
 }

 if (l == n) return -1;
 return l;
}

int main() {
 int n = 10;
 int x = 3;
 int num[] = {1, 2, 2, 3, 3, 4, 5, 5, 6, 7};

 std::cout << query(n, num, x) << "\n";
 return 0;
}
A

O(1)O(1)

B

O(log⁡n)O(\log n)

C

O(n)O(n)

D

O(nlog⁡n)O(n\log n)

9
单选题号 #11033
分值 2

有 55 个字符,它们出现的次数分别为 22 次、22 次、33 次、33 次、55 次。现在要⽤哈夫曼编码的⽅式来为这些字符进⾏编码,最⼩加权路径长度 WPLWPL(每个字符的出现次数 ×\times 它的编码长度,再把每个字符结果加起来)的值为( )。

A

30

B

34

C

43

D

47

10
单选题号 #11034
分值 2

下⾯程序的运⾏结果为( )。

#include 
using namespace std;
int f(int n) {
 if (n <= 2) return n * 2;
 return f(n - 1) + f(n - 2);
}
int main() {
 cout << f(5) << endl;
 return 0;
}
A

10

B

16

C

26

D

30

🔒

已解锁前 10 题

第 11~27 题(共 17 题)需开通题库会员或使用积分包作答
本卷为 VIP 试卷:需开通题库会员(无限刷)或购买积分包(每题 1 积分);已购长期正课学员自动享有权益
海小星AI平台海小星AI平台

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

课程方向

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

联系我们

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

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

隐私政策服务条款