
一、单选题(共5题,每题 4 分, 20 分)
第1题
红军通信员正在编写一套敌情分析程序,他需要定义一个变量来专门记录"敌军所在的区域代号(仅使用单个大写字母,如'A'、'B'、'C'表示)"。以下定义最合适的是?( )
·A. int position;
·B. double position;
·C. char position;
·D. long long position;
【答案】C
第2题
在"飞夺泸定桥"战斗中,22名突击队员分成若干小组。执行代码cout << 22 / 4 + 22 % 4;后,输出的结果是?( )
·A. 5
·B. 2
·C. 7
·D. 8
【答案】C
第3题
大生产运动中,开荒面积 land必须大于10亩且小于50亩才是"标准示范田"。以下能正确表示该条件的C++表达式是?( )
·A. 10 < land < 50
·B. land > 10 && land < 50
·C. land > 10 || land < 50
·D. land > 10, land < 50
【答案】B
第4题
红军过草地时,指南针是唯一的方向保障。如果变量 angle代表方位角,执行if (angle = 0) cout << "North"; else cout << "Unknown";后的输出结果是?( )
·A. North
·B. Unknown
·C. 0
·D.报错,无法运行
【答案】B
第5题
炊事班要给战士们分发干粮,只要"粮袋里还有粮食(变量food > 0)",就一直分发。这种场景最适合使用?( )
·A. continue语句
·B. while循环
·C. if单分支
·D. switch语句
【答案】B
二、多选题(每题 6 分,共 30 分)
第1题
在敌后根据地,若情报等级 score达到90分以上(含),或者带有"特急"标志(char flag = 'S'),则定义为"绝密情报"。以下判断逻辑正确的有?( )
·A. score >= 90 || flag == 'S'
·B. !(score < 90) || flag == 'S'
·C. score > 89 && flag == 'S'
·D. score > 90 || flag == 'S'
【答案】AB
第2题
红军某班有 5名战士,身高记录在int height[5] = {165, 170, 172, 168, 175};中。下列说法错误的有?( )
·A. height[0]的值是165。
·B. height[5]是最后一名战士的身高。
·C.执行height[1] += 2;后,height[1]变为172。
·D.数组的下标范围是从1到5。
【答案】BD
第3题
为了练习投弹技术,小战士每天进行 5轮投掷。以下for循环能准确执行5次的有?( )
·A. for(int i = 1; i <= 5; i++)
·B. for(int i = 0; i < 5; i++)
·C. for(int i = 5; i >= 1; i--)
·D. for(int i = 0; i <= 5; i++)
【答案】ABC
第4题
长征途中,班长需要把 n个馒头平均分给m(m > 1, n >= m)个战士。若要判断馒头是否能正好分完(没有余数),下列逻辑正确的有?( )
·A. n % m == 0
·B. n / m * m == n
·C. n % m != 1
·D. !(n % m)
【答案】ABD
第5题
在抗日游击战中,战士们在山路上布置了 10个陷阱。代码用于计算陷阱捕获敌人的总数。当遇到陷阱被彻底破坏(用-99表示)时,停止后续所有计数。此外,如果有陷阱被野兽误触发(用-1表示),不仅该陷阱无法捕获敌人,还会导致紧挨着它的下一个陷阱失效(捕获数变为0)。请阅读以下C++代码,关于程序的最终运行结果,下列说法正确的有?( )
【代码】
#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;}
·A.程序最终计算出捕获敌人的总数(total)为5。
·B.程序运行结束后,成功捕获到敌人的陷阱个数(valid_traps)为3。
·C.代码执行过程中,数组元素traps[3]的值被修改为了0。
·D.遇到break跳出循环时,循环变量i的值为5。
【答案】ACD
三、编程题(每题 12.5 分,共 50 分)
第1题:招募统计
【题目描述】
某团进行招募,如果报名的青年身高 h 大于等于 170 厘米,输出 Qualified;否则输出 Keep trying。
【输入格式】
第一行一个整数 n,表示报名人数。第二行 n 个整数,表示每个人的身高,以空格间隔。
【输出格式】
共 n 行,每行输出一个字符串,表示对应青年的考核结果。
【数据范围】
1 ≤ n ≤ 1000,150 ≤ h ≤ 200
第2题:情报站
【题目描述】
地下党建立了编号从 A 到 B 的秘密联络站。只有编号是 7 的倍数,且编号是奇数的站点才是安全的。请统计范围 [A,B] 内安全站点的数量。
【输入格式】
第一行两个整数 A 和 B。
【输出格式】
输出一个整数表示安全站点的数量。
【数据范围】
1 ≤ A ≤ B ≤ 10^7
第3题:密信解析
【题目描述】
红军的一份密信由一串小写字母组成。解析规则如下:• 忽略所有的元音字母(a, e, i, o, u)。• 在剩下的每个辅音字母前加上一个点号 "."。• 将剩下的所有辅音字母转为大写。请输出解析后的密信。
【输入格式】
一个长度不超过 100 的字符串。
【输出格式】
解析后的字符串。(保证输出不为空)
【数据范围】
1 ≤ 字符串长度 ≤ 100
第4题:突击期的最大里程
【题目描述】
长征途中,为了在保存红军体力的同时加快战略转移,指挥部决定设立一个为期 W 天的"战略突击期"。由于翻雪山、过草地地形复杂,完全强求每天匀速行军是不现实的。指挥部制定了严格的评估标准:在这连续的 W 天内(包含 W-1 次相邻的天数过渡),任何相邻两天的行军里程差的绝对值都不能超过 D 公里。如果有任意相邻两天的差值严格大于 D,则会发生"剧烈颠簸",该 W 天的突击期将被视为不合格。请你编写程序,在给定的 N 天行军记录中,找出所有合格的"战略突击期",并计算在这些合法的突击期中,这 W 天的行军总里程最大是多少。如果没有找到任何一个合格的突击期,则输出 -1。
【输入格式】
第一行包含三个正整数 N, W, D,分别表示总记录天数、突击期的天数要求,以及相邻两天的最大允许里程差。第二行包含 N 个非负整数 a1, a2, ..., aN,表示这 N 天里每天的行军里程。
【输出格式】
输出一个整数,表示在所有合格的"战略突击期"中,这 W 天的行军总里程的最大值。如果没有合格的突击期,输出 -1。
【数据范围】
对于40%的数据,1 ≤ W ≤ N ≤ 2000。对于100%的数据,1 ≤ W ≤ N ≤ 10^5,0 ≤ D ≤ 10^9。每天的行军里程 0 ≤ ai ≤ 10^9。
感谢您抽出

.

.

来阅读本文
往/期/回/顾
REVIEW

夜雨聆风