万卷网> 信息素养大赛 >C++编程挑战赛 > 2026年全国青少年信息素养大赛星火征途C++编程挑战赛

2026年全国青少年信息素养大赛星火征途C++编程挑战赛
复赛 真题 初中 2026 2026-07-03 13:37:01 466

一、单选题

1.

小明想用下面的 for 循环输出 10 次内容:

for (int i = 1; 条件; i++) {
cout << "ChangZheng" << endl;
}

横线处应填写哪个条件?

A.

i < 10

B.

i <= 10

C.

i == 10

D.

i > 10

2.

延安革命纪念馆需要统计不同时间的参观人数。小明编写代码定义了多个变量,但其中有一个变量定义是错误的。请问是哪个?

A.

int _1937NianCanGuanRenShu;

B.

int 1937-to-1945;

C.

int pingJunMeiRiRenShu;

D.

int zhanGuanJiBie;

3.

在红军长征路线地图(n x n 的网格,其中行号列号从 0 开始算)中,以下哪条条件可以判断某个位置 (i, j) 是否在副对角线上?(从右上到左下)

A.

i == j

B.

i + j == n - 1

C.

i + j == n

D.

i == 0 || j == 0

4.

遵义会议召开于 1935 年。把十进制整数 1935 转换为二进制,结果是哪个?

A.

11110001111

B.

11110010001

C.

11101111011

D.

11000001111

5.

红军地下组织在艰苦的革命斗争中建立了严密的联络网络,通过秘密交通线传递情报、护送人员,为革命胜利作出了重要贡献。这些联络点就像链条一样,一环扣一环,确保信息的安全传递。在红军地下组织的联络网中,使用单链表结构存储各联络点的信息。在单链表数据结构中,以下哪种操作的时间复杂度是 O(1)?

A.

在已知结点后插入新结点

B.

查找链表中第 n 个结点

C.

删除链表中的最后一个结点

D.

在链表中查找值为 x 的结点

二、多选题

1.

在解放战争时期的后勤物资调配中,需要对各种物资数据进行排序处理。解放战争是关系到中国前途命运的大决战,辽沈、淮海、平津三大战役的胜利奠定了新中国成立的基础。以下关于排序算法的说法中,正确的是?

A.

冒泡排序的平均时间复杂度是 O(n^2)

B.

选择排序的平均时间复杂度是 O(n^2)

C.

快速排序的平均时间复杂度是 O(nlogn)

D.

插入排序的平均时间复杂度是 O(n^2)

2.

在抗日战争时期的敌后根据地,军民团结一心,建立了严密的后勤保障网。为了防范敌军轰炸,兵工厂常将珍贵的弹药囤积在只能单向进出的隐蔽防空洞中,这意味着最后搬入洞中的弹药箱,在部队紧急调拨时会被最先搬出来。而在根据地的兵站外,由广大群众组成的“支前独轮车运输队”则按照先来后到的顺序,依次排队领取并前送粮草物资。伟大的抗战胜利离不开军民无间的紧密配合和高效的物资调度。若我们在现代信息系统中模拟上述“防空洞存取弹药”(栈)与“车队排队领物”(队列)的过程,需要用到基础的数据结构。以下关于栈和队列的说法中,正确的是?

A.

栈遵循后进先出(LIFO)原则

B.

队列遵循先进先出(FIFO)原则

C.

栈只能用数组实现,队列只能用链表实现

D.

栈和队列的插入删除操作都限定在同一端进行

3.

1935 年 1 月,中共中央在贵州遵义召开了具有伟大转折意义的遵义会议。为了纪念遵义会议胜利召开,某小学开展“重走长征路 学好编程课”主题活动,同学们在信息技术课上学习C++ 程序结构。学员小红做了如下笔记,以下关于 C++ 程序结构的说法中,正确的是( )

A.

一个完整可执行的 C++ 程序必须包含且仅包含一个 main 函数

B.

除 #include、#define 等预处理指令外,每条 C++ 语句都以分号 ; 作为结束标志

C.

无论 main 函数在源文件中的位置如何(位于开头、中间或末尾),程序都从 main 函数开始执行

D.

C++ 程序不区分字母大小写,例如 main 与 Main、int 与 Int 是相同的标识符

4.

在八路军 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};

5.

在红军长征的粮食配给计算中,需要将数组作为参数传递给函数进行处理。长征途中,红军将士克服重重困难,依靠坚定的革命信念和严密的组织纪律完成战略转移。以下关于数组作为函数参数的说法中,正确的是?

A.

数组作为参数传递时,实际上传递的是数组的首地址

B.

函数内对数组参数的修改会影响原数组

C.

在函数参数中,int arr[] 等价于 int* arr,因此第一维的大小可以不写

D.

数组参数必须指定大小,如 int arr[10]

三、编程题

1.

长征路上的学习之旅
时间限制 1s
内存限制 256M
题目描述
在一条东西向的长征路上,分布着 A 座革命纪念馆和 B 座烈士陵园。以道路最西端为坐标原点,第 i 座革命纪念馆位于坐标 s_i 处,第 j 座烈士陵园位于坐标 t_j 处。为了传承红色基因,红军后代小分队计划开展红色教育活动。每个小分队都在指定位置驻扎,并有一定的探索半径限制。
你需要回答以下 Q 个询问:
第 k 次询问:红军小分队在坐标 x_k 处驻扎,探索半径为 R_k,问在探索范围内,即坐标在 [x_k - R_k, x_k + R_k] 区间内,有多少座建筑(纪念馆和陵园)?
输入格式
第 1 行:三个正整数 A B Q,分别表示纪念馆数量、陵园数量、询问次数。
第 2 行:A 个正整数 s_1, s_2, ..., s_A,表示各纪念馆坐标。
第 3 行:B 个正整数 t_1, t_2, ..., t_B,表示各陵园坐标。
接下来 Q 行:每行 2 个正整数 x_k R_k,表示驻扎位置和探索半径。
输出格式
输出 Q 行,第 k 行输出第 k 次询问的答案。
数据范围提示
坐标和半径可能达到 10^10,需要使用 long long。
输入样例1

2 2 3
10 30
20 40
20 10
15 5
50 15

输出样例1

3
2
1

输入样例2

3 4 5
100 300 600
200 400 700 900
250 200
100 50
500 250
700 100
500 500

输出样例2

4
1
4
2
7

输入样例3

3 2 6
100 500 1000
300 700
100 0
200 50
100 200
500 200
600 500
50 100

输出样例3

1
0
2
3
5
1
2.

红军物资均衡分配
时间限制 1s
内存限制 256M
题目描述
长征途中,红军有两支纵队正在行军。后方有 n 件物资需要分配给前线部队。每件物资可以有三种分配方式:
1. 分配给第一纵队;
2. 分配给第二纵队;
3. 暂时留作战略预备。
由于运输能力有限,最多只能留 m 件物资作为预备。
为了保持两支纵队的公平,要求两支纵队获得的物资总重量必须相等。物资重量为w1, w2, ..., wn。
问:有多少种分配方式使得两支纵队获得的总重量相等,且预备物资不超过 m 件?
注意:两边都不分配,即所有物资都留作预备,也算一种方案,前提是 n <= m。
输入格式
第 1 行:两个正整数 n m,分别表示物资总数、预备上限。
第 2 行:n 个正整数 w_1, w_2, ..., w_n,表示各物资重量,空格分隔。
输出格式
输出一个整数,表示满足条件的分配方案总数。
输入样例1

3 3
1 2 3

输出样例1

3

输入样例2

3 1
1 2 3

输出样例2

2

输入样例3

4 0
2 3 5 10

输出样例3

2
3.

长征里程计算
时间限制 1s
内存限制 256M
题目描述
红军从江西瑞金出发,开始了举世闻名的两万五千里长征。出发之初,部队还需要适应高强度行军,第一天只行进了 x 公里;随着将士们体能的锻炼和路线的熟悉,之后每一天都比前一天多行进 y 公里。
请你帮助史料研究员计算两个数据:
1. 第 n 天这一天,红军行军的里程数;
2. 前 n 天累计的总行军里程。
由于真实行军数据精确到小数(如 30.5 公里),本题中 x、y 均为实数(可能含小数)。
输入格式
一行三个数 x y n,用空格分隔,分别表示第一天行军里程、每天增加的里程、第几天。x、y 为实数,n 为整数。
输出格式
一行两个数,用一个空格分隔:
1. 第 n 天的行军里程;
2. 前 n 天累计的总行军里程。
两个数都必须保留 2 位小数。
补充校验样例
无本题官方样例,以下样例用于自测。
5 2.5 3
50 99.00

4.

革命烈士编号
时间限制 1s
内存限制 256M
题目描述
某革命烈士纪念馆为每位烈士分配了一个唯一的编号。现在需要找出在区间 [a, b] 内的所有“红色素数”。一个数被称为“红色素数”,当且仅当:
1. 它是一个素数;
2. 它的各位数字之和也是素数。
输入格式
一行两个整数 a b,表示查询区间。
输出格式
一行若干个整数,表示所有红色素数,按从小到大顺序输出,空格分隔。如果没有则输出 NO。
输入样例1

10 50

输出样例1

11 23 29 41 43 47

输入样例2

1 20

输出样例2

2 3 5 7 11
公众号
客服 反馈
顶部