试卷总分:120分


选择题 5题 10分

01 02 03 04 05


多选题 5题 10分

06 07 08 09 10


编程题 4题 100分

11 12 13 14

E988 全国青少年信息素养大赛 -算法应用 星火征途 Python 【初中组】 复赛模拟题2-考试

选择题 共5道

01 执行以下代码后,输出结果是( )
 x = 15 y = 4 print(x % y, x  (y - 2)) 
2分
登录后查看选项
02 执行以下代码后,输出结果是( )
 word = 'coding' print(word[1:5], word[-1]) 
2分
登录后查看选项
03 执行以下循环代码后,输出的总次数是( )
 count = 0 for i in range(1, 4): for j in range(3): if i > j: count += 1 print(count) 
2分
登录后查看选项
04 执行以下代码后,输出结果是( )
 def process(lst): lst.extend([4]) lst = [7, 8] return lst data = [1, 2] res = process(data) print(data, res) 
2分
登录后查看选项
05 以下代码用于计算列表中所有正数的和,存在逻辑错误的行是( )
# 行1:def sum_positives(lst): 
# 行2: res = 0 
# 行3: for num in lst: 
# 行4: if num <= 0: 
# 行5: return res 
# 行6: res += num 
# 行7: return res 
# 行8:print(sum_positives([2, -1, 3])) 
2分
登录后查看选项

多选题 共5道

06 以下关于 Python 函数特性的说法,正确的有( ) 2分
登录后查看选项
07 以下关于 Python 异常处理的说法,正确的有( ) 2分
登录后查看选项
08 执行以下代码后,关于变量结果的说法正确的有( )
 def add_item(k, v, d): d[k] = v return d d1 = add_item('a', 1, {}) d2 = add_item('b', 2, {'x': 10}) d3 = add_item('c', 3, {}) 
2分
登录后查看选项
09 关于以下字典操作代码,说法正确的有( )
 data = {"team": "A", "members": ["Alice", "Bob"]} backup = data.copy() backup["team"] = "B" backup["members"].append("Charlie") data.update({"score": 100}) 
2分
登录后查看选项
10 关于以下文件操作代码(假设 data.txt 存在且内容有多行),说法正确的有( )
with open("data.txt", "a", encoding="utf-8") as f:
	f.write("New Line\n") 
	with open("data.txt", "r", encoding="utf-8") as f: 
		f.seek(0) lines = f.readlines() 
		f.seek(5) char = f.read(1)
2分
登录后查看选项

编程题 共4道

11

根据地医院正在准备前线的战地急救包。

每个标准的急救包需要配备 1 卷医用绷带和 2 瓶碘伏。

医护人员需要根据现有的绷带和碘伏库存,快速计算出最多能组装出多少个完整的急救包。

【输入格式】 一行,两个整数 a(绷带卷数)b(碘伏瓶数),空格分隔(0 <= a, b <= 1000)。

【输出格式】 一行,一个整数,表示能配齐的完整急救包数量。

【示例】

输入

30 55

输出

27


输入

40 100

输出

40


输入

0 10

输出

0
25分
登录后作答
12

为了快速将战士运送到前线,后勤部需要调配运兵车队。现有大卡车和小卡车两种型号:

- 每辆大卡车可运送 15 名战士;

- 每辆小卡车可运送 5 名战士。

已知前线要求本次调派的总车辆数正好为 s,且必须恰好装载满 p 名战士(不允许超载或有空座)。请计算所有符合要求的大卡车与小卡车数量的调配方案。

【输入格式】 一行,两个整数 s(车辆总数,1 <= s <= 100)和 p(战士总数,1 <= p <= 1500),用空格分隔。

【输出格式】 如果存在合法方案:每种方案占一行,输出 X Y(X = 大卡车数量,Y = 小卡车数量,用空格分隔)。若有多组解,按 X 的升序排列输出。 如果不存在合法方案:输出 -1。

【示例】

输入

10 110

输出

6 4


输入

10 102

输出

-1


输入

4 60

输出

4 0
25分
登录后作答
13

地下情报员截获了一串小写字母组成的密文,需要按照新指定的规则进行解密。
(注意:输入保证步数 step 一定不会大于明文长度,无需考虑越界。)

#### 解密规则步骤
1. 对密文字符串执行循环左移 step 步(即将最前面的 step 个字符剪切并拼接到最后面);
2. 将左移后的字符串按长度 k 进行分段(最后一段若不足 k 个字符则保留原样);
3. 仅对偶数位置的分段(分段从 1 开始计数,即第 2、4、6、... 段)执行字符串反转操作;
4. 将处理后的全部分段重新拼接为一个新字符串。

【输入格式】
第一行:密文字符串(5 <= 长度 <= 20,纯小写字母)。
第二行:整数 step(1 <= step <= 10)和 k(2 <= k <= 密文长度 - 1),用空格分隔。

【输出格式】
一行,解密后的最终字符串。

【示例】

输入

abcdefghij
3 3

输出

defihgjabc


输入

helloworld
2 4

输出

llowdlrohe


输入

python
6 2

输出

pyhton
25分
登录后作答
14

游击小队夜袭敌人军火库后需要撤退至安全区,撤退路线被划分为 n * n 的二维网格。

网格中包含不同的地形元素,移动时代价不同:
- 0 = 安全平地(可通行,基础代价为 1);
- 1 = 探照灯封锁区(不可通行,遇到必须绕路);
- 2 = 泥泞沼泽(可通行,行进艰难,总代价为 3);
- 3 = 地下暗道入口(可通行,非常隐蔽,总代价为 0)。

游击小队只能上下左右移动,不能越界,且绝不能重复经过同一个格子。

起点固定在左上角 (0, 0),终点固定在右下角 (n - 1, n - 1)。起点和终点本身的地形代价也需要计算在内。

请统计在给定的网格中,共有多少条可行的突围路线?并求出所有路线中代价最小的突围代价是多少?

【输入格式】
第一行:网格边长 n(3 <= n <= 8)。
接下来 n 行:每行包含 n 个整数(仅限 0, 1, 2, 3),用空格隔开。

【输出格式】
第一行:可行路径总数(若无法到达终点,输出 0)。
第二行:最小路径代价(若无法到达终点,输出 -1)。

【提示】
注:本题大地图测试数据中含有大量障碍物,有效路径数量受限,标准 DFS 算法不会产生运行超时现象。

【示例】

输入

3
0 2 0
0 1 3
0 0 0

输出

2
5


输入

3
0 1 0
1 1 0
0 0 0

输出

0
-1


输入

4
0 1 0 0
0 1 0 1
0 2 0 1
0 0 0 0

输出

2
7
25分
登录后作答