🔒 答案已锁定

📖 答案解析 — 智传民韵(民族文化) — 简单

算法应用主题赛 · Python · 共 14 题(5单选+5多选+4编程)· 满分 100 分

第 1 题 单选题 2 分
在苗族的"苗年"节日中,小明想用Python程序输出节日祝福语。以下代码运行后输出结果是?
festival = "苗年"
print("欢度" + festival)
A. 欢度
B. 苗年
C. 欢度苗年
D. festival
✅ 正确答案:C
💡 考点解析:字符串拼接与print输出
第 2 题 单选题 2 分
藏族服饰中,一件藏袍的价格是850元。以下代码中,变量price的数据类型是?
price = 850
print(type(price))
A. str
B. int
C. float
D. bool
✅ 正确答案:B
💡 考点解析:基本数据类型(整数int)
第 3 题 单选题 2 分
壮族织锦上有一段传统纹样名称:"龙凤呈祥纹"。若想用字符串切片取出"龙凤"二字,以下代码正确的是?
pattern = "龙凤呈祥纹"
A. pattern[0:1]
B. pattern[0:2]
C. pattern[1:2]
D. pattern[1:3]
✅ 正确答案:B
💡 考点解析:字符串切片操作
第 4 题 单选题 2 分
蒙古族的那达慕大会上有赛马比赛。以下代码用于判断选手是否获奖(前3名获奖),当rank = 2时,输出结果是?
rank = 2
if rank <= 3:
    print("获奖")
else:
    print("继续努力")
A. 获奖
B. 继续努力
C. 获奖继续努力
D. 无输出
✅ 正确答案:A
💡 考点解析:if-else条件判断
第 5 题 单选题 2 分
侗族的鼓楼建筑共有9层,小明用for循环输出每一层的编号。以下代码输出的最后一个数字是?
for i in range(1, 10):
    print("第" + str(i) + "层")
A. 8
B. 9
C. 10
D. 1
✅ 正确答案:B
💡 考点解析:for循环与range()函数
第 6 题 多选题 4 分
在编写民族服饰管理程序时,以下哪些是合法的Python变量名?
A. miao_zu
B. 2dress
C. _silver
D. 民族
✅ 正确答案:ACD
💡 考点解析:变量命名规则(不能以数字开头,可以包含中文但推荐使用英文字母、数字、下划线)
第 7 题 多选题 4 分
小明用一个列表存储5种苗药药材名称:herbs = ["金银花", "黄连", "三七", "天麻", "枸杞"]。以下哪些操作可以成功向列表末尾添加"灵芝"?
A. herbs.append("灵芝")
B. herbs.insert(5, "灵芝")
C. herbs += ["灵芝"]
D. herbs.add("灵芝")
✅ 正确答案:ABC
💡 考点解析:列表添加元素的方法(append、insert、+=拼接),列表没有add方法
第 8 题 多选题 4 分
在处理藏族唐卡颜色信息时,定义字符串color = "红黄蓝绿白"。以下哪些操作可以得到字符串长度5?
A. len(color)
B. len(color) // 1
C. color.count("") - 1
D. len(color.strip())
✅ 正确答案:ABD
💡 考点解析:len()函数和字符串长度计算(注意:中文字符串每个汉字长度为1)
第 9 题 多选题 4 分
以下关于Python字典的说法,哪些是正确的?
A. 字典通过键(key)来访问对应的值(value)
B. 字典中的键必须是不可变类型,如字符串、数字
C. 字典中的值可以是任意类型
D. 字典中的键可以重复
✅ 正确答案:ABC
💡 考点解析:字典的基本特性(键值对、键不可变、键不可重复、值任意类型)
第 10 题 多选题 4 分
在模拟彝族火把节随机抽奖的程序中,需要用到random模块。以下哪些是random模块的正确用法?
A. random.randint(1, 100) — 生成1到100之间的随机整数
B. random.random() — 生成0到1之间的随机浮点数
C. random.choice([1, 2, 3]) — 从列表中随机选择一个元素
D. random.shuffle([1, 2, 3]) — 随机打乱列表顺序
✅ 正确答案:ABCD
💡 考点解析:random模块的常用函数(randint、random、choice、shuffle)
第 11 题 编程操作题 15 分

题目描述:
苗族银饰是苗族文化的重要象征。一位银匠制作了若干件银饰,每件银饰的重量(单位:克)已知。请编写程序,输入银饰件数和每件银饰的重量,计算银饰的总重量和平均重量(保留1位小数)。

输入格式:
第一行输入一个整数n(1 ≤ n ≤ 100),表示银饰的件数。
接下来n行,每行输入一个正整数,表示每件银饰的重量。

输出格式:
第一行输出总重量。
第二行输出平均重量,保留1位小数。

示例输入:

3
50
80
60

示例输出:

190
63.3
✅ 参考答案:
📖 参考代码
n = int(input())
total = 0
for i in range(n):
    weight = int(input())
    total += weight
avg = total / n
print(total)
print(f"{avg:.1f}")
第 12 题 编程操作题 15 分

题目描述:
某地即将迎来"三月三"歌节。请编写程序,输入当前距离节日的天数d,然后逐日输出倒计时信息。当倒计时结束时输出节日祝福语。

输入格式:
输入一个正整数d(1 ≤ d ≤ 30),表示距离节日的天数。

输出格式:
输出d行倒计时信息,格式为"距离三月三歌节还有X天",其中X从d递减到1。最后一行输出"三月三歌节到了,一起唱歌吧!"。

示例输入:

3

示例输出:

距离三月三歌节还有3天
距离三月三歌节还有2天
距离三月三歌节还有1天
三月三歌节到了,一起唱歌吧!
✅ 参考答案:
📖 参考代码
d = int(input())
for i in range(d, 0, -1):
    print(f"距离三月三歌节还有{i}天")
print("三月三歌节到了,一起唱歌吧!")
第 13 题 编程操作题 20 分

题目描述:
壮锦是中国四大名锦之一,上面有多种传统纹样。请编写程序管理壮锦纹样名称列表,实现以下功能:
1. 输入若干个纹样名称(以"end"结束输入),将其存入列表
2. 输出所有纹样名称,用顿号(、)分隔
3. 输出纹样的总数
4. 判断用户输入的一个纹样名称是否在列表中,若在输出"该纹样已收录",否则输出"该纹样未收录"

输入格式:
第一行到倒数第二行:每行输入一个纹样名称(字符串),当输入"end"时停止录入。
最后一行:输入一个要查找的纹样名称。

输出格式:
第一行:所有纹样名称,用"、"分隔
第二行:纹样总数
第三行:查找结果

示例输入:

龙凤纹
回字纹
云雷纹
end
回字纹

示例输出:

龙凤纹、回字纹、云雷纹
3
该纹样已收录
✅ 参考答案:
📖 参考代码
patterns = []
while True:
    name = input()
    if name == "end":
        break
    patterns.append(name)
search = input()
# 输出所有纹样
print("、".join(patterns))
# 输出总数
print(len(patterns))
# 判断是否收录
if search in patterns:
    print("该纹样已收录")
else:
    print("该纹样未收录")
第 14 题 编程操作题 20 分

题目描述:
在民族美食节上,评委对一道"酸汤鱼"(苗族传统美食)进行评分。评分采用百分制,去掉一个最高分和一个最低分后,计算剩余分数的平均分作为最终得分。请编写一个函数calculate_score(scores)实现上述计算过程,并调用该函数输出结果(保留2位小数)。

输入格式:
第一行输入一个整数n(3 ≤ n ≤ 100),表示评委人数。
第二行输入n个整数(0到100之间),表示每位评委的评分,以空格分隔。

输出格式:
输出最终得分,保留2位小数。

示例输入:

5
85 90 78 92 88

示例输出:

87.67
✅ 参考答案:
📖 参考代码
def calculate_score(scores):
    scores.sort()
    # 去掉最低分和最高分
    scores = scores[1:-1]
    total = sum(scores)
    avg = total / len(scores)
    return avg
n = int(input())
scores = list(map(int, input().split()))
result = calculate_score(scores)
print(f"{result:.2f}")