试卷总分:100分


选择题 5题 10分

01 02 03 04 05


多选题 5题 20分

06 07 08 09 10


编程题 4题 70分

11 12 13 14

E1027 全国青少年信息素养大赛 -算法应用 星火征途 C++ 小学组 复赛模拟题2-考试

选择题 共5道

01 小英雄雨来要给八路军传递情报,他需要定义一个C++变量来记录敌人的数量。以下哪个变量名是合法的? 2分
登录后查看选项
02 红军长征途经两万五千里。若用C++计算 25000 / 1000 % 10,得到的结果代表哪一个数字? 2分
登录后查看选项
03 部队要将英雄事迹记录在档案中。如果想用变量分别存储战士的“年龄(整数)”和“代号(单个字符)”,应该选择的数据类型是? 2分
登录后查看选项
04 延安大生产运动中,‌生产实绩突出的战士可评为“劳动模范”。下面那个选项能表示开荒面积 area 达到50亩 ? 2分
登录后查看选项
05 井冈山挑粮小道上,红军战士不知一共要走多少步才能到山顶,但只要“还没到山顶(标志为0)”,就会一直走。这种“不知道明确循环次数”的场景,最适合用哪种语句? 2分
登录后查看选项

多选题 共5道

06 在抗日战争的秘密电报中,如果一个情报的危险等级 level 大于 8,或者情报属于紧急类别(类别 type == 'E'),都需要立刻上报。以下逻辑运算正确的有? 4分
登录后查看选项
07 红军分 3 路大军围攻某城市,兵力(万人)记录为 int army[3] = {15, 20, 10};。下列说法正确的有? 4分
登录后查看选项
08 红军强渡大渡河,先遣队需要安排 3 批战士过河。以下能够正确执行 3 次的 for 循环有? 4分
登录后查看选项
09 红军在长征途中穿越茫茫草地。由于草地环境险恶、沼泽密布,为了保障战士们的安全,连队严格规定大家必须“两人一组”结伴行军、互相搀扶,绝不允许单人盲目行动。假设某班级的总人数由变量 soldiers 存储,如果要判断该班人数是否能完美两两组队(即总人数为偶数,),下列C++条件表达式正确的有? 4分
登录后查看选项
10

征途中红军准备翻越一座大雪山——夹金山。雪山上气候变幻莫测,红军战士们互相扶持。以下代码用于计算红军小分队在6天内的有效前进总里程。当遇到极端暴风雪(用 -1 表示)时,队伍原地休整,当天不计入前进里程。

阅读以下代码,想要正确计算出 total_distance(有效前进里程),下划线处可以填入的语句有?

int total_distance = 0; // 数组记录每天的前进里程,-1 表示遇到暴风雪原地休整
int daily_progress[] = {30, -1, 40, 25, -1, 35};
for (int i = 0; i < 6; i++) {
  if (daily_progress[i] == -1) {
    _______;
  }
  total_distance += daily_progress[i];
}
4分
登录后查看选项

编程题 共4道

11

生产标兵

题目描述

延安大生产运动中,各连队都在努力开荒。

规定:如果一个连队收获的粮食 grain 大于等于 1000 斤,输出 Hero;如果小于 1000 斤,输出 Come on。

输入

一个整数 n,接下来 n 个整数,表示每个连队收获的粮食斤数,以空格分隔。

输出

按规则输出英文字符串,每行一个。

数据范围

1≤n≤10000,1≤grain≤10000

输入样例1

3

1200 800 1000

输出样例1

Hero

Come on

Hero

输入样例2

4

500 1500 750 1000

输出样例2

Come on

Hero

Come on

Hero

输入样例3

1

1000

输出样例3

Hero

15分

C0588
登录后作答
12

统计密码

题目描述

小英雄雨来截获了一段密码范围,从整数 A 到 B。八路军的“红色密码”特征是:这个数必须是 3 的倍数,并且它的个位数字是 7。请统计范围 [A,B] 内所有的红色密码的数量并输出。

输入

两个整数 A 和 B 。

输出

满足条件的红色密码的总个数。

数据范围

1≤A≤B≤10^8

输入样例1

1 100

输出样例1

3

输入样例2

10 1000

输出样例2

33

输入样例3

45 100000

输出样例3

3332

15分

C0589
登录后作答
13

安全坐标

题目描述

西柏坡指挥部有一张秘密战区地图,地图可以看作是由行和列组成的网格。地图共有 R 行、C 列。

情报显示,只有当某个网格的坐标 (i, j) 满足 “行号 i 和列号 j 相加是一个偶数” 时,这个网格才是绝对安全的。

请编写程序,依次核查每一行和每一列(行号从 1 到 R,列号从 1 到 C),统计地图上一共有多少个绝对安全的网格。

输入

两个整数 R 和 C 。

输出

一个整数,表示安全网格的总数。

数据范围

1≤R,C≤10^6

输入样例1

4 4

输出样例1

8

输入样例2

3 5

输出样例2

8

20分

C0590
登录后作答
14

抛绳演练

题目描述

红军在漫漫长征途中,经常需要跨越波涛汹涌的江河天险。为了能在湍急的江面上迅速搭建浮桥或溜索,部队需要挑选出臂力过人、技术精湛的战士组成先锋突击队,将带有铁钩的粗绳准确、深远地抛向对岸。

连队趁着短暂的休整间隙,组织了 N 名战士进行抛绳距离考核。每位战士有 3 次试抛机会,为了选拔出极限爆发力最强的战士,最终成绩取这 3 次抛掷距离的最大值。

年轻的红军小战士小勇一马当先,率先完成了自己的 3 次抛掷。接下来的时间里,战友们依次进行考核。小勇十分渴望能入选先锋突击队,因此他非常关心自己的成绩排名。每当有一名战友完成 3 次抛掷后,小勇就会根据该战友的成绩,在心里默默计算自己的实时排名。

排名的规则如下:抛掷距离越远,排名越靠前。如果投掷成绩相同,则排名相同(例如有 3 人并列第 1 时,则接下来比他们成绩低的战士从第 4 名开始继续排名)。

请你编写程序,根据战友们的考核成绩,输出小勇的实时排名。

输入

输入共 N 行:

第 1 行,4 个正整数,依次为参与考核的战士数量 N,以及小勇的 3 次抛掷距离 s(1,1),s(1,2),s(1,3),每个数之间用一个空格隔开;

接下来 N−1 行,每行有 3 个正整数,依次表示后续每一位战友完成的 3 次抛掷距离 s(i,1),s(i,2),s(i,3)。

输出

输出共 N 行,每行一个正整数。表示包括小勇在内的每一位战士抛掷完成后,小勇当前的实时排名。

数据范围

1≤N≤10^5,0≤s(i,1),s(i,2),s(i,3)≤100(单位:米)

输入样例1

5 1 2 3

3 2 1

4 5 6

2 2 2

4 3 2

输出样例1

1

1

2

2

3

输入样例2

4 10 3 3

11 2 1

1 3 12

13 4 6

输出样例2

1

2

3

4

20分

C0591
登录后作答