理论卷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小杨用一个二维数组表示棋盘,其中 表示有棋子, 表示没有棋子。他想知道第 行第 列有没有棋子,可采用的代码是:( )。
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对如下 个扑克牌进行排序,使用某排序算法按 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 积分);已购长期正课学员自动享有权益
