GESP模拟一级
发布时间:
一. 单选题(每题 2 分,共 30 分)
-
以下选项中,不符合 C++ 变量命名规则的是( )?
A.
Luogu
B.cCfGEsp
C.Simu1ati0n
D.Test!
-
C++ 表达式
4 + 3 * 7 % 10 - 1
的结果是A. 2
B. 4
C. 6
D. 8 -
C++ 语言中,若定义
int a = 2, b = 4, c = 7;
,则下列选项中表达式为真的是?( )A.
a + b >= c
B.a < b && c < b
C.a > b || a + b < c
D.b - a > c - b
-
下列 C++ 代码用于单位换算,处理将小时(hr)和分钟(mn)转为秒(sec)的过程。则横线处应当填写的代码为( )?
int hr, mn; cin >> hr >> mn; ________; cout << sec << endl;
A.
sec = hr * 3600 + mn * 60
B.sec = hr + mn * 3600
C.int sec = hr * 3600 + mn * 60
D.int sec = hr * 60 + mn * 60
-
下列 C++ 代码执行后的输出是( ):
int x = 7; printf("=%d%%",x + 3);
A.
=7
B.=7%%
C.=10%
D.=10%%
-
定义三个
int
类型的变量a,b,c
,下列 C++ 语句中,不符合 C++ 语法的选项是( )?A.
a = b = c;
B.c = (a = 3, b = 4 + a);
C.b %= 1.5;
D.a /= ((b = 4) - (c = 3));
-
下列 C++ 代码被执行时,对于任意输入的正整数 n,永远不会出现的输出结果是( )?
int n; cin >> n; if (n % 6 == 0) cout << "Divided by 6." << endl; else if (n % 8 == 0) cout << "Divided by 8." << endl; else if (n % 24 == 0) cout << "Divided by 24." << endl; else cout << "Error." << endl;
A.
Divided by 6.
B.Divided by 8.
C.Divided by 24.
D.Error.
-
小洛编写了一个程序,用于练习加法。他的程序能根据小洛输入的两个正整数 a 和 b,输出 a+b 的结果。小洛需要输入五组 a 和 b 程序才会退出。他的程序如下所示。对于该代码,错误的说法是( )?
for (int i = 1; i < 5; i++) { int a, b; cin >> a >> b; cout << a + b << endl; } cout << "Finish!" << endl;
A. 若输入的 a 为 25,b 为
40
,则输出的结果为65
。
B. 当程序输出Finish!
后,无法继续读入新的a
和b
。
C. 该代码中存在错误,会使得小洛实际只能输入4
组a
和b
。
D. 若小洛输入的a
和b
非常大(比如 15 位),该程序依然满足小洛的需求,可以正确计算a+b
的结果。 -
下列 C++ 代码执行后的输出是( )?
int ans = 0; for (int i = 1; i <= 20; i++) { ans += i; i += 2; } cout << ans << endl;
A. 20
B. 70
C. 100
D. 210 -
下列 C++ 代码执行后的输出是( )?
int n = 19, ans = 0; while (n) { if (n % 7 == 0) break; ans += n / 7; n -= 2; } cout << ans << endl;
A. 1
B. 3
C. 5
D. 9 -
下列 C++ 代码执行后的输出是( )?
int k = 5307; for (; k; k /= 10) cout << k % 10;
A. 7
B. 7035
C. 530535
D. 703707 -
下列 C++ 代码用于计算两个正整数
a
与b
的最小公倍数。两个正整数a
和b
的最小公倍数的含义是最小的能够被 a 和b
同时整除的正整数,例如4
和6
的最小公倍数是12
。为正确计算出最小公倍数,横线上应当填写的代码为( )?int a, b; cin >> a >> b; for (int i = a;; i++) { if (________) { cout << i << endl; break; } }
A.
i % a == 0 || i % b == 0
B.a % i == 0 || b % i == 0
C.i % a == 0 && i % b == 0
D.a % i == 0 && b % i == 0
-
下列 C++ 代码的输出结果是( )
int x = 57; switch (x % 5) { case 1: cout << "A"; case 2: cout << "B"; case 3: cout << "C"; case 4: cout << "D"; default: cout << "E"; }
A.
B
B.BCDE
C.BCD
D.ABCDE
-
以下是某手机的推销宣传广告中展示的各项参数。该手机宣传中,最不合理的一项是( )?
选项 参数 详细数据 A 处理器 骁龙8 Gen3 B 屏幕分辨率 2400 x 1080
C RAM 16
GBD ROM 512
GB -
小洛在使用 Dev-Cpp,若需要新建一个 C/C++ 文件,他可以通过哪个快捷键完成这项操作( )?
A. Ctrl+N
B. Ctrl+V
C. Ctrl+Z
D. Ctrl+O
## 二. 判断题(每题 2 分,共 20 分)
1、小洛编写的程序陷入了死循环,他可以通过快捷键 Ctrl+C 终止他的程序。
2、 ENIAC 是世界上第一台计算机,其在设计时采用了集成电路作为主要元器件。
3、 在 C++ 语言中,若变量 n
被赋值为 345
,则 cout << n / 10 % 10;
的结果为 4
。
4、 在 C++ 语言中,注释可以使用 //
书写,也可以使用成对的 /* */
书写。
5、 在 C++ 语言中,do while 循环内的语句至少会执行一次。
6、 在 C++ 语言中,可以定义一个名叫 for
的变量名。
7、在 C++ 语言中,代码段 d = (a > b ? a : b);
可以让 d 赋值为 a 和 b 中的较大值。
8、 在 C++ 语言中,执行代码 a = (b *= 3, c = 4 + 3);
后,变量 a 的值为 7。
9、在 C++ 语言中,在循环体内只要有 break
语句,该循环就必然不可能是死循环。
10、 Linux 作为一种操作系统,可以全面管理协调计算机硬件和软件资源。
三 编程题(每题 25 分,共 50 分)
1、 小洛的幸运数字
题目描述
小洛得到了 n 个整数,他认为,“个位数是 3,或者是 3 的倍数的整数”是不好的,应当被排除。
请编写一个程序,将不好的数字排除掉后,计算剩余数字的总和,以及剩下的数字数量。
输入格式
- 第一行包含一个整数 n ( 1 ≤ n ≤1000)。
- 第二行包含 n 个整数 a1, a2, …, an(每个整数 0≤a i ≤10^4)。
输出格式
输出两个整数,用空格隔开。第一个整数表示这些数字中个位数不是 3 ,且不是 3 的倍数的数字的总和,第二个整数表示这些数字的个数。
样例 1
样例输入 1
5
12 23 35 47 50
样例输出 1
132 3
提示
输入的 5 个数字分别是 12, 23, 35, 47, 50 。
其中 23 的个位数是 3,12 是 3 的倍数,所以这两个数不符合条件。
2、明日复明日
题目描述
给定一个日期,要求输出它的后一天的日期。假设今年不是闰年。
输入包括两个整数,分别表示月份和日期。你需要编写一个程序来计算并输出这个日期的后一天。如果输入的日期是年末的最后一天(12 月 31 日),则需要输出下一年的 1 月 1 日。
输入格式
输入只有一行,包括两个整数,分别表示月份 M 和日期 D 。
- M 是一个整数,表示月份(1≤ M ≤ 12)。
- D 是一个整数,表示日期(1 ≤ D ≤ 31,且不大于当月的最大天数)。
输出格式
输出一行,包含两个整数,分别表示后一天的月份和日期。
样例
样例输入
3 14
样例输出
3 15
样例 2
样例输入 2
4 30
样例输出 2
5 1
样例 3
样例输入 3
12 31
样例输出 3
1 1
提示
-
每个月份的天数如下:
- 1 月:31 天
- 2 月:28 天(不考虑闰年)
- 3 月:31 天
- 4 月:30 天
- 5 月:31 天
- 6 月:30 天
- 7 月:31 天
- 8 月:31 天
- 9 月:30 天
- 10 月:31 天
- 11 月:30 天
- 12 月:31 天
-
输入保证为有效的日期,不需要进行日期有效性的验证。
例子解释
对于输入样例 1,3 月 14 日的后一天是 3 月 15 日。
对于输入样例 2,4 月 30 日的后一天是 5 月 1 日。
对于输入样例 3,12 月 31 日的后一天是下一年的 1 月 1 日。