万卷网> 信息素养大赛 >Python编程挑战赛 > 2026年全国青少年信息素养大赛智传民韵Python编程挑战赛模拟(三)

2026年全国青少年信息素养大赛智传民韵Python编程挑战赛模拟(三)
复赛 模拟 小高 2026 2026-06-10 15:05:29 375

一、单选题

1.

土家族织锦图案需要将 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]

2.

藏族唐卡画师要找出 100 以内所有能写成两个平方数之和(例如 5=1²+2²)的数字,采用枚举算法。以下哪个枚举思路是正确的? (三级考点:枚举算法特征)

A.

只枚举一个平方数,另一个用减法反推

B.

枚举所有 a 和 b,a 从 0 到 √n,b 从 0 到 √n,检查 a²+b² == n

C.

只枚举 a,令 b = n - a²,然后判断 b 是否为完全平方数

D.

B 和 C 都是正确的枚举思路

3.

苗族蜡染工坊需要从颜色代码列表中筛选出色值能被 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]

4.

蒙古族马头琴制作中,琴弦张力值列表 tensions = [78, 92, 56, 88, 73],若要用 map() 函数将所有值增加 10,下列代码正确的是? (三级考点:常用内置函数 map)

A.

list(map(tensions, lambda x: x+10))

B.

map(tensions, lambda x: x+10)

C.

list(map(lambda x: x+10, tensions))

D.

map(tensions, x+10)

5.

白族扎染工艺中,每种颜色对应一个 Unicode 码点(十进制),需转为十六进制字符串存储。已知颜色“靛蓝”的码点为 36992,下列哪个表达式能正确输出 '0x9080'? (三级考点:数制转换函数 hex)

A.

bin(36992)

B.

oct(36992)

C.

hex(36992).upper()

D.

hex(36992)

二、多选题

1.

关于枚举算法,以下说法正确的有?(三级考点:枚举算法)

A.

枚举算法一定能找到问题的解

B.

枚举范围越大,算法效率越低

C.

枚举算法通常需要检验每个候选解是否满足条件

D.

枚举算法无法解决“寻找最优解”的问题

2.

下列 Python 内置函数中,可以用于序列排序或处理的有?(三级考点:常用内置函数)

A.

sorted()

B.

max()

C.

filter()

D.

all()

3.

下列选项中,属于列表推导式合法应用的有?(三级考点:推导式)

A.

[x2 for x in range(10)]

B.

[(x, y) for x in [1,2] for y in [3,4]]

C.

[x for x in range(20) if x % 2 == 0 and x > 5]

D.

{x for x in '民族纹样'}

4.

以下关于 Python 中进制转换函数的描述,正确的是?(三级考点:数制转换)

A.

bin(25) 的结果是 '0b11001'

B.

int('101', 8) 将八进制字符串 '101' 转为十进制整数 65

C.

oct(100) 的结果是 '0o144'

D.

hex(255) 的结果是 '0xFF'

5.

赫哲族鱼皮服饰制作中,需要将不同长度(厘米)的鱼皮段长度列表 lengths = [45, 23, 67, 12, 89, 34] 进行升序排列。下列排序算法中,每一趟都能确定一个最终位置的元素是?(三级考点:排序算法特性)

A.

冒泡排序

B.

选择排序

C.

插入排序

D.

以上都不是

三、编程题

1.

服饰展馆·巧走迷宫(递归 / 网格路径)

【题目描述】

在某民族服饰数字展览馆中,展区是一个 m 行 n 列的网格,左上角 (0,0) 为入口,右下角 (m-1, n-1) 为出口。观众每次只能向右或向下移动一步。请你编写递归函数 unique_paths(m, n) 计算从入口到出口的不同路径总数。(1 ≤ m, n ≤ 20)

【输入格式】

一行两个整数 m 和 n

【输出格式】

一个整数,路径总数

2.

哈尼梯田·分水寻峰(分治)

【题目描述】

哈尼族梯田灌水后,每块田的水位高度(整数)排列成一个数组。为了修建分水闸,需要找到任意一个“水位峰值”——即该位置的水位大于其相邻左右田的水位(边界位置只需大于一个邻位)。请你用分治算法(类似二分查找峰值)实现函数 find_peak(arr),返回任意一个峰值所在的下标(0-based)。假设 arr 的长度 ≥ 1,且相邻水位不相等。

【输入格式】

第一行:整数 n(1 ≤ n ≤ 1000)

第二行:n 个整数,表示水位高度

【输出格式】

一个整数,峰值下标

3.

马帮驮队·物尽其用(递归 / 0-1背包计数)

【题目描述】

茶马古道上,马帮有 n 种物资(每种只有一件),重量分别为 w1, w2, …, wn。马匹的最大载重为 capacity。帮主想知道恰好满载的装载方案一共有多少种(不同物资组合视为不同方案,顺序无关)。请你编写递归函数 count_ways(weights, capacity, idx) 求解。输入物资重量列表和载重,输出方案数。(0 ≤ 重量, capacity ≤ 200,物资数 ≤ 20)

【输入格式】

第一行:两个整数 n 和 capacity

第二行:n 个整数,表示每件物资的重量

【输出格式】

一个整数,方案总数

4.

扎染花纹·层叠之妙(递归)

【题目描述】

白族扎染工艺中,布料每折叠一次,花纹数量会按特定规律增加:初始花纹为 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

【输出格式】

一个整数,表示花纹数量

公众号
客服 反馈
顶部