5312:[GESP202506二级] 客观题
文件提交:无需freopen
内存限制:128 MB
时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:3
解决:0
题目描述
## 一、单选题(每题 2 分,共 30 分)
**第 1 题** $2025$ 年 $4$ 月 $19$ 日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。
- 处理器
- 存储器
- 输入设备
- 输出设备
**第 2 题** 小明购置的计算机使用一年后觉得内存不够用了,想购置一个容量更大的内存条,这时他需要的内存条是( )
- $RAM$
- $ROM$
- $CACHE$
- $EPROM$
**第 3 题** 下面 `C++` 代码执行后的输出是( )
```cpp
01 int a=3;
02 float b = 3.5;
03 cout << (a *= b);
```
- 3
- 3.5
- 10
- 11
**第 4 题** 下面 `C++` 代码用于获得正整数的第 $3$ 位数,如 $1234$ 则输出 $2$。如果是一位数或两位数,则输出 $0$。横线处应填
入的代码是( )
```cpp
01 int N, remainder;
02 cout << "请输入正整数:";
03 cin >> N;
04 cout << _________________;
```
- `N % 1000 / 100`
- `N / 1000 % 100`
- `N / 1000 / 100`
- `N % 100 / 100`
**第 5 题** 下面 `C++` 代码执行,其输出是( )
```cpp
01 int a, b = (6, 28);
02 b == a;
03 a = b;
04 cout << a << ' ' << b;
```
- `6 28`
- `6 6`
- `28 6`
- `28 28`
**第 6 题** 今天星期六,其后第 $N$ 天星期几?如果是星期一到星期六输出形如:星期 $1$、星期 $2$ 等,星期天则输出星期天。下面的 `C++` 代码用于完成上述要求,横线处应填上的代码是 ( )。
```cpp
01 int N, remainder;
02 cin >> N;
03 remainder = _____________;
04 if(remainder == 0)
05 printf("星期六后第%d天是星期天\n", N);
06 else
07 printf("星期六后第%d天是星期%d\n", N, remainder);
```
- $(N + 6) / 7$
- $(N + 6) // 7$
- $N \% 7$
- $(N + 6) \% 7$
**第 7 题** 下面的 `C++` 代码执行后其输出是 ( )
```cpp
01 int i, Sum = 0;
02 for (i = 1; i < 10; i++){
03 Sum += i;
04 if(i % 2) continue;
05 if(i % 7) break;
06 }
07 cout << Sum;
```
- $45$
- $28$
- $3$
- $0$
**第 8 题** 下面 `C++` 代码执行后其输出是( )
```cpp
01 int i, j;
02 for(i = 1; i < 12; i++)
03 for(j = 1; j < i; j++)
04 if(i * j % 2 == 1)
05 break;
06 cout << i * j;
```
- $110$
- $22$
- $12$
- $3$
**第 9 题** 下面 `C++` 代码执行后输出是( )
```cpp
01 int i, cnt = 0;
02 for(i = -99; i < 100; i += 2)
03 cnt = 1 + cnt;
04 cout << cnt;
```
- $101$
- $100$
- $99$
- $98$
**第 10 题** 下面 `C++` 代码执行后输出是( )
```cpp
01 int i;
02 for(i = 1; i < 10; i++){
03 if(i % 3 != 0){
04 printf("A#");
05 continue;
06 }
07 else
08 break;
09 printf("0#");
10 }
11 if(i == 10) cout << "1";
```
- `A#A#`
- `A#0#A#0`
- `A#A#1`
- `A#0#A#0#1`
**第 11 题** 下面 `C++` 代码执行后的输出是( )
```cpp
01 int i,j;
02 for(i = 0; i < 3; i++)
03 for(j = 0; j < i; j++)
04 printf("%d#%d-", i, j);
05 printf("END");
```
- `0#0-1#0-2#0-2#1-END`
- `0#0-1#0-1#1-2#0-2#1-2#2-3#0-3#1-3#2-END`
- `0#0-1#0-1#1-2#0-2#1-2#2-END`
- `1#0-2#0-2#1-END`
**第 12 题** 下面 `C++` 代码执行后,将输出不能被 $3$ 整除且除以 $5$ 余数为 $2$ 的数。下列选项不能实现的是 ( )
```cpp
01 int i,j;
02 for(i = 0; i < 100; i++)
03 if(______________________)
04 cout << i << endl;
```
- `(i % 3 != 0) && (i % 5 == 2)`
- `(i % 3) && (i % 5 == 2)`
- `(i % 3) && !(i % 5 != 2)`
- `!(i % 3) && (i % 5 == 2)`
**第 13 题** 下面 `C++` 代码用于判断一个大于 $0$ 的正整数是几位数,横线处应填入代码先后是 ( )
```cpp
01 int N, cnt;
02 cout << "请输入大于0的正整数:";
03 cin >> N;
04 cnt = 0;
05 while (_________){
06 cnt += 1;
07 ______________;
08 }
09 cout << cnt;
```
- ```cpp
01 N > 1
02 N = N / 10
```
- ```cpp
01 N > 1
02 N /= 10
```
- ```cpp
01 N == 0
02 N /= 10
```
- ```cpp
01 N > 0
02 N /= 10
```
**第 14 题** 判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如 $25$ 的平方是 $625$,其尾数是 $25$,所以 $25$ 是自守数。相关说法错误的是 ( )
```cpp
01 int N, N1, M1;
02 cout << "输入一个正整数:";
03 cin >> N;
04 N1 = N, M1 = N * N;
05
06 bool Flag = true;
07
08 while (N1 > 0){
09 if (N1 % 10 != M1 % 10){
10 Flag = false;
11 break;
12 }
13 else{
14 N1 = N1 / 10, M1 = M1 / 10;
15 }
16 }
17
18 if (Flag == true)
19 printf("%d的平方是%d,是自守数", N, N * N);
20 else
21 printf("%d的平方是%d,不是自守数", N, N * N);
```
- 如果 $Flag$ 在循环中不被改为 $false$,则说明该数是自守数。
- 代码 `if(N1 % 10 != M1 % 10)` 用于判断其个位数是否相等,如果不等,则表明不是自守数。
- 代码 `N1 = N1 / 10, M1 = M1 / 10` 将个位数去掉。
- 将 `N1 > 0` 改为 `N > 0` 效果相同。
**第 15 题** 下面 `C++` 代码实现输出如下图形,相关说法错误的是 ( )
```cpp
01 请输入层数: 10
02 0
03 12
04 345
05 6789
06 01234
07 567890
08 1234567
09 89012345
10 678901234
11 5678901234
```
```cpp
01 int line_number, now_number;
02 int i,row;
03
04 cout << "请输入行数: ";
05 cin >> line_number;
06 now_number = 0;
07
08 for (row = 1; row < line_number + 1; row++){ // L1
09 for (i = 0; i < row; i++){ // L2
10 cout << now_number;
11 now_number += 1;
12 if (now_number == 10) now_number = 0; // L3
13 }
14 cout << endl;
15 }
```
- 代码 `now_number = 0` 移动到 `L1` 和 `L2` 标记的两行代码之间,效果维持不变。
- 代码 `now_number += 1` 修改为 `now_number = 1 + now_number` 效果维持不变。
- 将代码 `now_number == 10` 调整为 `now_number > 9` 效果维持不变。
- 将最后一行的 `cout << endl` 修改为 `cout << "\n"`,效果维持不变。
**二、判断题(每题 $2$ 分,共 $20$ 分)**
**第 1 题** 人们现在参加很多闭卷考试时通常都不允许带智能手机、平板电脑等,此外很多种智能手表同样因为具有嵌入操作系统及通信等功能,所以也不允许随身携带。
- 正确
- 错误
**第 2 题** 在 `C++` 代码中,假设 $N$ 为正整数,则 `N/10` 舍弃个位数。如果 $N$ 小于$10$,则其值为 $0$,大于 $10$ 则是舍弃个位数的数。( )
- 正确
- 错误
**第 3 题** 下列 `C++` 代码执行后,其输出为 `10 20`,即 `a == b` 和 `b == a` 对 $a$ 和 $b$ 的值没有任何影响。
```cpp
01 int a = 10, b = 20;
02 a == b;
03 b == a;
04 cout << (a, b);
```
- 正确
- 错误
**第 4 题** $a$ 和 $b$ 分别是 `C++` 的整型变量,如果表达式 `max(a, b) == min(a, b)` 的值为真,则说明 $a$ 和 $b$ 相等。
- 正确
- 错误
**第 5 题** 下面 `C++` 代码编译时将报错,因为字符变量 $a$ 被赋值了浮点值。
```cpp
01 char a = '1';
02 a = 45.6;
03 cout << a;
```
- 正确
- 错误
**第 6 题** 下面 `C++` 代码执行时如输入 $59.99$,将输出 及格 两个汉字。
```cpp
01 int score;
02 cout << "请输入学生成绩: ";
03 cin >> score;
04 if (score < 60)
05 cout << "不及格";
06 else
07 cout << "及格";
```
- 正确
- 错误
**第 7 题** 在下面的 `C++` 代码中,因为 `continue` 将被执行,因此不会有输出。
```cpp
01 int i;
02 for (i = 1; i < 10; i++)
03 if (i % 2 == 0)
04 continue;
05 if(i == 10)
06 cout << "END";
```
- 正确
- 错误
**第 8 题** 下面的 `C++` 代码执行后将输出 $15$。
```cpp
01 int Sum = 0;
02 for(int i = 0; i < 5; i++)
03 Sum += i;
04 cout << Sum;
```
- 正确
- 错误
**第 9 题** 将下面 `C++` 代码中的 `(int i = 5; i > 1; i--)` 调整为 `(int i = 1; i < 5; i++)` 输出结果相同,因为 $5$ 到 $1$ 与 $1$ 到 $5$ 的求和相同。
```cpp
01 int tnt;
02 tnt = 0;
03 for (int i = 5; i > 1; i--)
04 tnt += i;
05 cout << tnt;
06 cout << endl;
```
- 正确
- 错误
**第 10 题** 为实现如下效果,即N行N列字符。当输入是奇数时,中间列为 `*`,其他是 `-`;当输入是偶数时,则中间两列是 `*`,其他是 `-`。字符阵列后的代码能实现其效果。
```
/*
5
--*--
--*--
--*--
--*--
--*--
*/
```
```cpp
01 int N;
02 cin >> N;
03
04 int i, j;
05 for(i = 0; i < N; i++) {
06 for(j = 0; j < N; j++)
07 if((j == N/2) || (j == (N-1)/2))
08 cout << "*";
09 else
10 cout << "-";
11 cout << endl;
12 }
```
- 正确
- 错误