2026年全国青少年信息素养大赛智传民韵Python编程挑战赛模拟(三)
复赛
模拟
小高
2026
2026-06-10 15:05:29
375次
一、单选题
土家族织锦图案需要将 5 种颜色按明暗值排序。已实现冒泡排序的部分代码: arr = [85, 42, 100, 33, 67] for i in range(len(arr)-1): for j in range(len(arr)-1-i): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] 第一轮外层循环结束后,数组 arr 的状态是? (三级考点:冒泡排序过程)
| A. [42, 85, 33, 67, 100] |
B. [33, 42, 67, 85, 100] |
| C. [42, 33, 67, 85, 100] |
D. [42, 33, 85, 67, 100] |
【知识点】 全国青少年信息素养大赛Python编程挑战赛
苗族蜡染工坊需要从颜色代码列表中筛选出色值能被 3 整除的颜色。已知颜色代码列表 colors = [12, 25, 36, 47, 58, 69, 72],下列哪个列表推导式能正确得到满足条件的新列表? (三级考点:列表推导式)
| A. [x for x in colors if x % 3 == 0] |
B. [x for x in colors if x/3 == 0] |
| C. [x % 3 == 0 for x in colors] |
D. [x if x % 3 == 0 for x in colors] |
【知识点】 全国青少年信息素养大赛Python编程挑战赛
二、多选题
三、编程题
哈尼梯田·分水寻峰(分治)
【题目描述】
哈尼族梯田灌水后,每块田的水位高度(整数)排列成一个数组。为了修建分水闸,需要找到任意一个“水位峰值”——即该位置的水位大于其相邻左右田的水位(边界位置只需大于一个邻位)。请你用分治算法(类似二分查找峰值)实现函数 find_peak(arr),返回任意一个峰值所在的下标(0-based)。假设 arr 的长度 ≥ 1,且相邻水位不相等。
【输入格式】
第一行:整数 n(1 ≤ n ≤ 1000)
第二行:n 个整数,表示水位高度
【输出格式】
一个整数,峰值下标
【知识点】 全国青少年信息素养大赛Python编程挑战赛
马帮驮队·物尽其用(递归 / 0-1背包计数)
【题目描述】
茶马古道上,马帮有 n 种物资(每种只有一件),重量分别为 w1, w2, …, wn。马匹的最大载重为 capacity。帮主想知道恰好满载的装载方案一共有多少种(不同物资组合视为不同方案,顺序无关)。请你编写递归函数 count_ways(weights, capacity, idx) 求解。输入物资重量列表和载重,输出方案数。(0 ≤ 重量, capacity ≤ 200,物资数 ≤ 20)
【输入格式】
第一行:两个整数 n 和 capacity
第二行:n 个整数,表示每件物资的重量
【输出格式】
一个整数,方案总数
【知识点】 全国青少年信息素养大赛Python编程挑战赛
扎染花纹·层叠之妙(递归)
【题目描述】
白族扎染工艺中,布料每折叠一次,花纹数量会按特定规律增加:初始花纹为 1 个;第 1 次折叠后,花纹变为 3 个;第 2 次折叠后,花纹变为 7 个;第 3 次折叠后,花纹变为 15 个…… 经艺人总结,折叠 n 次后的花纹数量满足递推公式:f(0) = 1f(n) = 2 * f(n-1) + 1 (n ≥ 1)请你编写一个递归函数 patterns(n),输入折叠次数 n(0 ≤ n ≤ 20),输出最终的花纹数量。
【输入格式】
一个整数 n
【输出格式】
一个整数,表示花纹数量
【知识点】 全国青少年信息素养大赛Python编程挑战赛
