5617:[GESP202609二级] 客观题
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:0
解决:0
题目描述
## 一、单选题(每题 2 分,共 30 分)
**第 1 题** 第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境($IDE$)编写并调试方阵的控制程序。下列关于 $IDE$ 功能的描述,错误的是( )
- 可以提供代码自动补全,提高编程效率
- 可以提供辅助信息,帮助排查程序逻辑错误
- 可以直接控制机器人电机转动
- 支持语法高亮,使代码更易阅读
**第 2 题** 计算机 $CPU$ 中的高速缓冲存储器($Cache$)主要为提升系统性能而设计。下列关于 $Cache$ 的说法中正确的是( )
- $Cache$ 的容量比主存大,速度比主存快
- $Cache$ 通常用于暂存 $CPU$ 频繁访问的数据
- $Cache$ 中的数据断电后不会丢失,属于非易失性存储器
- $Cache$ 的访问速度比 $CPU$ 寄存器还要快
**第 3 题** 执行如下 `C++` 代码,其输出是( )
```cpp
01 cout << (3 == 3.0);
```
- $1$
- $1.0$
- $0$
- $-1$
**第 4 题** 执行如下 `C++` 代码,其输出是( )
```cpp
01 cout << (bool(5) + bool(-5) + bool(5.0));
```
- $0$
- $1$
- $2$
- $3$
**第 5 题** 判断年份 $N$ 是否为闰年的规则是:能被 $4$ 整除但不能被 $100$ 整除,或者能被 $400$ 整除。以下 `C++` 表达式中,能正确判断 $N$ 是否为闰年的是( )
- `(N % 4 == 0 && N % 100 != 0) || (N % 400 == 0)`
- `N % 4 == 0 && N % 100 == 0 || N % 400 == 0`
- `(N / 4 == 0 && N / 100 != 0) || (N / 400 == 0)`
- `(N % 4 == 0 && N % 100 != 0) && (N % 400 == 0)`
**第 6 题** 执行如下 `C++` 代码,其输出是( )
```cpp
01 int tot, i;
02 tot = 0;
03 for (i = 0; i < 10; i++)
04 if (i)
05 tot += 1;
06 cout << tot;
```
- $0$
- $8$
- $9$
- $10$
**第 7 题** 执行如下 `C++` 代码,当输入 $4$ 时,其输出是( )
```cpp
01 int n, tot, i, j;
02 cin >> n;
03 tot = 0;
04 for (i = 1; i < n; i++)
05 for (j = 1; j < i; j++)
06 tot += 1;
07 cout << tot;
```
- $1$
- $3$
- $6$
- $10$
**第 8 题** 下面的 `C++` 代码执行后其输出是( )
```cpp
01 int tnt, i;
02 tnt = 0;
03 for (i = 0; i < 10; i++)
04 if (i % 3)
05 tnt += i;
06 cout << tnt;
```
- $12$
- $18$
- $22$
- $27$
**第 9 题** 下面的 `C++` 代码之后的输出是( )
```cpp
01 int tot = 0, i;
02 for (i = -5; i < 5; i++)
03 if (not(i % 3 != 0))
04 tot += 1;
05 cout << tot;
```
- $2$
- $3$
- $7$
- $9$
**第 10 题** 有关如下 `C++` 代码描述,变量都是整型,错误的是( )
```cpp
01 int n, limit, i;
02 cout << "请输入一个正整数: ";
03 cin >> n;
04 if (n <= 1)
05 printf("%d非素数", n);
06 else if (n == 2)
07 printf("2是素数");
08 else {
09 limit = sqrt(n) + 1;
10 for (i = 2; i < limit; i++)
11 if (n % i == 0) {
12 printf("%d非素数", n);
13 break;
14 }
15 if (i >= limit)
16 printf("%d是素数", n);
17 }
```
- `n <= 1` 条件用于判断输入 $0$ 、$1$ 以及负数时的情况,不能省略。
- `n == 2` 条件及其相关代码省略,程序的输出结果没有区别。
- `break` 语句不可以省略,否则非素数还将执行最后一行的语句。
- `limit = sqrt(n) + 1` 语句中的 $1$ 可以修改为其他大于等于 $1$ 的正整数,执行结果不会有错误,但循环次数增多,效率有所影响。
**第 11 题** 执行以下 `C++` 代码后,最终的输出结果是( )
```cpp
01 int total, i, j;
02 total = 0;
03 i = 1;
04 while (i <= 3) {
05 for (j = 1; j < i + 1; j++)
06 total += i * j;
07 i += 1;
08 }
09 cout << total;
```
- $9$
- $11$
- $23$
- $25$
**第 12 题** 下面 `C++` 代码执行后其输出是( )
```cpp
01 int count, i, j;
02 count = 0;
03 for (i = 1; i < 4; i++)
04 for (j = 0; j < i; j++) {
05 if (j % 3 == 0)
06 continue;
07 count += 1;
08 if (i * j >= 2)
09 break;
10 }
11 printf("%d %d %d", i, j, count);
```
- `2 3 2`
- `3 0 2`
- `4 1 2`
- `4 2 3`
**第 13 题** 如下的 `C++` 代码执行时输入 $12$ 将输出如下数字图形。注意:最后一行之前没有空格。横线处应填入的代码是( )
```text
0
12
345
6789
01234
567890
1234567
89012345
678901234
5678901234
56789012345
678901234567
```
```cpp
01 int line, i, j, k;
02
03 i = 0;
04 cout << "请输入行数:";
05 cin >> line;
06 for (j = 0; j < line; j++) {
07 for (k = 0; k < ___________; k++) // L1
08 cout << " ";
09 for (k = 0; k < j + 1; k++) {
10 cout << i;
11 i += 1;
12 if (i >= 10)
13 i = 0;
14 }
15 cout << endl;
16 }
```
- `line - j - 1`
- `line - j`
- `line`
- `line + 1`
**第 14 题** 小北的身高是 $1.65$ 米。班上有 $n$ 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是( )
```cpp
01 int n, i;
02 float target, h, best_height, min_diff, diff;
03
04 cout << "请输入小朋友的人数: ";
05 cin >> n;
06 target = 1.65;
07 best_height = 0.0;
08 min_diff = 100.0;
09
10 for (i = 0; i < n; i++) {
11 cout << "请输入第 " << i << " 个小朋友的身高: ";
12 cin >> h;
13 diff = abs(h - target);
14
15 if (____________________) { // L1
16 min_diff = diff;
17 best_height = h;
18 }
19 }
20 cout << "小北的朋友身高为: " << best_height;
```
- `diff < min_diff || (diff == min_diff && h < best_height)`
- `diff <= min_diff && h < best_height`
- `diff < min_diff && h < best_height`
- `diff < min_diff || h < best_height`
**第 15 题** 小北的身高是 $1.65$ 米。班上有 $n$ 个小朋友,小北想和身高最接近自己的人交朋友。如果有多个小朋友与小北的身高差相同,小北想和其中身高较矮的第一个小朋友做朋友。横线处应该填入的是( )
```cpp
01 int n, i;
02 float target, h, best_height, min_diff, diff;
03
04 cout << "请输入小朋友的人数: ";
05 cin >> n;
06 target = 1.65;
07 best_height = 0.0;
08 min_diff = 100.0;
09
10 for (i = 0; i < n; i++) {
11 cout << "请输入第 " << (i + 1) << " 个小朋友的身高: ";
12 cin >> h;
13
14 if (h > target)
15 diff = h - target;
16 else
17 diff = target - h;
18
19 if (diff < min_diff) {
20 min_diff = diff;
21 best_height = h;
22 } else if (diff == min_diff) {
23 ----------------
24 ----------------
25 }
26 }
27
28 cout << "小北的朋友身高为:" << best_height;
```
- ```cpp
01 if (h < best_height)
02 best_height = h;
```
- ```cpp
01 if (h > best_height)
02 best_height = h;
```
- ```cpp
01 if (h > target)
02 best_height = h;
```
- ```cpp
01 if (h >= best_height)
02 best_height = h;
```
## 二、判断题(每题 2 分,共 20 分)
**第 1 题** `C++` 程序执行 `cin` 或 `scanf` 语句时通常是使用键盘等输入设备来输入某个变量的值。
- 正确
- 错误
**第 2 题** 执行 `C++` 语句 `cout << ( 5 && 2 )`; 将输出 $1$。
- 正确
- 错误
**第 3 题** `C++` 表达式 `2 * - '2' / 4` 的值是 $-1$。
- 正确
- 错误
**第 4 题** 如下 `C++` 代码执行后的输出是 $10$。
```cpp
01 int a;
02 a = 5;
03 a == +5;
04 cout << a;
```
- 正确
- 错误
**第 5 题** 执行 `C++` 代码 `cout << (not not 5)` 将输出 $5$。
- 正确
- 错误
**第 6 题** 下面 `C++` 代码执行后将输出 $369$。
```cpp
01 for (int i = 1; i < 10; i++)
02 if (not(i % 3))
03 cout << i;
```
- 正确
- 错误
**第 7 题** $N$ 是整数,执行如下 `C++` 代码,将能输出 $0$ 到 $N$ 之间(包含 $N$)所有数之和。
```cpp
01 int N, tot, i;
02 cin >> N;
03 tot = 0;
04 for (i = 0; i < N + 1; i++)
05 tot += i;
06 cout << tot;
```
- 正确
- 错误
**第 8 题** 如下 `C++` 代码执行后,输出值为 $0$。
```cpp
01 int cnt, i, j;
02 cnt = 0;
03 for (i = 0; i < 10; i++) {
04 continue;
05 for (j = 0; j < i; j++)
06 cnt += 1;
07 }
08 cout << i * cnt;
```
- 正确
- 错误
**第 9 题** 求解鸡兔同笼。在如下 `C++` 代码中,`tou` 代表鸡和兔的头总数,`jiao` 代表鸡和兔的脚总数。先后两个输入均为正整数。该程序能求解鸡兔同笼。
```cpp
01 int tou, jiao, tu_tou, ji_tou;
02
03 cout << "请输入鸡和兔的头总数:";
04 cin >> tou;
05 cout << "请输入鸡和兔的脚总数:";
06 cin >> jiao;
07
08 for (tu_tou = 0; tu_tou < tou + 1; tu_tou++) {
09 ji_tou = tou - tu_tou;
10 if (tu_tou * 4 + ji_tou * 2 == jiao)
11 printf("兔的数量=%d,鸡的数量=%d\n", tu_tou, ji_tou);
12 }
13 if (tu_tou == tou)
14 printf("无解\n");
```
- 正确
- 错误
**第 10 题** 如果 $N$ 和 $M$ 均为整数,下列 `C++` 代码则可以判断正整数 $N$ 是 $M$ 的平方。比如 $9$ 是 $3$ 的平方。
```cpp
01 int N, M;
02
03 cout << "请输入正整数N:";
04 cin >> N;
05 cout << "请输入整数M:";
06 cin >> M;
07
08 if (int(sqrt(N)) == abs(M))
09 printf("%d是%d的平方\n", N, M);
```
- 正确
- 错误