Logo

GESP C++ 一级 模拟卷4

GESP · 1级 · 2026-06

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

GESP C++ 一级模拟卷4(冲刺模拟卷)

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

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

1

2026年春节联欢晚会上武术表演节目《武BOT》中,多个机器人表演空翻并保持队列。如果将机器人视为一个计算机系统,下列哪项不能作为输入设备?( )

2

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

3

以下代码中,关于变量a, b的描述正确的是( )。

int a = 5;
if (a > 3) {
    int b = 10;
    cout << a + b;
}
cout << a;
4

在C++中,下列哪项可以作为合法的变量名?( )

5

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

6

以下代码执行后,其说法正确的是( )。

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

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

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

C++表达式 14 - 3 * 3 % 2 的值是( )。

9

执行以下代码,输出是( )。

int a = 5;
int b = ++a;
cout << a << " " << b;
10

以下代码用于判断某年是否为闰年(闰年:能被4整除但不能被100整除,或能被400整除),横线上应填入( )。

int year;
cin >> year;
if (__________________)
    cout << "闰年";
else
    cout << "平年";
11

以下代码执行后,输出是( )。

int i, tnt = 1;
for (i = 0; i < 5; i++)
    tnt *= i;
cout << tnt << " " << i;
12

以下代码执行后,输出是( )。

int i;
for (i = 1; i < 5; i++) {
    if (i % 3 == 0)
        break;
    cout << i << "#";
}
if (i >= 5)
    cout << "END";
13

以下代码用于判断判断N是否为位增数(如123),两处横线应填入( )。

int N, n1, n2;
cin >> N;
__________;
while (N) {
    n1 = N % 10;
    if (n1 >= n2) { cout << 0; return 1; }
    n2 = n1, N /= 10;
}
cout << 1;
14

执行以下代码可以找出百位、十位和个位满足 a²+b²=c² 的三位数。横线处应填入( )。

for (int i = 100; i <= 999; i++) {
    int a = i / 100;
    _____________
    int c = i % 10;
    if (a * a + b * b == c * c) count++;
}
15

以下代码用于判断N是否为双螺旋数(奇数位之和=偶数位之和)。空白处应填入( )。

int N, N1 = 0, N2 = 0;
while (N) {
    ____________
    ____________
}
if (N1 == N2) cout << "Yes";

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

16

小明的电话手表除了看时间还能打电话、收发信息,可以推测手表中装有操作系统。( )

17

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

18

在Windows中,1KB = 1000字节。( )

19

在C++中,false是关键字,不能作为变量名。( )

20

C++中定义整型变量N,执行scanf("%d",&N); cout<<N/3*5; 时输入3.6,输出是6。( )

21

以下代码执行时输出是__0322$$。( )

printf("__%02d%2d$$", 3, 22);
22

C++表达式 (N % 2 == 0) && (N % 3 == 0) 和 N % 6 == 0 对于所有正整数N效果相同。( )

23

C++中,表达式 100 / 200 * 200 的值是0。( )

24

以下代码能正确判断输入的正整数是否为对称数(回文数)。( )

int n, rev = 0, old;
cin >> n;
old = n;
while (n != 0) {
    rev = rev * 10 + n % 10;
    n /= 10;
}
if (old == rev)
    cout << "对称数";
25

以下代码执行后输出为2500。( )

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

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

26
编程操作题 25分

编程题 1:商店折扣

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

【题目描述】

商店开展促销活动,给出两种方案:第一种是满 x 元减 y 元(只能用一次);第二种是打 n 折(价格变为原价的 n/10)。

小明挑选了总价为 p 元的物品,结账时只能选一种方案。请问小明最少需要支付多少钱?

【输入格式】

四行,四个正整数 x, y, n, p。x表示满减门槛,y表示满减金额,n表示折扣(1≤n≤9),p表示原价。

【输出格式】

一行,一个实数,保留两位小数,表示最少支付的金额。

【样例输入1】

8
7
9
10

【样例输出1】

3.00

【样例输入2】

8
7
2
11

【样例输出2】

2.20

【数据范围】

1 ≤ x, y ≤ 10000,1 ≤ n ≤ 9,1 ≤ p ≤ 10000。

27
编程操作题 25分

编程题 2:数字替换

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

【题目描述】

小明不喜欢数字4,但觉得数字8寓意好。他想把一个整数中所有的数字4都替换成数字8。如果数中不含4则无需修改。

【输入格式】

一行,一个整数 N(可能很大,但不超过10⁹)。

【输出格式】

一行,替换后的整数。

【样例输入1】

8459045

【样例输出1】

8859085

【样例输入2】

123

【样例输出2】

123

【数据范围】

0 ≤ N ≤ 10⁹。

已答 0/27