5296:[GESP202603二级] 客观题

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:文本裁判
金币值:
命题人:
提交:246 解决:0

题目描述

## 一、单选题(每题 2 分,共 30 分) **第 1 题** $2026$ 年春节联欢晚会上一个武术表演节目《武 $BOT$》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备 ( ) - 检测重心的重力传感器 - 预装的 $AI$ 算法程序 - 接收动作指令的遥控器 - 拍摄其他机器人的摄像头 **第 2 题** 下面代码用来找出输入的 $N$ 个正整数中最大的一个。如果将代码段用流程图来表示,则 `L1` 标记的代码行应 该使用的图形是 ( ) ```cpp 01 int N, max=0, val; 02 cin >> N; 03 04 while(N){ 05 cin >> val; 06 if(val > max) // L1 07 max = val; 08 N--; 09 } 10 11 cout << max; ``` - 圆形框 - 椭圆形框 - 平行四边形框 - 菱形框 **第 3 题** 下面 `C++` 代码可以执行,有关说法正确的是 ( ) ```cpp 01 double PI = 3.1415926; 02 cout << (PI); ``` - 为了方便初学者,`cout<(PI)` 和`cout<<(pi)` 效果相同,即变量的大小写不敏感 - `cout<<(PI)` 修改为 `cout<<(Pi)` 能正常执行 - 不能用 $PI$ 做变量名,因为要保存圆周率这个常量 - 将程序中全部 $PI$ 都改写为 $Pai$,将能正常执行,不会报错 **第 4 题** 下面选择项中,与 `C++` 表达式 `!(x>5 &&y<=10)` 等价的是 ( ) - `x <= 5 && y > 10` - `x > 5 || y <= 10` - `x <= 5 || y > 10` - `!x > 5 && !y <= 10` **第 5 题** 某同学执行 `C++` 代码`cout<<((0.1+0.2)==0.3)` 时输出 $0$,下面最可能的原因是 ( ) - `C++` 的 `+` 运算符在处理小数时存在`bug` - `0.1`、`0.2` 和 `0.3` 在计算机中无法用二进制浮点数精确表示,导致 `0.1+0.2` 的结果与 `0.3` 存在微小误差 - `==` 运算符不能用于比较浮点数,只能用于整数 - 因为 `0.1+0.2` 的数学结果不等于 `0.3` **第 6 题** 下面的 `C++` 代码段执行后其输出是 ( ) ```cpp 01 tnt = 0; 02 for (int i = 0; i < 5; i++){ 03 for (int j = 0; j < i; j++) 04 tnt += 1; 05 cout << tnt << "#"; 06 } 07 cout << tnt; ``` - `0#1#3#6#10#10` - `1#2#3#4#5#6#7#8#9#10#10` - `10#10` - `10` **第 7 题** 下面的 `C++` 代码执行之后的输出是 ( ) ```cpp 01 for ( int i = -2; i < 2; i++) 02 if (not i % 3) 03 cout << i << "#"; ``` - `0#` - `-2#-1#1#` - `-1#0#` - `-2#0#1#` **第 8 题** 下面的 `C++` 代码执行后其输出是 ( ) ```cpp 01 int cnt = 0, i, j; 02 for (i =1; i < 5; i++){ 03 for (j =0; j < i; j++) 04 cout << j << "#"; 05 break; 06 } 07 if(i >= 5) 08 cout << (i*j); ``` - `0#0#1#0#1#2#0#1#2#3#12` - `0#0#1#0#1#2#0#1#2#3#` - `0#` - `1#` **第 9 题** 下面 `C++` 代码执行后其输出是 ( ) ```cpp 01 int count = 0; 02 for (int i = 1; i < 4; i++) 03 for (int j = 1; j < 5; j++){ 04 if (j == 3) 05 continue; 06 if (i == 2) 07 break; 08 count += 1; 09 } 10 cout << (count); ``` - $2$ - $4$ - $6$ - $8$ **第 10 题** 下面 $4$ 个选项中,与下面`C++` 代码段具有相同效果的是 ( ) ```cpp 01 i = 0; 02 while (i < 5){ 03 cout << i; 04 i += 1; 05 } ``` - ```cpp 01 for (i = 0; i < 5; i++) 02 cout << i; ``` - ```cpp 01 for (i = 1; i < 5; i++) 02 cout << i; ``` - ```cpp 01 for (i = 0; i < 6; i++) 02 cout << i; ``` - ```cpp 01 for (i = 1; i < 6; i++) 02 cout << i; ``` **第 11 题** 下面 `C++` 代码执行后输出是 ( ) ```cpp 01 int n = 10; 02 while (n > 0){ 03 n -= 1; 04 if (n % 3 == 0) 05 continue; 06 if (n == 5) 07 break; 08 } 09 cout << n; ``` - $0$ - $5$ - $6$ - $7$ **第 12 题** 下面 `C++` 代码段执行后,其输出是 ( ) ```cpp 01 int i, j, cnt; 02 cnt = 0; 03 for (i = 0; i < 5; i++){ 04 i = -i; 05 for (j = i; j < -i; j++) 06 cnt += 1; 07 i = -i; 08 } 09 cout << cnt; ``` - $5$ - $15$ - $20$ - $30$ **第 13 题** 某学校图书馆的借阅卡号由 $6$ 位整数组成。前 $5$ 位是顺序编号,第$6$ 位是校验码,用于防止输错。校验码规则如下:将前 $5$ 位数字相加,然后除以 $10$ 的余数,就是第 $6$ 位数字。如卡号$123455$ 的前 $5$ 位之和为 $15$,除以$10$ 的余数是 $5$,故第 $6$ 位为 $5$。下面的 `C++` 代码段用于判断卡号是否正确,横线处应填入的代码是 ( ) ```cpp 01 cout << "请输入卡号:"; 02 cin >> N; 03 order_num = N / 10; // 获得前5位顺序号,假设录入一定为6位正整数 04 check_num = N % 10; // 获得最后一位 05 06 tnt = 0; // 保存前5位之和 07 for (i = 0; i < 5; i++){ 08 ________________; 09 order_num /= 10; 10 } 11 12 if (__________________) 13 cout << "符合校验规则"; 14 else 15 cout << "不符合校验规则"; ``` - ```cpp 01 tnt += order_num / 10 02 tnt / 10 == check_num ``` - ```cpp 01 tnt += order_num % 10 02 tnt % 10 == check_num ``` - ```cpp 01 tnt = order_num / 10 + tnt 02 tnt % 10 == check_num ``` - ```cpp 01 tnt = order_num % 10 02 tnt / 10 == check_num ``` **第 14 题** 下面的 `C++` 代码段正常执行后其输出的数字图形是 ( ) ```cpp 01 for (i = 1; i < 5; i++){ 02 for (j = 1; j < i+1; j++) 03 cout << j; 04 cout << endl; 05 } ``` - ```cpp 1 12 123 1234 ``` - ```cpp 1 22 333 4444 ``` - ```cpp 1 21 321 4321 ``` - ```cpp 4 34 234 1234 ``` **第 15 题** 某学校举办“校园演讲比赛”,每位选手由 $8$ 位评委打分(分数为 $0 \sim 10$ 的整数),且每位评委必须打分。计分规则:若至少有 $5$ 位评委给出大于等于 $6$ 分,则成绩有效,最终得分为所有 $8$ 位评委的总分;如给出低于 $6$ 分的评委数量超过 $5$ 位,则记为 $0$ 分。以下核心程序段依次输入 $8$ 个分数,并计算最终得分。横线处应填入 ( ) ```cpp 01 total_score = 0; // 所有分数之和 02 high_count = 0; // ≥6分的评委数量 03 04 for (i = 0; i < 8; i++){ 05 cout << "请输入评委分数: "; 06 cin >> score; 07 ____________________; 08 if (score >= 6) 09 ________________; 10 } 11 12 if (high_count >= 5) 13 cout << total_score; 14 else 15 cout << 0; ``` - ```cpp 01 total_score += score 02 high_count += 1 ``` - ```cpp 01 total_score += score 02 high_count += score ``` - ```cpp 01 high_count += 1 02 total_score += score ``` - ```cpp 01 total_score *= score 02 high_count *= 1 ``` ## 二、判断题(每题 2 分,共 20 分) **第 1 题** 小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。 - 正确 - 错误 **第 2 题** `C++` 语句 `cout<<('4’%'2'=='2'*'2'%2);` 执行后的输出是 $1$。 - 正确 - 错误 **第 3 题** 下面的 `C++` 代码段执行时将报错,因为 $10$ 是整数类型,$a$ 是布尔类型。由于类型不同,不能进行加法运 算。 ```cpp 01 bool a = true; 02 cout << (10 + a); ``` - 正确 - 错误 **第 4 题** 下面 `C++` 代码段执行后将输出 `0-3-6-9-`。 ```cpp 01 for (int i = 0; i < 10; i++){ 02 if (i % 3) 03 continue; 04 cout << i << "-"; 05 } ``` - 正确 - 错误 **第 5 题** 执行下面的 `C++` 代码段,如果 $N$ 是基本数据类型,则语句`cout<<(N);` 将被执行 $0$ 次或无数次(即死循环)。 ```cpp 01 cin >> N; 02 while (N) 03 cout << (N); ``` - 正确 - 错误 **第 6 题** 下面的 `C++` 代码段可正常执行,删除 `continue` 不影响执行效果。 ```cpp 01 for (i = 0; i < 10; i++){ 02 i += 1; 03 continue; 04 } 05 cout << (i); ``` - 正确 - 错误 **第 7 题** 下面的 `C++` 代码段用于计算 $1$ 到 $N$ 之间且包含 $N$ 的所有数字中含有的 $3$ 的个数,如 $1$ 到 $40$ 含有 $14$ 个 $3$,而 $1$ 到 $20$ 则只含有 $2$ 个 $3$。如果将 `while (i!= 0)`改为 `while(abs(i))`,则执行结果相同。 ```cpp 01 cout << "请输入正整数N:"; 02 cin >> N; 03 cnt = 0; // 保存3的个数 04 for (k = 1; k < N + 1; k++){ 05 i = k; 06 while (i != 0){ 07 if (i % 10 == 3) 08 cnt += 1; 09 i /= 10; 10 } 11 } 12 cout << cnt; ``` - 正确 - 错误 **第 8 题** 下面的 `C++` 代码段执行将不会有输出,因为内层循环 `j` 总是 $0$ 开始,`i*j%10 == 0` 将会被满足,执行`break`,故而 `i` 小于 $10$,不会满足`if` 判断条件。 ```cpp 01 for (i = 1; i < 10; i++) 02 for (j = 0; j < i; j++) 03 if (i * j % 10 == 0) 04 break; 05 if(i >= 10) 06 cout << (i*j); ``` - 正确 - 错误 **第 9 题** 下列 `C++` 代码执行后将输出 `1#4#9#16#16`。 ```cpp 01 cnt = 0; 02 for (i = 1; i < 5; i++){ 03 for (j = 1; j < i + 1; j++) 04 if (i * j % 10 == 0) 05 break; 06 if (j >= i + 1) 07 cout << (i * j) << "#"; 08 } 09 if(i >= 5) 10 cout << (i * j); ``` - 正确 - 错误 **第 10 题** 下面 `C++` 代码执行后输出如左图所示,将 `"%d"` 修改为 `"%3d"` 即可实现右图输出。 ```cpp /* // 左图 // 右图 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 9 18 27 36 45 54 63 72 81 */ 01 for (i = 1; i < 10; i++){ 02 for (j = 1; j < 10; j++) 03 printf(" %d", i*j); 04 printf("\n"); 05 } ``` - 正确 - 错误

来源/分类