试卷总分:100分


选择题 5题 10分

01 02 03 04 05


多选题 5题 20分

10 11 12 13 14


编程题 4题 70分

06 07 08 09

E979 全国青少年信息素养大赛 -算法应用 星火征途 Python 【小学高年级组】 复赛模拟题1-考试

选择题 共5道

01

执行以下代码后,输出结果是?

a = 18 % 5
b = 18 // 5
print(a + b)
2分
登录后查看选项
02

执行以下代码后,输出结果是?

s = 'redarmy'
print(s[1:4])
2分
登录后查看选项
03

执行以下代码后,输出结果是?

lst = [3,6,9]
lst.append(12)
print(len(lst))
2分
登录后查看选项
04

执行以下代码后,count 的最终结果是?

count = 0
for i in range(2):
    for j in range(3):
        count += 1
print(count)
2分
登录后查看选项
05

以下代码用于定义函数计算两数之和,存在错误的行是?

行 1: def add_num (x, y):
行 2: 	res = x + y
行 3: return res
行 4: print (add_num (3, 5))
2分
登录后查看选项

多选题 共5道

10 以下关于 Python 函数的说法,正确的有? 4分
登录后查看选项
11 以下关于 Python 异常处理的说法,正确的有? 4分
登录后查看选项
12

关于这段代码的运行逻辑,以下说法正确的有哪些?

r = 100
def send(num):
  num = num - 30
  return num

remaining = send(r)
4分
登录后查看选项
13 关于 Python 字典的基础操作,说法正确的有? 4分
登录后查看选项
14

关于 Python 列表与字符串的综合操作,说法正确的有?

lst = ['红', '军', '长', '征']
s = '支前为民'
4分
登录后查看选项

编程题 共4道

06

战地医院分配药品

题目描述

红军战地医院收到后方支援的一批药品,需要分发给各个前线伤员小队,每支伤员小队统一分配12 盒药品,若分发后有剩余的药品,每剩余 1 盒就单独分给 1 名重伤员,医生需要精准统计分配结果,确保药品全部分配到伤员手中,不积压、不浪费。

编程实现:给定药品总盒数,求能分到药品的小队数和额外能分到药品的重伤员数。

输入

一行,一个整数 n (药品总盒数)。

输出

一行,两个整数,依次为小队数、重伤员数,空格分隔。

数据范围

0≤n≤500

输入样例1

145

输出样例1

12 1

输入样例2

60

输出样例2

5 0

输入样例3

9

输出样例3

0 9


15分
登录后作答
07

粮食物资调配

题目描述

陕甘宁抗日根据地后勤组需要统计各村上交的粮食物资,用于统一调配给前线和后方群众。已知:

各村上交的粮食分为小米袋和玉米袋两类,每袋小米重 30 斤,每袋玉米重 20 斤;

后勤员只记录了粮食的总袋数(小米袋 + 玉米袋)和总重量,未单独记录小米、玉米的袋数。

编程实现:请编写程序计算出小米袋和玉米袋的具体数量,确保粮食精准分配,既满足前线战士的主食需求,也保障后方群众的口粮供应。

输入

输入两个整数(空格分隔),依次为:粮食总袋数、粮食总重量。

输出

输出两个整数(空格分隔),依次为:小米袋数量、玉米袋数量。

数据范围

1≤总袋数≤100;20 × 总袋数≤总重量≤30 × 总袋数。

输入样例1

25 650

输出样例1

15 10

输入样例2

18 460

输出样例2

10 8

输入样例3

10 200

输出样例3

0 10


15分
登录后作答
08

物资运输路径计算

题目描述

晋察冀抗日根据地后勤队需将药品、粮食等紧急物资运往前线战场,规划了多条从根据地到前线的运输路线。由于战时路况和敌情不同,每条路线的实际运输距离需结合路况调整:

路线编号为奇数:因有敌军零散袭扰,需绕开危险区域,实际距离在基础距离上增加 5 公里;

路线编号为偶数:路况良好且有民兵护送,实际距离等于基础距离。

编程实现:请编写程序计算每条路线的实际运输距离,并找出最短的实际距离,确保物资以最快、最安全的方式运往前线,最大化保障前线补给效率。

输入

第一行输入一个整数 n,表示运输路线的数量(2≤n≤10);

第二行输入 n 个整数(空格分隔),依次为路线 1、路线 2… 路线 n 的基础距离(单位:公里,10≤基础距离≤50);

输出

第一行:n 个整数(空格分隔),依次为每条路线的实际运输距离;

第二行:一个整数,表示所有路线中最短的实际运输距离。

数据范围

路线数量 n:2≤n≤10;

基础距离:10≤数值≤50(输入数据保证为合法正整数)

输入样例1

3

18 25 30

输出样例1

23 25 35

23

输入样例2

4

15 20 22 19

输出样例2

20 20 27 19

19

输入样例3

5

12 19 28 33 40

输出样例3

17 19 33 33 45

17


20分
登录后作答
09

多村庄救灾粮分配

题目描述

晋察冀根据地后勤部门需将有限的救灾小米分配给多个受灾村庄,需按量化规则计算每个村庄的实际分配量,并筛选出「人均实际分配量最高」的最优村庄(即资源利用效率最高的村庄),规则如下:

核心计算规则:

1.基础参数定义:

村庄数量:m(2≤m≤5);

总小米数量:S(斤,1000≤S≤5000,且能被所有村庄受灾总人数整除);

每个村庄含 3 个固定参数:受灾人数(P)、优先级(L:1/2/3 级,1 级最高)、运输损耗率(R:仅 5/10/15%)。

2.分步计算逻辑:

① 人均基础量 = 总小米 S ÷ 所有村庄受灾总人数(因 S 可整除总人数,结果为整数);

② 单村庄基础分配量 = 该村庄受灾人数 × 人均基础量;

③ 优先级调整(结果为整数):

1 级:调整后量 = 基础分配量 × 1.2;

2 级:调整后量 = 基础分配量 × 1.0(不变);

3 级:调整后量 = 基础分配量 × 0.8;

④ 运输损耗调整(实际分配量,结果为整数):

损耗率 5%:实际量 = 调整后量 × 95%;

损耗率 10%:实际量 = 调整后量 × 90%;

损耗率 15%:实际量 = 调整后量 × 85%。

3.最优村庄判定规则:

人均实际量 = 该村庄实际分配量 ÷ 该村庄受灾人数;

最优村庄 = 人均实际量最大的村庄;若多个村庄人均值并列最大,取编号最小的村庄(村庄编号从 1 开始)。

输入

第 1 行:整数 m(村庄数量,2≤m≤5);

第 2 行:整数 S(总小米数量,1000≤S≤5000);

第 3 行:m 个整数(空格分隔),依次为村庄 1~m 的受灾人数 P(50≤P≤500);

第 4 行:m 个整数(空格分隔),依次为村庄 1~m 的优先级 L(仅 1/2/3);

第 5 行:m 个整数(空格分隔),依次为村庄 1~m 的运输损耗率 R(仅 5/10/15)。

输出

第一行:m 个整数(空格分隔),依次为村庄 1~m 的实际分配量;

第二行:1 个整数,最优村庄的编号;

第三行:1 个浮点数,该最优村庄的人均实际量(保留 2 位小数)。

数据范围

所有输入参数均为合法整数,无空值 / 非法值;

S 能被总受灾人数整除,所有计算步骤结果均为整数(无需额外取整);

损耗率仅为 5/10/15,优先级仅为 1/2/3,无其他值。

输入样例1

3

3600

200 300 100

1 2 3

10 10 10

输出样例1

1296 1620 432

1

6.48

输入样例2

2

2000

100 100

2 2

5 15

输出样例2

950 850

1

9.50

输入样例3

4

4000

100 100 100 100

1 1 2 3

10 10 10 10

输出样例3

1080 1080 900 720

1

10.80


20分
登录后作答