#Z0003. C++阶段测试(第 20 节 ~ 第 26 节)
C++阶段测试(第 20 节 ~ 第 26 节)
C++ 阶段测试(第 20 节 ~ 第 26 节)
共 40 题,全部为单项选择题,每题 2.5 分,满分 100 分。建议用时 45 分钟。
第 1 题
1.阅读下面的程序片段,执行后输出的结果是( )。
int s = 0;
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue;
s += i;
}
cout << s;
{{ select(1) }}
- 20
- 25
- 30
- 55
第 2 题
2.阅读下面的程序片段,执行后输出的结果是( )。
int cnt = 0;
for (int i = 1; i <= 100; i++)
if (i % 3 == 0 && i % 5 == 0) cnt++;
cout << cnt;
{{ select(2) }}
- 6
- 5
- 7
- 33
第 3 题
3.阅读下面的程序片段,关于输出结果描述正确的是( )。
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= i; j++) cout << "*";
cout << endl;
}
{{ select(3) }}
- 输出 1 行,共 4 个星号
- 输出 4 行,每行星号个数依次为 4、3、2、1
- 输出 4 行,每行星号个数依次为 1、2、3、4
- 输出 4 行,每行都是 4 个星号
第 4 题
4.阅读下面的程序片段,执行后输出的结果是( )。
int a = 0;
for (int i = 1; i <= 5; i++)
for (int j = 1; j <= i; j++)
a++;
cout << a;
{{ select(4) }}
- 15
- 10
- 25
- 5
第 5 题
5.阅读下面的程序片段,执行后输出的结果是( )。
int cnt = 0;
for (int y = 1900; y <= 2000; y++)
if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) cnt++;
cout << cnt;
{{ select(5) }}
- 23
- 24
- 26
- 25
第 6 题
6.阅读下面的程序片段,执行后输出的结果是( )。
int s = 0;
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= 5; j++) {
if (i * j > 6) break;
s += i * j;
}
}
cout << s;
{{ select(6) }}
- 45
- 42
- 48
- 55
第 7 题
7.下列四段程序中,会出现死循环的是( )。 {{ select(7) }}
int i = 1; while (i <= 5) { cout << i; i++; }int i = 5; while (i > 0) { i--; }int i = 1; while (i <= 5) { i++; }int i = 1; while (i <= 5) { cout << i; }
第 8 题
8.阅读下面的程序片段,执行后输出的结果是( )。
int i = 1, s = 0;
while (i <= 10) {
s += i;
i += 2;
}
cout << s;
{{ select(8) }}
- 25
- 20
- 30
- 55
第 9 题
9.阅读下面的程序片段,执行后输出的结果是( )。
int n = 100, cnt = 0;
while (n > 0) {
n = n / 2;
cnt++;
}
cout << cnt;
{{ select(9) }}
- 6
- 8
- 50
- 7
第 10 题
10.阅读下面的程序片段,执行后输出的结果是( )。
int i = 10;
while (i > 0) i -= 3;
cout << i;
{{ select(10) }}
- 1
- 0
- -1
- -2
第 11 题
11.阅读下面的程序片段,执行后输出的结果是( )。
int i = 0, s = 0;
while (true) {
i++;
if (i % 3 == 0) continue;
if (i > 8) break;
s += i;
}
cout << s;
{{ select(11) }}
- 36
- 30
- 27
- 19
第 12 题
12.关于 while 循环,下列说法正确的是( )。 {{ select(12) }}
- while 循环的循环体至少会被执行一次
- while(1) 一定会一直执行下去,无法用 break 跳出
- while 循环必须和 for 语句配合使用
- while 循环先判断条件,条件为真时才执行循环体
第 13 题
13.24 和 36 的最大公约数是( )。 {{ select(13) }}
- 12
- 6
- 24
- 72
第 14 题
14.12 和 18 的最小公倍数是( )。 {{ select(14) }}
- 6
- 54
- 216
- 36
第 15 题
15.阅读下面的程序片段,执行后输出的结果是( )。
int a = 56, b = 42;
while (b != 0) {
int t = a % b;
a = b;
b = t;
}
cout << a;
{{ select(15) }}
- 7
- 21
- 14
- 42
第 16 题
16.阅读下面的程序片段,执行后输出的结果是( )。
int a = 8, b = 12, g = 1;
for (int i = 1; i <= a && i <= b; i++)
if (a % i == 0 && b % i == 0) g = i;
cout << a / g * b;
{{ select(16) }}
- 4
- 48
- 24
- 96
第 17 题
17.已知两个正整数的最大公约数是 6,最小公倍数是 36,那么这两个数的乘积是( )。 {{ select(17) }}
- 216
- 42
- 108
- 6
第 18 题
18.阅读下面的程序片段,执行后输出的结果是( )。
int a = 36, b = 24;
while (a != b) {
if (a > b) a = a - b;
else b = b - a;
}
cout << a;
{{ select(18) }}
- 12
- 24
- 6
- 36
第 19 题
19.阅读下面的程序片段,执行后输出的结果是( )。
int n = 2025, s = 0;
while (n > 0) {
s += n % 10;
n /= 10;
}
cout << s;
{{ select(19) }}
- 9
- 7
- 11
- 2025
第 20 题
20.阅读下面的程序片段,执行后输出的结果是( )。
int n = 987654, cnt = 0;
while (n > 0) {
cnt++;
n /= 10;
}
cout << cnt;
{{ select(20) }}
- 5
- 6
- 7
- 9
第 21 题
21.阅读下面的程序片段,执行后输出的结果是( )。
int n = 1204, cnt = 0;
while (n > 0) {
if ((n % 10) % 2 == 1) cnt++;
n /= 10;
}
cout << cnt;
{{ select(21) }}
- 4
- 2
- 0
- 1
第 22 题
22.阅读下面的程序片段,执行后输出的结果是( )。
int s = 0, i = 1;
while (s < 50) {
s += i;
i++;
}
cout << s << " " << i;
{{ select(22) }}
- 50 10
- 55 10
- 55 11
- 45 10
第 23 题
23.阅读下面的程序片段,执行后输出的结果是( )。
int n = 91, i = 2;
while (i * i <= n) {
if (n % i == 0) break;
i++;
}
if (i * i > n) cout << "prime";
else cout << "no";
{{ select(23) }}
- prime
- no
- 91
- 没有任何输出
第 24 题
24.阅读下面的程序片段,执行后输出的结果是( )。
long long f = 1;
int i = 1;
while (i <= 10) {
f *= i;
i++;
}
cout << f;
{{ select(24) }}
- 1024
- 362880
- 3628800
- 39916800
第 25 题
25.常量 3.5e3 的值是( )。 {{ select(25) }}
- 350
- 35
- 35000
- 3500
第 26 题
26.常量 2e-3 的值是( )。 {{ select(26) }}
- 0.0002
- 0.002
- 200
- 2000
第 27 题
27.下列写法中,属于合法的科学计数法常量的是( )。 {{ select(27) }}
- 1.5*10^5
- 1.5e
- e5
- 1.5e5
第 28 题
28.阅读下面的程序片段,执行后输出的结果是( )。
int i = 5;
do {
cout << i << " ";
i++;
} while (i < 3);
{{ select(28) }}
- 5
- 什么都不输出
- 5 6
- 死循环,不停输出
第 29 题
29.阅读下面的程序片段,执行后输出的结果是( )。
int i = 0, s = 0;
do {
i += 2;
s += i;
} while (i < 7);
cout << s;
{{ select(29) }}
- 12
- 2
- 20
- 30
第 30 题
30.关于 do-while 循环,下列说法正确的是( )。 {{ select(30) }}
- do-while 先执行一次循环体再判断条件,循环体至少执行一次
- while 循环的循环体至少会被执行一次
- do-while 与 while 在任何情况下都完全等价
- do-while 的条件为假时,循环体会一直执行下去
第 31 题
31.阅读下面的程序片段,执行后输出的结果是( )。
int n = 12345;
while (n > 0) {
cout << n % 10;
n /= 10;
}
{{ select(31) }}
- 12345
- 54321
- 1234
- 5432
第 32 题
32.阅读下面的程序片段,执行后输出的结果是( )。
int n = 1200, r = 0;
while (n > 0) {
r = r * 10 + n % 10;
n /= 10;
}
cout << r;
{{ select(32) }}
- 2100
- 21
- 0021
- 12
第 33 题
33.阅读下面的程序片段,执行后输出的结果是( )。
double d = 3.99;
int x = d;
cout << x;
{{ select(33) }}
- 4
- 3
- 3.99
- 0
第 34 题
34.阅读下面的程序片段,执行后输出的结果是( )。
double d = 5.67;
int x = (int)(d + 0.5);
cout << x;
{{ select(34) }}
- 5
- 5.67
- 6
- 7
第 35 题
35.阅读下面的程序片段,执行后输出的结果是( )。
double x = 12.3456;
int a = (int)x;
int b = (int)(x * 100) % 100;
cout << a << " " << b;
{{ select(35) }}
- 12 35
- 12 34
- 12 3456
- 1234 56
第 36 题
36.对于整数 n,反复执行操作:n 是偶数就除以 2,n 是奇数就乘 3 再加 1,直到 n 变成 1 为止。阅读下面的程序片段,当 n 的初值为 10 时,输出的结果是( )。
int n = 10, cnt = 0;
while (n != 1) {
if (n % 2 == 0) n = n / 2;
else n = n * 3 + 1;
cnt++;
}
cout << cnt;
{{ select(36) }}
- 5
- 7
- 6
- 10
第 37 题
37.一口井深 10 米,一只蜗牛从井底往上爬,白天爬 3 米,晚上下滑 1 米。若从第 1 天白天开始计算,蜗牛第几天能爬出井口( )。 {{ select(37) }}
- 4
- 5
- 6
- 10
第 38 题
38.小明第 1 天存 1 元,第 2 天存 2 元,……第 n 天存 n 元。阅读下面的程序片段,输出结果是( )。
int s = 0, d = 0;
while (s <= 100) {
d++;
s += d;
}
cout << d << " " << s;
{{ select(38) }}
- 13 91
- 13 105
- 14 100
- 14 105
第 39 题
39.某种细胞每过 1 分钟就由 1 个分裂成 2 个,开始时瓶中有 1 个细胞。阅读下面的程序片段,输出的结果是( )。
int n = 1, m = 0;
while (n <= 1000) {
n *= 2;
m++;
}
cout << m;
{{ select(39) }}
- 9
- 11
- 10
- 12
第 40 题
40.关于“模拟算法”,下列理解正确的是( )。 {{ select(40) }}
- 用数学公式一步算出结果,不需要使用循环
- 按照题目描述的过程一步一步执行,用程序把整个过程重现出来
- 只能用于解决纯数字计算类的问题
- 必须使用递归函数才能实现