编程未来 Coding Future

2026年6月 GESP C++ 2级

GESP · 2级 · 2026-06

60:00
满分 100.0
时长 60 分钟
27

2026年6月 GESP C++ 2级认证考试真题(客观题部分)

单选题(共 15 题,每题 2 分)

1

学校组织到未来农场参观,小明听讲解员介绍,在智能温室中,湿度传感器可以连续检测⼟壤的湿度变化,
并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿
度传感器所发挥的作用,类似于计算机系统中的哪一类组件?( )

2

小明去农场参观回来后就在自⼰的电脑上安装了一个 3D 农场仿真模拟系统,因为他今年买的二手电脑有点
老旧,系统运行时经常弹出“系统内存不足”的警告,导致系统卡顿严重。他计划通过增加物理内存来解决问题。请
问他应该购买以下哪种硬件组件?( )

3

有关如下 C++ 代码的说法,正确的是( )。
1 float a = 3 + 3.5;
2 cout << a;

4

下面选择项中,与 C++ 表达式 not (x > 5 or y <= 10) 等价的是( )。

5

小明在某开发环境中执行 C++ 代码 cout << (2.5 + 2.25) << ' ' << (2.2 + 2.1) 时输出 4.75
4.300000000000001,其原因最可能是( )。

6

执行如下 C++ 程序后,当输入 4 时,输出的最后一行是( )。

int n;
cin >> n;
for (int i = n; i > 0; i--) {
    for (int j = 0; j < i; j++)
    cout << j + 1 << ' ';
    cout << endl;
}
7

下面的 C++ 代码执行后其输出是( )。

int tnt = 0;
for (int i = 1; i < 5; i += 3) {
    for (int j = 0; j < i; j++)
    tnt += 1;
    cout << tnt << "#";
}

cout << tnt;
8

下面的 C++ 代码执行之后的输出是( )。

int i;
for (i = -2; i < 2; i++)
if (not i % 3 == 0)
cout << i << "#";
cout << i;
9

下面的 C++ 代码执行后其输出是( )。

int cnt = 0, i, j;
for (i = 0; i < 3; i++) {
    j = i;
    while (j) {
        cnt += 1;
        j -= 1;
    }
}

cout << i << ' ' << j << ' ' << cnt;
10

下面 C++ 代码执行后其输出是( )。

int count = 0, i, j;
for (i = 1; i < 4; i++)
for (j = 0; j < i; j++) {
    if (j % 3 != 0)
    continue;
    count += 1;
    break;
}

cout << i << ' ' << j << ' ' << count;
11

如下 C++ 代码执行后输出是 1 2 3 4 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7 8 9 10 11 5 6 7
8 9 10 11 5 6 7。横线处应该填入的运算符是( )。

int num = 1;
for (int i = 0; i < 35; i++) {
    cout << num << " ";
    if (num _______ 10)
    num _______ 2;
    else
    num _______ 1;
}
12

如下数字图形在通过执行后续的 C++ 代码时,输入 10 来输出。横线处应填入的代码是( )。

1 1 1 1 1 1 1 1 1 1
1 1 0 0 0 0 0 0 0 1
1 0 1 0 0 0 0 0 0 1
1 0 0 1 0 0 0 0 0 1
1 0 0 0 1 0 0 0 0 1
1 0 0 0 0 1 0 0 0 1
1 0 0 0 0 0 1 0 0 1
1 0 0 0 0 0 0 1 0 1
1 0 0 0 0 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1
int N;
cin >> N;
for (int i = 1; i < N + 1; i++) {
    for (int j = 1; j < N + 1; j++)
    if (________)
    cout << "1 ";
    else
    cout << "0 ";
    cout << endl;
}
13

英文 corner case 通常翻译为极端案例或边角案例,通常指正常范围以外的问题或者情形。在如下 C++
代码中,变量都是整型,则 corner case 最应该是( )。

int tnt = 0, cnt = 0;
while (1) {
    int score;
    cin >> score;
    if (score == -1)
    break;
    tnt += score;
    cnt += 1;
}

cout << tnt / cnt;
14

如下 C++ 代码执行后,输入 4 后,输出的数字图形是( )。

int n;
cin >> n;
for (int i = n; i > 0; i--) {
    for (int j = 0; j < n - i; j++)
    cout << "0 ";
    for (int k = 0; k < i; k++)
    cout << k + 1 << " ";
    cout << endl;
}
15

某学校举办“校园演讲比赛”,每位选手由 位评委打分(分数为 的整数),且每位评委必须打分。
计分规则:去掉一个最高分,去掉一个最低分。如下程序通过键盘先输入选手编号,然后依次输入 个分数,并计
算最终得分。下列说法正确的是( )。

for (int i = 0; i < 10; i++) {
    int id, score;
    printf("输入选手编号: ");
    scanf("%d", &id);

    int max_score = 0, min_score = 100; // 最高分和最低分
    int total_score = 0; // 总分

    for (int j = 1; j < 9; j++) {
        printf("输入选手第%d个成绩:", j);
        scanf("%d", &score);

        if (max_score < score)
        max_score = score;

        if (min_score > score)
        min_score = score;

        total_score += score;
    }

    total_score = total_score - max_score - min_score;
    printf("%d号选手的成绩:\
    去掉一个最高分%d,\
    去掉一个最低分%d,\
    最后成绩是:%d", id, max_score, min_score, total_score);
}

判断题(共 10 题,每题 2 分)

16

⼜到期末考试周,小明发现这次许多闭卷考试不仅禁⽌携带手机、平板电脑,还有最近比较时髦的各类 AI
眼镜(也有叫智能眼镜)也同样不允许带入考场。这些 AI 眼镜应该也是内置了操作系统并可能支持 Wi-Fi 或蓝⽛连
接。

17

C++ 代码 cout << (not ('5' % 2 == 0) == ((not '5' % 2) == 0)) 执行后的输出是 1。

18

执行 C++ 语句 cout << (int(3.5) * 2) 将输出 6。

19

下面 C++ 代码执行后将输出 1-4-7-。

for (int i = 1; i < 10; i += 3) {
    if (not i % 3)
    break;
    cout << i << "-";
}
20

执行如下 C++ 代码,将从小到大依次输出 abs(N) 个整数,并在最后输出 1。

int N;
cin >> N;
int start_num = 1, end_num = N + 1, i;

if (N < 0)
start_num = N, end_num = 0;

for (i = start_num; i < end_num; i++)
cout << i << " ";

cout << endl << ((i - 1) == abs(N)) << endl;
21

如下 C++ 代码执行后,输出值为 9。

int cnt = 0, i;
for (i = 0; i < 10; i++) {
    for (int j = 0; j < i; j++)
    cnt += 1;
    break;
}

cout << i;
22

如下 C++ 代码执行时如输入 10,输出将是 100。

int cnt = 0, N;
cout << "请输入正整数:";
cin >> N;
for (int i = 0; i < N; i++)
for (int j = -i; j < i; j++)
cnt += 1;
cout << cnt;
23

如下 C++ 代码执行其输出是 3。

int count = 0;
int i = 0;
while (i < 3) {
    int j = 0;
    while (j < 3) {
        if (i + j >= 3)
        count += 1;
        j += 1;
    }
    i += 1;
}

cout << count;
24

如下 C++ 代码执行时如果输入正整数,其输出将是输入的正整数。

int N;
cin >> N;
int i = 0, Nbase = 1;
int rst = 0;
while (N != 0) {
    rst = rst + N % 10 * Nbase;
    N /= 10, Nbase *= 10;
    i += 1;
}

cout << rst;
25

如下 C++ 代码执行时如输入 5,将输出代码后的字符图形。

int n;
cin >> n;
for (int i = 1; i < n + 1; i++) {
    for (int j = 1; j < n - i + 1; j++)
    cout << 0;
    for (int k = 1; k < 2 * i; k++) {
        if (k <= i)
        cout << k;
        else
        cout << 2 * i - k;
    }
    for (int j = 1; j < n - i + 1; j++)
    cout << 0;
    cout << endl;
}
```text

000010000
000121000
001232100
012343210
123454321

编程操作题(共 2 题,共 50 分)

26
编程操作题 25分

试题名称:完全平方数计数

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

小杨同学正在研究完全平方数。

平方: 一个数的平方等于这个数乘以这个数本身。

完全平方数: 指可以恰好表示为某个正整数的平方的数。

例如,$9$ 是完全平方数,因为 $9 = 3^2 = 3 \times 3$;但 $27$ 不是,因为 $27$ 不能表示为任何正整数的平方。

给定两个正整数 $l$ 和 $r$(保证 $l \le r$),小杨同学想知道 $l$ 到 $r$ 之间的所有正整数中(包含 $l$ 和 $r$),有多少个数是完全平方数。

输入格式

输入两行,第一行为一个正整数 $l$,第二行为一个正整数 $r$。

输出格式

输出一个非负整数,表示 $l$ 到 $r$ 中,有多少个正整数是完全平方数。如果 $l$ 到 $r$ 中没有完全平方数,则输出 $0$。

样例输入 #1

1
21

样例输出 #1

4

说明/提示

样例解释 1

在 $1$ 到 $21$ 中,有以下 $4$ 个整数是完全平方数:
$1, 4, 9, 16$。

数据范围

$1 \le l \le r \le 2000$。

27
编程操作题 25分

试题名称:菱形

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

给定正整数 $n$,在 $(2n - 1) \times (2n - 1)$ 个网格的画布中,使用字符画一个边长为 $n$ 个网格的菱形。其中,空白网格使用 $\cdot$ 表示,菱形边所在的网格用 $+$ 表示。

例如当 $n = 3$ 时,图形如下:

..+..
.+.+.
+...+
.+.+.
..+..

输入格式

输入一个正整数 $n$;

输出格式

输出 $2n - 1$ 行,表示按要求画的菱形。

样例输入 #1

4

样例输出 #1

...+...
..+.+..
.+...+.
+.....+
.+...+.
..+.+..
...+...

说明/提示

数据范围

$3 \le n \le 15$。

已答 0/27