
一、单选题(每题 4 分,共 20 分)
1. 延安革命纪念馆需要统计不同时期的参观人数。小明编写代码定义了多个变量,但其中有一个变量定义是错误的。请问是哪个?
A. int_1937NianCanGuanRenShu;
B. int 1937-to-1945;
C. int pingJunMeiRiRenShu;
D. int zhanGuanJiBie;
【答案】B2. 以下代码用于输出"勿忘国耻"四个字10次,横线处应该填入什么?for(int i=0; _______; i++){ cout << "勿忘国耻" << endl;}
A. i<10
B. i<=10
C. i>10
D. i==10
【答案】A3. 在红军密码通讯中,经常使用二进制编码传递信息。将十进制数1937(红军长征出发年份)转换为二进制,结果是?
A. 11110010001
B. 1111001001
C. 11110001001
D. 11110011001
【答案】A4. 在红军长征路线地图(n×n的网格,其中行号列号从0开始算)中,以下哪个条件可以判断某个位置(i,j)是否在副对角线上?(从右上到左下)
A. i==j
B. i+j==n-1
C. i+j==n
D. i==0||j==0
【答案】B5. 红军地下组织在艰苦的革命斗争中建立了严密的联络网络,通过秘密交通线传递情报、护送人员,为革命胜利作出了重要贡献。这些联络点就像链条一样,一环扣一环,确保信息的安全传递。在红军地下组织的联络网中,使用单链表结构存储各联络点的信息。在艰苦的革命战争年代,地下党组织依靠严密的联络网络传递情报,为保护革命力量发挥了重要作用。无数地下党员冒着生命危险在敌人心脏地区开展工作。在链表数据结构中,以下哪种操作的时间复杂度是O(1)?
A. 在已知结点后插入新结点
B. 查找链表中第n个结点
C. 删除链表中的最后一个结点
D. 在链表中查找值为x的结点
【答案】A二、多选题(每题 6 分,共 30 分)
1. (多选)1935年1月,中共中央在贵州遵义召开了具有伟大转折意义的遵义会议,为纪念遵义会议胜利召开,某小学开展"重走长征路·学好编程课"主题活动,同学们在信息技术课上学习C++程序结构。学员小红做了如下笔记,以下关于C++程序结构的说法中,正确的是()
A. 一个完整可执行的C++程序必须包含且仅包含一个main函数
B. 除#include、#define等预处理指令外,每条C++语句都以分号;作为结束标志
C. 无论main函数在源文件中的位置如何(位于开头、中间或末尾),程序都从main函数开始执行
D. C++程序不区分字母大小写,例如main与Main、int与Int是相同的标识符
【答案】ABC2. (多选)在八路军129师的战史数据记录中,需要使用数组存储各战役的信息。如果我们用数组存储各战役的信息,以下哪些是C++中合法的数组定义?
A. int arr[10];
B. int arr[]={1,2,3};
C. int arr[5]={1,2};
D. int arr[3]={1,2,3,4};
【答案】ABC3. (多选)在红军长征的粮食配给计算中,需要将数组作为参数传递给函数进行处理。长征途中,红军将士克服重重困难,依靠坚定的革命信念和严密的组织纪律完成战略转移。以下关于数组作为函数参数的说法中,正确的是?
A. 数组作为参数传递时,实际上传递的是数组的首地址
B. 函数内对数组参数的修改会影响原数组
C. 在函数参数中,int arr[]等价于int* arr,因此第一维的大小可以不写
D. 数组参数必须指定大小,如int arr[10]
【答案】ABC4. (多选)在解放战争时期的后勤物资调配中,需要对各种物资数据进行排序处理。解放战争是关系到中国前途命运的大决战,辽沈、淮海、平津三大战役的胜利奠定了新中国成立的基础。以下关于排序算法的说法中,正确的是?
A. 冒泡排序的平均时间复杂度是O(n²)
B. 选择排序的平均时间复杂度是O(n²)
C. 快速排序的平均时间复杂度是O(nlogn)
D. 插入排序的平均时间复杂度是O(n²)
【答案】ABCD5. (多选)在抗日战争时期的敌后根据地,军民团结一心,建立了严密的后勤保障网。为了防范敌军轰炸,兵工厂常将珍贵的弹药囤积在只能单向进出的隐蔽防空洞中,这意味着最后搬入洞中的弹药箱,在部队紧急调拨时会被最先搬出来;而在根据地的兵站外,由广大群众组成的"支前独轮车运输队"则按照先来后到的顺序,依次排队领取并前送粮草物资。伟大的抗战胜利离不开军民无间的紧密配合和高效的物资调度。若我们在现代信息系统中模拟上述"防空洞存取弹药"(栈)与"车队排队领物"(队列)的过程,需要用到基础的数据结构。以下关于栈和队列的说法中,正确的是?
A. 栈遵循后进先出(LIFO)原则
B. 队列遵循先进先出(FIFO)原则
C. 栈只能用数组实现,队列只能用链表实现
D. 栈和队列的插入删除操作都限定在同一端进行
【答案】AB三、编程题(每题 12.5 分,共 50 分)
1. 红军物资均衡分配
【题目描述】
长征途中,红军有两支纵队正在行军。后方有n件物资需要分配给前线部队。每件物资可以有三种分配方式:· 分配给第一纵队;· 分配给第二纵队;· 暂时留作战略预备。由于运输能力有限,最多只能留m件物资作为预备。为了保持两支纵队的公平,要求两支纵队获得的物资总重量必须相等。物资重量为w₁,w₂,…,wₙ。问:有多少种分配方式使得两支纵队获得的总重量相等,且预备物资不超过m件?注意:两边都不分配(所有物资都留作预备)也算一种方案,前提是n≤m。
【输入格式】
第1行:2个正整数n,m(物资总数、预备上限)。第2行:n个正整数w₁,w₂,…,wₙ(各物资重量,空格分隔)。
【输出格式】
输出一个整数,表示满足条件的分配方案总数。
【输入输出样例#1】
输入:3 31 2 3输出:3
【提示】
思路:每件物资有3种状态(给一队、给二队、预备)。可用DFS枚举或DP。设差值为d(一队总重-二队总重),预备件数为k,最终求d=0且k≤m的方案数。
2. 长征路上的学习之旅
【题目描述】
在一条东西向的长征路上,分布着A座革命纪念馆和B座烈士陵园。以道路最西端为坐标原点,第i座革命纪念馆位于坐标sᵢ处,第j座烈士陵园位于坐标tⱼ处。为了传承红色基因,红军后代小分队计划开展红色教育活动。每个小分队都在指定位置驻扎,并有一定的探索半径限制。你需要回答以下Q个询问:第k次询问:红军小分队在坐标xₖ处驻扎,探索半径为Rₖ,问在探索范围内(即坐标在[xₖ−Rₖ, xₖ+Rₖ]区间内)有多少座建筑(纪念馆和陵园)?
【输入格式】
第1行:3个正整数A,B,Q(纪念馆数量、陵园数量、询问次数)。第2行:A个正整数s₁,s₂,…,sₐ(各纪念馆坐标)。第3行:B个正整数t₁,t₂,…,tᵦ(各陵园坐标)。接下来Q行:每行2个正整数xₖ,Rₖ(驻扎位置和探索半径)。
【输出格式】
输出Q行,第k行输出第k次询问的答案。
【输入输出样例#1】
输入:2 2 310 3020 4020 1015 550 15输出:321
【提示】
思路:将所有坐标合并到一个数组中排序,对每个询问使用二分查找(lower_bound/upper_bound)统计区间内的坐标数量。
3. 革命烈士编号
【题目描述】
某革命烈士纪念馆为每位烈士分配了一个唯一的编号。现在需要找出在区间[a,b]内的所有"红色素数"。一个数被称为"红色素数",当且仅当:· 它是一个素数· 它的各位数字之和也是素数
【输入格式】
一行两个整数a、b,表示查询区间。
【输出格式】
一行若干个整数,表示所有红色素数,按从小到大顺序,空格分隔。如果没有则输出"NO"。
【输入输出样例#1】
输入:10 50输出:11 23 29 41 43 47
【提示】
思路:遍历[a,b]中的每个数,先判断是否为素数,再求其各位数字之和判断是否也为素数。
4. 长征里程计算
【题目描述】
红军从江西瑞金出发,开始了举世闻名的两万五千里长征。出发之初,部队还需要适应高强度行军,第一天只行进了x公里;随着将士们体能的锻炼和路线的熟悉,之后每一天都比前一天多行进y公里。请你帮助史料研究员计算两个数据:· 第n天这一天,红军行军的里程数;· 前n天累计的总行军里程。由于真实行军数据精确到小数(如30.5公里),本题中x、y均为实数(可能含小数)。
【输入格式】
一行三个数x、y、n,用空格分隔。分别表示第一天行军里程、每天增加的里程、第几天。x、y为实数,n为整数。
【输出格式】
一行两个数,用一个空格分隔:· 第n天的行军里程· 前n天累计的总行军里程两个数都必须保留2位小数。
【输入输出样例#1】
输入:(样例未在图片中完整显示)输出:(根据公式计算)
【提示】
思路:等差数列。第n天里程:aₙ = x + (n−1)·y;前n天总里程:Sₙ = n·(x + aₙ)/2 = n·(2x + (n−1)·y)/2。使用double计算,输出保留2位小数。
感谢您抽出

.

.

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

夜雨聆风