试卷总分:100分


选择题 15题 30分

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 10题 20分

16 17 18 19 20 21 22 23 24 25


编程题 2题 50分

26 27

E868 CCF-GESP编程能力等级认证-C++ -2026-03 CCF-GESP C++一级真题-考试

选择题 共15道

01

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

2分
登录后查看选项
02

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

2分
登录后查看选项
03

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

double PI = 3.1415926;
cout << (PI);
2分
登录后查看选项
04

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

2分
登录后查看选项
05

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

a, b = 3, 4;
cout << (a + 2) << (b - 2) << endl;
cout << a << b << endl;
2分
登录后查看选项
06

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

int N = 0;
cin >> N;
cout << (N);
2分
登录后查看选项
07

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

int M = 0, N = 0;
cin >> M;
cin >> N;
if (N > M)
	cout << (N - M);
else
	cout << (M - N);
2分
登录后查看选项
08

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

int i, tnt = 1;
for (i = 0; i < 5; i++)
	tnt *= i;
printf("%2d%2d\n", tnt, i);
2分
登录后查看选项
09

执行下面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;
2分
登录后查看选项
10

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

int i;
for (i = 1; i < 10; i++){
	if (i % 2 == 0){
		continue; // L1
	}
	else
		cout << i << "#";
}
cout << i << "END";
2分
登录后查看选项
11

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

int N;
cin >> N;
int tnt = 0;
while (N != 0){
	____________;
	____________;
}
cout << "N的数位和为:" << tnt;
2分
登录后查看选项
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 << " 个奇数";
2分
登录后查看选项
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";
2分
登录后查看选项
14

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

cin >> N;
if (___________________________)
	cout << N << "符合条件" << endl;
2分
登录后查看选项
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;
2分
登录后查看选项

判断题 共10道

16

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

2分
登录后查看选项
17

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

2分
登录后查看选项
18

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

for (i = 1; i < 10; i++)
	if (i % 3 == 0)
		break;
cout << i;
2分
登录后查看选项
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;
2分
登录后查看选项
20

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

cin >> N;
while (N)
	cout << (N);
2分
登录后查看选项
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 << "非对称数";
2分
登录后查看选项
22

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

cin >> N;
total = 0;
for (i = -N; i < N; i +=2)
	total += i;
cout << total;
2分
登录后查看选项
23

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

2分
登录后查看选项
24

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

int cnt = 0;
for (int i = 1; i < 100; i++)
	cnt += i++;
cout << cnt;
2分
登录后查看选项
25

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

2分
登录后查看选项

编程题 共2道

26

交朋友


Alice 班上共有 4 个小朋友,身高分别为 H1,H2,H3,H4,其中 Alice 的身高为 H1

Alice 想要和身高最接近她的人交朋友,如果有多个人符合条件,则 Alice 想和其中较矮的那一人做朋友,你能告诉她这个人的身高是多少吗?

输入

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

输出

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

数据范围

保证 100≤Hi≤199 且 Hi 互不相同。

输入样例1

150

165

135

133

输出样例1

135

25分

C0391
登录后作答
27

数字替换

题目描述

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

输入

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

输出

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

数据范围

0≤A≤10^8

输入样例1

8459045

输出样例1

8859085

输入样例2

123

输出样例2

123

25分

C0392
登录后作答