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

GESP C++ 4级 2025.12

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

小杨想让指针 p 指向整数变量 x,正确写法是( )。

A
int p = &x;
B
int *p = x;
C
int *p = &x;
D
p = *x;
2
单选题号 #10945
分值 2

小杨写了如下的指针接力程序,程序执行完后变量 a、*p1 和 *p2 的值分别是( )。

int a = 5;
int* p1 = &a;
int* p2 = p1;
*p2 = 10;
A

5 10 10

B

5 10 15

C

10 10 10

D

5 5 10

3
单选题号 #10946
分值 2

小杨用一个二维数组表示棋盘,其中 11 表示有棋子,00 表示没有棋子。他想知道第 22 行第 33 列有没有棋子,可采用的代码是:( )。

int a[3][4] = {
 {1, 0, 1, 0},
 {0, 1, 0, 1},
 {1, 1, 0, 0}
};
A

cout << a[1, 2] << endl;

B

cout << a[1][2] << endl;

C

cout << a(1, 2) << endl;

D

cout << a{1}{2} << endl;

4
单选题号 #10947
分值 2

执行完下面的代码后,*(p + 5) 和 arr[1][1] 的值分别是( )。

int arr[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
int* p = &arr[0][0];
A

5 6

B

6 5

C

5 5

D

6 6

5
单选题号 #10948
分值 2

执行完下面的代码后,sum 的值是( )。

int arr[2][3][2] = {
 {{1, 2}, {3, 4}, {5, 6}},
 {{7, 8}, {9, 10}, {11, 12}}
};
int sum = 0;
for (int i = 0; i < 2; i++)
 for (int j = 0; j < 3; j++)
 for (int k = 0; k < 2; k++)
 if ((i + j + k) % 2 == 0)
 sum += arr[i][j][k];
A

36

B

39

C

78

D

30

6
单选题号 #10949
分值 2

执行完下面的代码后,输出是( )。

int a = 1;

void test() {
 int a = 2;
 {
 int a = 3;
 a++;
 }
 a++;
 cout << a << " ";
}

int main() {
 test();
 cout << a;
 return 0;
}
A

3 1

B

4 1

C

3 2

D

4 2

7
单选题号 #10950
分值 2

执行完下面的代码后,a、b 和 c 的值分别是( )。

void byValue(int x) { x = 100; }
void byRef(int& x) { x = 200; }
void byPointer(int* x) { *x = 300; }

int main() {
 int a = 1, b = 2, c = 3;
 byValue(a);
 byRef(b);
 byPointer(&c);
 return 0;
}
A

100 200 300

B

1 2 3

C

1 200 300

D

1 2 300

8
单选题号 #10951
分值 2

运行如下代码会输出( )。

struct Point {
 int x, y;
};

struct Rectangle {
 Point topLeft;
 Point bottomRight;
};

int main() {
 Rectangle rect = {{10, 10}, {20, 20}};
 rect.topLeft.x = 5;
 Point* p = &rect.bottomRight;
 p->y = 5;
 cout << rect.topLeft.x + rect.bottomRight.y;
 return 0;
}
A

10

B

30

C

15

D

20

9
单选题号 #10952
分值 2

给定函数 climbStairs(int n) 的定义如下,则 climbStairs(5) 的返回的值是( )。

int climbStairs(int n) {
 if(n <= 2) return n;
 int a = 1, b = 2;
 for(int i = 3; i <= n; i++) {
 int temp = a + b;
 a = b;
 b = temp;
 }
 return b;
}
A

5

B

8

C

13

D

10

10
单选题号 #10953
分值 2

对如下 44 个扑克牌进行排序,使用某排序算法按 value 排序后,结果为:{3,'D'}, {3,'B'}, {5,'A'}, {5,'C'},则这个排序算法是稳定的吗?

struct Card {
 int value;
 char suit; // 花色
};

Card cards[4] = {{5,'A'}, {3,'B'}, {5,'C'}, {3,'D'}};
A

稳定,因为相同 value 的元素相对顺序保持不变。

B

不稳定,因为 {3,'D'} 出现在 {3,'B'} 之前。

C

无法判断。

D

稳定,因为结果是有序的。

🔒

已解锁前 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号

隐私政策服务条款