A. 2026-信息素养-复赛-小学组 C++ 客观题

    客观题

2026-信息素养-复赛-小学组 C++ 客观题

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

一、单选题(共 5 题,每题 2 分,共 10 分)

  1. 红军通信员正在编写一套敌情分析程序,他需要定义一个变量来专门记录"敌军所在的区域代号(仅使用单个大写字母,如'A'、'B'、'C'表示)"。以下定义最合适的是?( ) {{ select(1) }}
  • int position;
  • double position;
  • char position;
  • long long position;
  1. 在"飞夺泸定桥"战斗中,22 名突击队员分成若干小组。执行代码后,输出的结果是?( )
cout << 22 / 4 + 22 % 4;

{{ select(2) }}

  • 5
  • 2
  • 7
  • 8
  1. 大生产运动中,开荒面积 land 必须大于 10 亩且小于 50 亩才是"标准示范田"。以下能正确表示该条件的 C++表达式是?( ) {{ select(3) }}
  • 10 < land < 50
  • land > 10 && land < 50
  • land > 10 || land < 50
  • land > 10, land < 50
  1. 红军过草地时,指南针是唯一的方向保障。如果变量 angle 代表方位角,执行以下代码后的输出结果是?( )
if (angle = 0)
    cout << "North";
else
    cout << "Unknown";

{{ select(4) }}

  • North
  • Unknown
  • 0
  • 报错,无法运行
  1. 炊事班要给战士们分发干粮,只要"粮袋里还有粮食(变量 food > 0)",就一直分发。这种场景最适合使用?( ) {{ select(5) }}
  • continue 语句
  • while 循环
  • if 单分支
  • switch 语句

二、多选题(共 5 题,每题 4 分,共 20 分)

  1. 在敌后根据地,若情报等级 score 达到 90 分以上(含),或者带有"特急"标志(char flag = 'S'),则定义为"绝密情报"。以下判断逻辑正确的有?( ) {{ multiselect(6) }}
  • score >= 90 || flag == 'S'
  • !(score < 90) || flag == 'S'
  • score > 89 && flag == 'S'
  • score > 90 || flag == 'S'
  1. 红军某班有 5 名战士,身高记录在数组中。下列说法错误的有?( )
int height[5] = {165, 170, 172, 168, 175};

{{ multiselect(7) }}

  • height[0] 的值是 165。
  • height[5] 是最后一名战士的身高。
  • 执行 height[1] += 2; 后,height[1] 变为 172。
  • 数组的下标范围是从 1 到 5。
  1. 为了练习投弹技术,小战士每天进行 5 轮投掷。以下 for 循环能准确执行 5 次的有?( ) {{ multiselect(8) }}
  • for(int i = 1; i <= 5; i++)
  • for(int i = 0; i < 5; i++)
  • for(int i = 5; i >= 1; i--)
  • for(int i = 0; i <= 5; i++)
  1. 长征途中,班长需要把 n 个馒头平均分给 m(m > 1, n >= m)个战士。若要判断馒头是否能正好分完(没有余数),下列逻辑正确的有?( ) {{ multiselect(9) }}
  • n % m == 0
  • n / m * m == n
  • n % m != 1
  • !(n % m)
  1. 在抗日游击战中,战士们在山路上布置了 10 个陷阱。代码用于计算陷阱捕获敌人的总数。当遇到陷阱被彻底破坏(用-99 表示)时,停止后续所有计数。此外,如果有陷阱被野兽误触发(用-1 表示),不仅该陷阱无法捕获敌人,还会导致紧挨着它的下一个陷阱失效(捕获数变为 0)。
#include <iostream>
using namespace std;

int main() {
    int total = 0;        // 捕获敌人总数
    int valid_traps = 0;  // 成功捕获到敌人的陷阱个数
    int traps[10] = {2, 3, -1, 5, 0, -99, 4, 1, 2, 3};

    for (int i = 0; i < 10; i++) {
        if (traps[i] == -99) {
            break;
        }
        if (traps[i] == -1) {
            traps[i + 1] = 0;
            continue;
        }
        if (traps[i] > 0) {
            total += traps[i];
            valid_traps++;
        }
    }
    return 0;
}

关于程序的最终运行结果,下列说法正确的有?( ) {{ multiselect(10) }}

  • 程序最终计算出捕获敌人的总数(total)为 5。
  • 程序运行结束后,成功捕获到敌人的陷阱个数(valid_traps)为 3。
  • 代码执行过程中,数组元素 traps[3] 的值被修改为了 0。
  • 遇到 break 跳出循环时,循环变量 i 的值为 5。

2026年-信息素养-复赛-C++小学组-真题1

未参加
状态
已结束
规则
IOI
题目
5
开始于
2026-7-9 11:00
结束于
2026-9-30 19:00
持续时间
2000 小时
主持人