🔒 答案已锁定

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

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

第 1 题 单选题 2 分
维吾尔族的"十二木卡姆"是世界级非物质文化遗产,其中包含多种传统乐器。一位音乐研究者最初记录了12种乐器,后来又新整理了4种。以下代码的输出结果是?
instruments = 12
instruments += 4
print(instruments)
A. 12
B. 4
C. 16
D. 8
✅ 正确答案:C
💡 考点解析:赋值运算符(+= 复合赋值)
第 2 题 单选题 2 分
哈尼族的梯田种植了多种农作物。以下代码用于判断某种作物是否在梯田种植清单中,输出结果是?
crops = ["水稻", "玉米", "土豆", "茶叶"]
print("水稻" in crops)
A. True
B. False
C. "水稻"
D. 报错
✅ 正确答案:A
💡 考点解析:成员运算符(in)
第 3 题 单选题 2 分
傣族的泼水节上,小明用循环遍历一串祝福语,遇到某个词时提前终止。以下代码的输出结果是?
blessings = ["健康", "快乐", "幸福", "平安"]
for b in blessings:
    if b == "幸福":
        break
    print(b)
A. 健康 快乐
B. 健康 快乐 幸福
C. 健康 快乐 幸福 平安
D. 平安
✅ 正确答案:A
💡 考点解析:break语句(提前终止循环)
第 4 题 单选题 2 分
土家族的"摆手舞"是国家级非物质文化遗产,其基本动作被存储在一个元组中。以下代码的输出结果是?
dance = ("摆手", "踢腿", "转身", "跳跃")
print(dance[1])
print(len(dance))
A. 踢腿 和 4
B. 摆手 和 4
C. 踢腿 和 3
D. 摆手 和 3
✅ 正确答案:A
💡 考点解析:元组的基本操作(索引访问、len()获取长度)
第 5 题 单选题 2 分
白族的"三道茶"是待客的传统礼俗。以下代码使用for循环遍历三道茶的配料列表,输出结果是?
ingredients = ["茶叶", "红糖", "花椒", "核桃", "乳扇"]
for item in ingredients:
    print(item, end=" ")
A. 茶叶 红糖 花椒 核桃 乳扇
B. 茶叶 红糖 花椒 核桃 乳扇(每个占一行)
C. 茶叶红糖花椒核桃乳扇
D. ["茶叶", "红糖", "花椒", "核桃", "乳扇"]
✅ 正确答案:A
💡 考点解析:列表的 for...in 遍历
第 6 题 多选题 4 分
哈萨克族的"冬不拉"是一种传统弹拨乐器。在编写冬不拉相关程序时,用到了逻辑运算符。以下哪些表达式的值为True?
A. True and False
B. True or False
C. not False
D. (5 > 3) and (2 < 1)
✅ 正确答案:BC
💡 考点解析:逻辑运算符(and、or、not)的运算规则
第 7 题 多选题 4 分
黎族的"黎锦"纺染织绣技艺被列入联合国非遗名录。黎锦上有多种图案,需要对图案进行编号遍历。以下哪些range()调用是合法的Python语法?
A. range(5) — 一个参数
B. range(1, 10) — 两个参数
C. range(1, 10, 2) — 三个参数
D. range() — 零个参数
✅ 正确答案:ABC
💡 考点解析:range()函数的参数形式(range()必须至少传入1个参数)
第 8 题 多选题 4 分
纳西族的"东巴文"是现存唯一仍在使用的象形文字。以下哪些代码可以正确输出"东巴文约有2000个字符"?
A. print("东巴文约有{}个字符".format(2000))
B. print("东巴文约有{0}个字符".format(2000))
C. print(f"东巴文约有{2000}个字符")
D. print("东巴文约有" + str(2000) + "个字符")
✅ 正确答案:ABCD
💡 考点解析:字符串格式化(.format()方法、f-string、字符串拼接)
第 9 题 多选题 4 分
羌族的"羌绣"色彩鲜艳,小张想用数据结构存储一组羌绣颜色。以下关于列表和元组的说法,哪些是正确的?
A. 列表用方括号[]定义,元组用圆括号()定义
B. 列表中的元素可以修改,元组中的元素不可修改
C. 列表可以使用append()方法添加元素,元组没有append()方法
D. 元组比列表占用更多的内存空间
✅ 正确答案:ABC
💡 考点解析:列表与元组的区别(定义方式、可变性、方法差异;元组实际上内存占用更小)
第 10 题 多选题 4 分
在编写民族服饰数据管理程序时,需要区分Python关键字(保留字)和普通内置函数。以下哪些是Python的关键字(保留字)?
A. if
B. for
C. def
D. print
✅ 正确答案:ABC
💡 考点解析:Python关键字/保留字(print是内置函数,不是关键字)
第 11 题 编程操作题 15 分

题目描述:
哈尼族的梯田是世界上最壮观的农业景观之一。"亩"是中国传统的土地面积单位。请编写程序,输入梯田的亩数,将其换算为平方米(1亩 ≈ 666.67平方米),并输出换算结果(保留2位小数)。

输入格式:
输入一个正数(可以是整数或小数),表示梯田的亩数。

输出格式:
输出换算后的平方米数,保留2位小数。格式为"X亩 = Y平方米"。

示例输入:

5

示例输出:

5亩 = 3333.35平方米
示例输入2:
2.5
示例输出2:
2.5亩 = 1666.67平方米
✅ 参考答案:
📖 参考代码
mu = float(input())
square_meters = mu * 666.67
print(f"{mu}亩 = {square_meters:.2f}平方米")
第 12 题 编程操作题 15 分

题目描述:
维吾尔族的"十二木卡姆"演奏中使用了多种传统乐器,如热瓦普、弹拨尔、都塔尔、萨塔尔、艾捷克、手鼓等。请编写程序,输入若干个乐器名称(每行一个,以"end"结束),筛选出名称为2个汉字的乐器,并将结果输出。

输入格式:
每行输入一个乐器名称(字符串),输入"end"时结束录入。乐器名称至少包含1个汉字。

输出格式:
第一行输出筛选出的2字乐器名称,用顿号(、)分隔。
第二行输出筛选出的乐器数量,格式为"共X件2字乐器"。

示例输入:

热瓦普
弹拨尔
手鼓
都塔尔
艾捷克
end

示例输出:

手鼓
共1件2字乐器
✅ 参考答案:
📖 参考代码
instruments = []
while True:
    name = input()
    if name == "end":
        break
    instruments.append(name)
# 筛选长度为2的乐器名称
result = []
for name in instruments:
    if len(name) == 2:
        result.append(name)
# 输出结果
if len(result) > 0:
    print("、".join(result))
else:
    print("")
print(f"共{len(result)}件2字乐器")
第 13 题 编程操作题 20 分

题目描述:
藏族手工艺品(如唐卡、藏毯、藏香、藏刀等)在爱心义卖活动中出售。请编写一个函数calculate_total(prices),该函数接收一个价格列表作为参数,返回总价。然后在主程序中:输入商品数量n和每种商品的价格,调用函数计算并输出总价和平均价格(保留2位小数)。

输入格式:
第一行输入一个整数n(1 ≤ n ≤ 100),表示手工艺品的数量。
接下来n行,每行输入一个正整数,表示每件手工艺品的价格(单位:元)。

输出格式:
第一行输出总价,格式为"总价:X元"。
第二行输出平均价格,保留2位小数,格式为"平均价格:X元"。

示例输入:

4
350
280
45
120

示例输出:

总价:795元
平均价格:198.75元
✅ 参考答案:
📖 参考代码
def calculate_total(prices):
    total = 0
    for p in prices:
        total += p
    return total
n = int(input())
prices = []
for i in range(n):
    price = int(input())
    prices.append(price)
total = calculate_total(prices)
avg = total / n
print(f"总价:{total}元")
print(f"平均价格:{avg:.2f}元")
第 14 题 编程操作题 20 分

题目描述:
白族的"三道茶"(苦茶、甜茶、回味茶)是待客的传统礼俗,寓意"一苦、二甜、三回味"。在一次品鉴活动中,n位评委对某道茶进行评分(0到100的整数)。请编写程序完成以下任务:
1. 输入评委人数n和每位评委的评分
2. 统计优秀(≥80分)、合格(60-79分)、不合格(<60分)三种等级的数量
3. 计算平均分(保留2位小数)
4. 根据平均分判定整体等级:≥80分为"优秀",60-79分为"合格",<60分为"不合格"

输入格式:
第一行输入一个整数n(1 ≤ n ≤ 100),表示评委人数。
接下来n行,每行输入一个0到100之间的整数,表示一位评委的评分。

输出格式:
第一行输出"优秀:X人"
第二行输出"合格:Y人"
第三行输出"不合格:Z人"
第四行输出"平均分:XX.XX"
第五行输出"整体等级:优秀/合格/不合格"

示例输入:

5
85
72
90
58
80

示例输出:

优秀:3人
合格:1人
不合格:1人
平均分:77.00
整体等级:合格
✅ 参考答案:
📖 参考代码
n = int(input())
scores = []
for i in range(n):
    score = int(input())
    scores.append(score)
# 统计各等级人数
excellent = 0
qualified = 0
unqualified = 0
total = 0
for s in scores:
    total += s
    if s >= 80:
        excellent += 1
    elif s >= 60:
        qualified += 1
    else:
        unqualified += 1
avg = total / n
# 输出统计结果
print(f"优秀:{excellent}人")
print(f"合格:{qualified}人")
print(f"不合格:{unqualified}人")
print(f"平均分:{avg:.2f}")
# 判定整体等级
if avg >= 80:
    print("整体等级:优秀")
elif avg >= 60:
    print("整体等级:合格")
else:
    print("整体等级:不合格")