🔒 答案已锁定

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

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

第 1 题 单选题 2 分
在傣族泼水节上,有2025升圣水需要分装到容量为4升的水桶中。小明用以下Python代码计算能装满多少个水桶(整桶)以及剩余多少升水:
total = 2025
capacity = 4
full_buckets = total // capacity
remain = total % capacity
print(full_buckets, remain)

运行后输出结果是?
A. 506 1
B. 506.25 0
C. 506 0
D. 505 5
✅ 正确答案:A
💡 考点解析:算术运算符(//整除、%取余)
第 2 题 单选题 2 分
在蒙古族那达慕大会上,需要用户输入参赛马匹的名字并输出欢迎语。以下代码运行后,如果用户输入"追风",输出结果是?
name = input("请输入马匹名字:")
print("欢迎" + name + "参赛!")
A. 欢迎 name 参赛!
B. 欢迎追风参赛!
C. 欢迎"追风"参赛!
D. 程序报错
✅ 正确答案:B
💡 考点解析:input()函数接收用户输入及字符串拼接
第 3 题 单选题 2 分
土家族摆手舞排练时,规定参加人数必须不少于20人才能正式演出。以下代码用于判断能否演出,当people = 18时,输出结果是?
people = 18
if people >= 20:
    print("可以演出")
else:
    print("人数不足,继续招募")
A. 可以演出
B. 人数不足,继续招募
C. 可以演出人数不足,继续招募
D. 无输出
✅ 正确答案:B
💡 考点解析:比较运算符(>=)与条件判断
第 4 题 单选题 2 分
藏族唐卡颜料(如朱砂、孔雀石、金箔)需要反复研磨才能使用。以下代码模拟研磨过程,运行后输出的最后一个数字是?
count = 1
while count <= 4:
    print("第" + str(count) + "次研磨")
    count = count + 1
A. 1
B. 3
C. 4
D. 5
✅ 正确答案:C
💡 考点解析:while循环的执行次数
第 5 题 单选题 2 分
哈尼族梯田文化节上需要将节日名称转换为全大写和全小写。以下代码运行后,upper_name的值是?
name = "HaniTerraces"
upper_name = name.upper()
print(upper_name)
A. HaniTerraces
B. haniterraces
C. HANITERRACES
D. HaniTerraces
✅ 正确答案:C
💡 考点解析:字符串方法upper()——将字符串全部转换为大写
第 6 题 多选题 4 分
在输出维吾尔族"十二木卡姆"的乐章名称时,小明使用了print()函数。假设有三个乐章名,以下哪些代码的输出结果是"拉克木卡姆-且比亚特木卡姆-木夏吾莱克木卡姆"(用短横线连接)?
A. print("拉克木卡姆", "且比亚特木卡姆", "木夏吾莱克木卡姆", sep="-")
B. print("拉克木卡姆" + "-" + "且比亚特木卡姆" + "-" + "木夏吾莱克木卡姆")
C. print("拉克木卡姆", "且比亚特木卡姆", "木夏吾莱克木卡姆", sep=" ", end="")
D. print("拉克木卡姆-且比亚特木卡姆-木夏吾莱克木卡姆")
✅ 正确答案:ABD
💡 考点解析:print()函数的参数使用(sep分隔符、end结束符、字符串拼接)
第 7 题 多选题 4 分
在录入傣族傣锦图案编码时,需要判断用户输入的字符串是否全部由字母组成或者全部由数字组成。以下关于字符串方法isalpha()和isdigit()的说法,哪些是正确的?
A. "DaiBrocade".isalpha() 返回 True
B. "Dai2025".isalpha() 返回 True
C. "2025".isdigit() 返回 True
D. "Dai2025".isdigit() 返回 True
✅ 正确答案:AC
💡 考点解析:字符串方法——isalpha()(判断是否全为字母)和isdigit()(判断是否全为数字)
第 8 题 多选题 4 分
在统计蒙古族那达慕大会各种比赛项目的参赛人数时,需要用到类型转换。以下关于Python类型转换的说法,哪些是正确的?
A. int("128") 可以将字符串"128"转换为整数128
B. float("3.14") 可以将字符串"3.14"转换为浮点数3.14
C. str(100) 可以将整数100转换为字符串"100"
D. int("12.8") 可以将字符串"12.8"直接转换为整数12
✅ 正确答案:ABC
💡 考点解析:类型转换函数——int()只能转换整数字符串(不能直接转换小数字符串),float()转换小数或整数字符串,str()转换任意类型为字符串
第 9 题 多选题 4 分
在编写藏族唐卡颜料库存管理系统时,需要比较不同颜料的数量。假设a和b是两个变量,以下哪些是比较运算符?
A. ==(等于)
B. !=(不等于)
C. =(赋值等于)
D. >=(大于等于)
✅ 正确答案:ABD
💡 考点解析:比较运算符(==、!=、'>'、'<'、'>='、'<='),注意'='是赋值运算符而非比较运算符
第 10 题 多选题 4 分
在编写哈尼族梯田面积计算程序时,需要合理使用注释。以下关于注释的说法,哪些是正确的?
A. 单行注释使用#开头,如 # 计算总面积
B. 多行注释可以使用三个单引号''' '''或三个双引号""" """包裹
C. 注释的内容会被Python解释器执行
D. 恰当使用注释有助于他人理解和维护代码
✅ 正确答案:ABD
💡 考点解析:Python注释的使用(单行注释#、多行注释'''或"""),注释不会被解释器执行
第 11 题 编程操作题 15 分

题目描述:
泼水节是傣族最隆重的传统节日。在泼水节活动中,主办方准备了若干升水,需要平均分配给n位参与者。请编写程序,输入水的总量(升)和参与人数n,计算每人分得多少升水以及剩余多少升水。

输入格式:
第一行输入一个正整数total,表示水的总量(单位:升)。
第二行输入一个正整数n(1 ≤ n ≤ 1000),表示参与人数。

输出格式:
第一行输出"每人分得X升水",其中X为每人分得的整数升数。
第二行输出"剩余Y升水",其中Y为剩余的水(升)。

示例输入:

100
8

示例输出:

每人分得12升水
剩余4升水
✅ 参考答案:
📖 参考代码
total = int(input())
n = int(input())
per_person = total // n    # 每人分得的整数升数
remain = total % n         # 剩余的升数
print("每人分得" + str(per_person) + "升水")
print("剩余" + str(remain) + "升水")
第 12 题 编程操作题 15 分

题目描述:
那达慕是蒙古族的传统体育盛会,赛马是其中最受欢迎的项目之一。已知一匹赛马跑了若干圈,每圈的长度为固定值R米,请编写程序计算该赛马总共跑了多少米。提示:圆的周长公式为 C = 2 × 3.14 × R。

输入格式:
第一行输入一个正整数R,表示圆形赛道的半径(单位:米,1 ≤ R ≤ 500)。
第二行输入一个正整数laps,表示跑的圈数(1 ≤ laps ≤ 20)。

输出格式:
输出一行"赛马总共跑了X米",其中X为总距离(米),结果保留2位小数。

示例输入:

100
5

示例输出:

赛马总共跑了3140.00米
✅ 参考答案:
📖 参考代码
R = int(input())
laps = int(input())
PI = 3.14
circle_length = 2 * PI * R   # 单圈长度
total_distance = circle_length * laps
print("赛马总共跑了" + str(round(total_distance, 2)) + "米")
# 或者使用格式化输出
# print(f"赛马总共跑了{total_distance:.2f}米")
第 13 题 编程操作题 20 分

题目描述:
摆手舞是土家族最具代表性的传统舞蹈。在一次摆手舞表演中,表演者排成一个n行m列的长方形方阵,每位表演者用符号"*"表示。请编写程序,输入行数n和列数m,打印出由"*"组成的方阵图案。

输入格式:
第一行输入一个正整数n(1 ≤ n ≤ 20),表示方阵的行数。
第二行输入一个正整数m(1 ≤ m ≤ 20),表示方阵的列数。

输出格式:
输出n行,每行有m个"*",每个"*"之间用一个空格隔开。

示例输入:

4
6

示例输出:

* * * * * *
* * * * * *
* * * * * *
* * * * * *
✅ 参考答案:
📖 参考代码
n = int(input())
m = int(input())
for i in range(n):           # 外层循环控制行数
    for j in range(m):       # 内层循环控制每行的列数
        if j == m - 1:       # 最后一个*后面不输出空格
            print("*", end="")
        else:
            print("*", end=" ")
    print()                  # 每行结束后换行
第 14 题 编程操作题 20 分

题目描述:
维吾尔族"十二木卡姆"是世界级非物质文化遗产,在演奏中会使用多种传统乐器(如热瓦普、都塔尔、艾捷克、手鼓等)。请编写程序管理木卡姆演奏所用的乐器列表,实现以下功能:
1. 输入演奏中使用的若干种乐器名称(以"end"结束输入),将其存入列表
2. 将乐器列表按字母顺序(sort())排序后输出,用顿号(、)分隔
3. 输出乐器的总数量
4. 输入一种乐器名称,判断它是否在乐器列表中。若存在,输出"该乐器在演奏名单中,排在第X位"(X为排序后的位置序号,从1开始);若不存在,输出"该乐器不在演奏名单中"

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

输出格式:
第一行:排序后的所有乐器名称,用"、"分隔
第二行:乐器的总数
第三行:查找结果

示例输入:

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

示例输出:

艾捷克、手鼓、热瓦普、都塔尔
4
该乐器在演奏名单中,排在第4位
✅ 参考答案:
📖 参考代码
# 录入乐器名称
instruments = []
while True:
    name = input()
    if name == "end":
        break
    instruments.append(name)
search = input()
# 排序
instruments.sort()
# 输出排序后的乐器名称
print("、".join(instruments))
# 输出总数
print(len(instruments))
# 查找
if search in instruments:
    position = instruments.index(search) + 1   # index从0开始,位置从1开始
    print("该乐器在演奏名单中,排在第" + str(position) + "位")
else:
    print("该乐器不在演奏名单中")