Logo

2026年3月 GESP C++ 1级

GESP · 1级 · 2026-03

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

2026年3月 GESP C++ 1级认证考试真题(含编程操作题部分)

答题卡 已答 0/27
已答 正确 错误 编程题

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

1

2026 年春节联欢晚会上一个武术表演节目《武 BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备( )。

2

小明学习编程有一段时间了,他想在图形环境下把当前目录(或文件夹)下的文本文件 20260314.txt 的名字改一下。他用鼠标左键点击选中该文件后,立即完成下面哪个操作后将处于输入新文件名的状态( ):

3

下面 C++ 代码可以执行,有关说法正确的是( )。

double PI = 3.1415926;
cout << (PI);
4

C++ 表达式 3 * 3 % 2 的值为( )。

5

整型变量 $a$、$b$ 的初值都是 $4$,则下面的 C++ 代码执行后的输出是( )。

a, b = 3, 4;
cout << (a + 2) << (b - 2) << endl;
cout << a << b << endl;
6

下面 C++ 代码的相关说法,正确的是( )。

int N = 0;
cin >> N;
cout << (N);
7

下面 C++ 代码执行时,其说法正确的是( )。

int M = 0, N = 0;
cin >> M;
cin >> N;
if (N > M)
    cout << (N - M);
else
    cout << (M - N);
8

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

int i, tnt = 1;
for (i = 0; i < 5; i++)
    tnt *= i;
printf("%2d%2d\n", tnt, i);
9

执行下面 C++ 代码段求序列 $-1+2+3-4+5+6-7+8+9-10+11+12......$ 之值。例如输入 $4$,则计算序列前 $4$ 项的值,规律如序列所示,输出为 $0$。下面说法中正确的是( )。

int N, tnt, i;
cout << "请输入正整数:";
cin >> N;
tnt = 0;
for (i = 1; i < N + 1; i++) // L1
    if (i % 3 == 1) // L2
        tnt += -i;
    else
        tnt += i;
cout << tnt;
10

下面 C++ 代码的相关说法,正确的是( )。

int i;
for (i = 1; i < 10; i++){
    if (i % 2 == 0){
        continue; // L1
    }
    else
        cout << i << "#";
}
cout << i << "END";
11

一个正整数的每位都是个位数,称为数位,最高位非 $0$。下面的 C++ 代码用于求正整数的所有数位之和,简称数位和。如 $123$ 的各数位分别是 $1$、$2$、$3$,则其数位和为 $1+2+3$,结果为 $6$。为实现该目标,横线处应该填写的代码是( )。

int N;
cin >> N;
int tnt = 0;
while (N != 0){
    ____________;
    ____________;
}
cout << "N的数位和为:" << tnt;
12

小明想要快速知道任给一个正整数中有多少个奇数位(数位值是奇数),下面的 C++ 代码是其实现,横线处应该填入的代码是( )。

int N;
cin >> N;
int odd_count = 0; // 记录奇数的个数
int old_number = N; // 保存原数
while (N != 0){
    if (_________________)
        odd_count += 1;
    N = (N - N % 10) / 10;
}
cout << old_number << "中共有 " << odd_count << " 个奇数";
13

小明和弟弟在玩一个拼数字游戏,游戏规则是:二人各写一个两位正整数 $M$ 和 $N$;然后将较大的数字放在较小的前面,拼成一个 $4$ 位数;将这个 $4$ 位数除以 $3$ 的余数添加到 $4$ 位数的后面,得到一个 $5$ 位数;最后判断这个 $5$ 位数能否被 $14$ 整除。下面的 C++ 代码用于判断 $M$ 和 $N$ 是否符合全部要求,如果符合则输出 Y 否则输出 N。例如输入 $85$ 和 $79$,可以拼出 $85792$,恰好是 $14$ 的倍数,则输出 Y。关于下面代码描述正确的是( )。

int M, N, Q;
cin >> M >> N;
if(M > N) // L1
    Q = M*100+N;
else
    Q = N*100+M;
if((Q*10+Q%3) % 14 == 0) // L2
    cout << "Y";
else
    cout << "N";
14

执行下面 C++ 代码可以判断一个 $6$ 位正整数 $N$ 的高 $3$ 位和低 $3$ 位的差是否是 $314$ 的倍数。例如 $628314$ 就符合要求。横线处应该填入( )。

cin >> N;
if (___________________________)
    cout << N << "符合条件" << endl;
15

$N$ 是一个正整数。如果 $N$ 的所有奇数位的数位和等于所有偶数位的数位和,则称它是一个“双螺旋数”。例如 $12375$ 的所有奇数位的数位和是 $9$,同时它的所有偶数位的数位和也是 $9$,则 $12375$ 就是一个双螺旋数。下面的 C++ 代码用于判断输入的 $N$ 是否为双螺旋数。空白处应该填入的代码是( )。

int i, N, N1=0, N2=0, N0;
cin >> N;
N0 = N;
while (N){
    _________________________
    _________________________
}
if(N1 == N2)
    cout << N0 << "是双螺旋数" << endl;

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

16

小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。

17

C++ 表达式 4 % 22 * 2 % 2 的结果相同。

18

下面 C++ 代码段成功执行后将输出 $0$。

for (i = 1; i < 10; i++)
    if (i % 3 == 0)
        break;
cout << i;
19

下面能够正常执行的 C++ 代码段用于求 $1$ 到 $N$ 之和,$N$ 为正整数。因为 i < N + 1,所以是 $1$ 到 $N$ 且包含 $N$ 之和。

tnt = 0;
cout << "请输入正整数:";
cin >> N;
total = 0;
for (i = 1; i < N + 1; i++) ;
total += i;
cout << total;
20

执行下面的 C++ 代码段,其语句 cout << (N) 将被执行 $0$ 次或无数次(即死循环)。

cin >> N;
while (N)
    cout << (N);
21

下面的 C++ 代码段的变量都是整型,它能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同。例如,$121$ 和 $414$ 都是对称数,而 $123$ 不是对称数。( )

cout << "请输入正整数:";
cin >> n;
old_number = n;
new_number = 0;
while (n != 0){
    new_number = new_number * 10 + n % 10;
    n /= 10;
}
if (old_number == new_number)
    cout << "对称数";
else
    cout << "非对称数";
22

执行下面的 C++ 代码段,如果变量都为整型变量,输入为大于 $0$ 的整数,则输出数值一定为 $-N$ 的值。

cin >> N;
total = 0;
for (i = -N; i < N; i += 2)
    total += i;
cout << total;
23

执行 C++ 语句 printf("%d\n", 3.14) 将报错。

24

执行下面的 C++ 代码后将输出 $2500$。

int cnt = 0;
for (int i = 1; i < 100; i++)
    cnt += i++;
cout << cnt;
25

小明在测试 C++ 的 printf 的功能时执行了 printf("%-5d\n", 314),则代码输出的结果是 -5314

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

26
编程操作题 25分

试题名称:交朋友

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

题目描述

Alice 班上共有 4 个小朋友,身高分别为 $H_1$, $H_2$, $H_3$, $H_4$,其中 Alice 的身高为 $H_1$。Alice 想要和身高最接近她的人交朋友,如果有多个人符合条件,则 Alice 想和其中较矮的那一人做朋友,你能告诉她这个人的身高是多少吗?

输入格式

输入共 4 行,第 $i$ 行包含一个整数 $H_i$,表示班上小朋友的身高。

输出格式

输出 1 行,包含一个整数 $h$,表示 Alice 想交的朋友的身高。

样例输入 #1

150
165
135
133

样例输出 #1

135

说明/提示

样例解释

样例 1 中,Alice 身高为 $150$,第 2、3 个小朋友与 Alice 身高差距为 $15$,同样最接近,Alice 选较矮的一个即第 $3$ 个身高为 $135$ 的小朋友交朋友。

数据范围

保证 $100 \leq H_i \leq 199$ 且 $H_i$ 互不相同。

27
编程操作题 25分

试题名称:数字替换

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

题目描述

Alice 不喜欢数字 $4$,但觉得数字 $8$ 寓意好,她想把数中的 $4$ 全都替换成 $8$,若数中不含 $4$ 则无需修改,你能帮帮她吗?

输入格式

输入一行,包含一个整数 $A$,表示替换前的数。

输出格式

输出一行,包含一个整数 $B$,表示替换后的数。

样例输入 #1

8459045

样例输出 #1

8859085

样例输入 #2

123

样例输出 #2

123

说明/提示

样例解释

对于样例 $1$,输入 $8459045$ 中有两个 $4$,都将其替换为了 $8$,得到 $8859085$。

对于样例 $2$,输入 $123$ 中不包含 $4$,无需修改输入数字,输出 $123$。

数据范围

保证 $0\leq A\leq 10^8$。

已答 0/27