选择题 共15道

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


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

E1084 2026-09 CCF-GESP C++一级真题-练习

选择题 共15道
01

第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境(IDE)编写并调试方阵的控制程序。下列关于IDE 功能的描述,错误的是?

2分
登录后查看选项
02

现代计算机自问世至今,已经经历了四个时代,即:电子管计算机(1946—1958 年)、晶体管计算机(1958—1964 年)、中小规模集成电路计算机(1965—1970 年)以及大规模和超大规模集成电路计算机(1971年至今)。那么这里划分计算机时代所采用的主要依据是()。

2分
登录后查看选项
03

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

int a = 4 + -2 * 3 ;
cout << a ;
2分
登录后查看选项
04

下列C++ 表达式与2 * - 2 % 3 的值相同的是()。

2分
登录后查看选项
05

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

int a = 3 ;
int b = 4 ;
printf("%d#%d\n ", a , b);
2分
登录后查看选项
06

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

int a = 8;
int b = 10 ;
cout << (a % b) << " " << (a * 1 / b) << " " << (a * 1 .0 / b);
2分
登录后查看选项
07

执行下面代码后,b 的值会是()。

int b = 8;
++b *= 2 + 1;
2分
登录后查看选项
08

执行如下C++ 代码,其输出是()。

int i , cnt = 0 ;
for (i = 0 ; i < 10 ; i++)
	cnt += 1;
cout << i << ' ' << cnt ;
2分
登录后查看选项
09

执行如下C++代码,变量都是整型,则其输出是()。

int cnt , i;
cnt = 0 ;
for (i = -10 ; i < 0 ; i++)
	cnt += 1;
cout << (i * cnt);
2分
登录后查看选项
10

如下C++代码执行输出是()。

int i;
for (i = 1; i < 5 ; i++) {
	if (i % 3 == 0) {
		printf("%d+", i);
		continue ;
	} else {
		printf("%d-", i);
		break;
	}
}
printf("%dEND*", i);
2分
登录后查看选项
11

如下C++代码执行时,下列说法错误的是()。

int N , tot ;
cin >> N ;
tot = 0 ;
while (N > 0) {
	cout << N << "#";
	tot += 1;
	N -= 1;
}
cout << tot << "-END ";
2分
登录后查看选项
12

下列C++代码执行时如输入35,输出如下图所示。横线处应填入的代码是()。

35 34 33 32 31 30 29 28 27 26
25 24 23 22 21 20 19 18 17 16
15 14 13 12 11 10 9 8 7 6
5 4 3 2 1

int N , tot , i;
cin >> N ;
tot = 0 ;
for (i = 0 ; i < N ; i++) {
	printf(     );
	tot = tot + 1;
	if (tot % 10 == 0)
		printf("\n ");
}
2分
登录后查看选项
13

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

int k = 0 ;
while (k < 8) {
	k += 2;
	continue ;
	if (k > 5)
		break;
	cout << k << "#";
}
if (k >= 8)
	cout << "FINISH ";
2分
登录后查看选项
14

在下列C++代码中,如果N 和M 均输入大于0 的整数,则可以取得正整数N 的从右到左第M 位置的数。个位数为第1 位置。则横线处应填入()。

int N , M , M10 ;
cout << "请输入正整数:";
cin >> N ;
cout << "从右到左第几位?";
cin >> M;
M10 = 1;
for (; M > 1; M--)
	M10 *= 10 ;
cout << _____________; // L1
2分
登录后查看选项
15

求解鸡兔同笼。在如下C++代码中,tou 代表鸡和兔的头总数,jiao 代表鸡和兔的脚总数。先后两个输入均为正整数。关于该程序下面说法准确的是()

int tou , jiao , tu_tou , ji_tou ;
cout << "请输入鸡和兔的头总数:";
cin >> tou ;
cout << "请输入鸡和兔的脚总数:";
cin >> jiao ;
for (tu_tou = 0 ; tu_tou < tou + 1; tu_tou++) { // L1
	ji_tou = tou - tu_tou ;
	if (tu_tou * 4 + ji_tou * 2 == jiao) {
		printf("兔的数量=%d ,鸡的数量=%d\n ", tu_tou , ji_tou);
		break;
	}
}
if (tu_tou == tou) // L2
	printf("无解\n ");
2分
登录后查看选项
判断题 共10道
16

C++ 程序执行cin 或scanf 语句时通常是使用键盘等输入设备来输入某个变量的值。

2分
登录后查看选项
17

如果n 为3 位数的正整数,则C++表达式n % 100 将能得到最高位。如n 为123,则该表达式的值为1 。

2分
登录后查看选项
18

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

int i;
for (i = 0 ; i < 20 ; i += 3)
	if (i % 3 != 0)
		continue ;
cout << i;
2分
登录后查看选项
19

下列C++代码执行时如果先后输入10 和10 ,则将输出10小于10。

int N , M;
cin >> N >> M;
if (N > M)
	printf("%d大于%d ", N , M);
else
	printf("%d小于%d ", N , M);
2分
登录后查看选项
20

如下C++代码如果输入大于0 的整数,则可以求1 到N 之和。

int N , tot ;
cout << "请输入正整数:";
cin >> N ;
tot = 0 ;
while (N > 0) {
	tot += N ;
	N += -1;
}
cout << tot ;
2分
登录后查看选项
21

在C++ 中,表达式2 % 2 与(-2) % 2 的值相同。

2分
登录后查看选项
22

试图编译并执行下面C++代码,会输出2。

float z = 12 .0 ;
z = z / 4 ;
z --;
cout << z++;
2分
登录后查看选项
23

在C++代码中,如果两个变量 和 都只包含下划线(),但数目不同,则可能导致编译器无法识别,而报告变量重复定义。

2分
登录后查看选项
24

C++ 的变量X 是double 型,则表达式X = 27 % 12 的结果不可预测。

2分
登录后查看选项
25

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

int ans = 0 ;
for (int idx = 1; idx <= 7; idx += 2) {
	if (idx == 5)
		continue ;
	if (idx * idx > 30)
		break;
	ans += idx;
}
cout << ans ;
2分
登录后查看选项
编程题 共2道
26

新龟兔赛跑

题目描述

自从上次龟兔赛跑,兔子因为轻敌而惨败后,一直心有不甘,因此有了新一届龟兔赛跑。

乌龟和上次一样,将会以恒定的速度往终点爬行,题目将给出乌龟从起点到终点所需时间;

兔子并没有吸取教训,只是打算在终点前少睡一会儿,题目将给出兔子的速度,和兔子打算在终点前睡觉的时间;

起点和终点之间的距离固定为 1000.0,请帮忙计算乌龟和兔子谁会获胜?

输入

输入包含3行,每行一个浮点数:

第1行的浮点数表示乌龟从起点到终点所需时间;

第2行的浮点数表示兔子的速度;

第3行的浮点数表示兔子打算在终点前睡觉的时间。

输出

输出包含2行:

第1行,如果乌龟获胜,输出turtle;如果兔子获胜,输出rabbit;如果平局,输出tie;

第2行,输出兔子到达终点所需的总时间(含兔子睡觉的时间),保留两位小数。

数据范围

所有输入均有且仅有一位小数,且是不超过 1000.0 的正数。

本题默认给出的数值均为龟兔世界中的标准单位,不需要进行任何单位换算。

路程 = 速度×时间

输入样例1

20.0

100.0

11.0

输出样例1

turtle

21.00

输入样例2

20.0

100.0

9.0

输出样例2

rabbit

19.00

25分
登录后作答
27

棋盘上的奖赏

题目描述

相传古印度舍罕王为了奖赏宰相西萨发明国际象棋,西萨提的任何要求舍罕王都愿意满足。西萨只求在棋盘第 1 格放 1 粒麦子,第 2 格放 2 粒麦子,之后每一格都放前一格两倍的麦子,以此类推直到第 64 格。国王觉得这奖赏微不足道,立刻命人取粮。

然而麦子的数量飞速增长:到第 20 格已需上百万粒,到第 40 格就耗尽了全国库存,而后面仍有 24 格。最终国王发现,即便倾尽天下粮食也填不满棋盘。

聪明的你知道前 n 格总共需要多少粒麦子吗?

输入

一行,一个整数 n。

输出

一行,一个整数,表示前 n 格总共需要的麦子粒数。

数据范围

对于所有测试点,保证 1≤n≤30。

输入样例1

3

输出样例1

7

输入样例2

10

输出样例2

1023

25分
登录后作答