2026年全国青少年信息素养大赛 C++小高组A 复赛模拟题
剩余时间 --:--:--
单选题 共 5 题
1.
红军小分队连夜急行军,以每天30公里的速度在草地行军了3天。通讯员用 C++ 表达式 30 * 3 计算总里程,得出结果是多少? 
2.
小英雄雨来为了掩护交通员李大叔,需要在村里的5个秘密掩体之间转移。如果用 C++ 数组 int hideouts[5]; 来模拟存储这5个掩体的编号,该数组合法的最大下标是多少?
3.

井冈山斗争时期,红军通信员为了防备敌人截获,将秘密口令分成了两段传递。请观察以下 C++ 密码拼接程序,电报机的屏幕上最终会输出什么情报内容?

string s1 = "星火";
string s2 = "燎原";
cout << s1 + s2;
4.

1935年长征途中,红军对电台发报有着极其严格的纪律。现有三个布尔(bool)变量代表当前状态:
has_intel: 是否截获紧急情报
has_order: 首长是否下达发报命令
enemy_listening: 敌军测向台是否正在侦听
【核心军规】 只有满足条件:“(有紧急情报 或 首长下令) 且 (敌军测向台未侦听)”,才允许启动发报。下列哪段 C++ 代码能正确实现这条严格的判断逻辑?

5.

延安大生产运动时期,发扬自力更生精神的八路军战士收成了 7 筐南瓜,准备平分给 2 个有困难的军属家庭。在 C++ 后勤分配程序中:int a = 7; int b = 2;,因为必须按“整筐”分配,请问代表每家分得南瓜筐数的表达式 a/b 结果是?

多选题 共 5 题
1.

红军长征是一次连续不断的伟大远征。指挥部研发“红色任务模拟器”时,使用 C++ 中的数组来记录每天的行军里程。关于数组的特性,以下说法正确的是?

2.

红军不怕远征难,万水千山只等闲。”二万五千里的长征奇迹,是红军战士用双脚一步一步走出来的。假设我们需要编写一个程序来记录红军战士的行军步数,定义了整型变量 int step = 0;。为了记录新走的一步,我们需要让变量 step 的值增加 1。请问下列哪些 C++ 代码可以实现这一目标?

3.

长征过草地时,红军各连队为了防备敌人偷袭,设定了复杂的夜间口令。C++“红色战术系统”用 string 变量来校验这些口令。以下关于口令字符串的语法,符合 C++ 规定的是?


4.

延安大生产运动中,八路军战士发扬自力更生精神,收获了 5 筐小米(int a = 5;),准备尽量平均分给前线的 2 个突击班(int b = 2;)。在 C++ 后勤分配程序中评估下列条件,哪些结果为真(true)?

5.

“重走长征路”C++模拟器使用 for 和 while 循环来还原红军的艰苦跋涉。关于这两种循环,以下说法正确的是?

问答题 共 4 题
1.

粮草先行

【题目描述】

“兵马末动,粮草先行。"

长征途中,红军严格遵守“三大纪律八项注意”。在聘请老乡帮忙运输物资时,坚持买卖公平。后勤部制定了一套标准的运费结算规则:

基础运费:物资重量在 3 千克以内(含 3 千克),统一支付 10 元(银元)。

超重补助:如果物资超过 3 千克,超出的部分每 1 千克加收 3 元。

输入一个整数 W 代表物资的重量,请编写程序帮助后勤参谋计算并输出应支付的总运费。

【输入格式】

一个整数 W (表示重量)。

【输出格式】

一个整数(表示总运费)。

【输入输出样例 #1

输入#1

2

输出#1

10

2.

走出草地 

【题目描述】

“风雨浸衣骨更硬,野菜充饥志越坚。”

红军长征过草地时,补给极其困难。每位战士身上带的干粮(N)是走出草地的关键。

假设行军非常艰苦,战士们每天的干粮消耗量随着体力的下降每天都在增加:

1 天行军消耗 1 份干粮;

2 天行军消耗 2 份干粮;

3 天行军消耗 3 份干粮……以此类推,第 i 天需要消耗 i 份干粮。

 每天清晨,战士会检查袋子里的剩余干粮。如果剩余干粮足够支付当天的消耗(N>=i ),则可以继续坚持行军;如果不够,意味着弹尽粮绝,必须等待救援。

输入一个整数 N,请计算战士靠这些干粮最多能完整行军多少天?

【输入格式】

 一个整数 N(初始干粮总数)。

【输出格式】

一个整数(完整行军的天数)

【输入输出样例#1】

输入#1

7

输出#1

 3

3.

决胜千里

【题目描述】

“红军的眼睛和耳朵,决胜于千里之外

在长征途中,红军的无线电侦察台屡建奇功。他们夜以继日地监听敌人的电台信号,从嘈杂的电波中捕捉关键情报。

假设侦察员小李记录下了敌军电台的 n 次信号强度数据。为了分析敌军电台的发射规律,我们需要计算这些信号强度的极差(即:最强

信号与最弱信号的差值)

输入一个正整数 n,随后输入n 个代表信号强度的正整数。请编程找出其中的最大值和最小值,并输出它们的差。

【输入格式】

第一行:

一个正整数n (1≤n≤100)

第二行:n个正整数(信号强度),用空格隔开。

【输出格式】

一个整数(最大值减去最小值的差)

【输入输出样例#1】

输入#1

3

1 4 7

输出#1

6

4.

物资统计

【题目描述】

解放战争时期,军民团结一心。前线指挥部正在评选支援前线的模范队,需要统计各小队运送的粮食总量(单位:斤)。由于敌军的无

线电干扰,接收到的电报数据掺杂了乱码噪点,用字符# 表示。

作为通讯员,请你编写程序,发扬一丝不苟的作风,剔除电文中的噪点 #,并找出运送物资数量最多的小队。

【输入格式】

第一行,一个正整数n,表示小队的数量;

接下来n行,每一行给出一个小队的代号与物资数量,中间用一个空格隔开。代号与物资数量均不包含空格,物资数目有可能包含#,

除此之外都由数字组成,且无前导零或小数点。

【输出格式】

输出物资运送总量最多的小队的代号,以及相应的物资实际数量。若有多个小队物资数量并列最大,输出顺序靠前的小队代号。

【输入输出样例州1】

输入#1

2

ab 123#0987#123

abc 122489720

输出#1

ab 1230987123

C++ 编辑器
输入
输出