🔒 答案已锁定

📖 答案解析 — 数字守艺人(非遗文化) — 简单2

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

第 1 题 单选题 2 分
非遗传承人在整理陶瓷制作工序时,写了以下Python代码。该程序的输出结果是什么?
# 陶瓷制作的主要工序
print("练泥", "拉坯", "修坯", "施釉", sep=" → ")
A. 练泥 拉坯 修坯 施釉
B. 练泥 → 拉坯 → 修坯 → 施釉
C. 练泥拉坯修坯施釉
D. 报错
✅ 正确答案:B
💡 考点解析:print() 函数的 sep 参数、注释(# 为单行注释,不会被程序执行)
第 2 题 单选题 2 分
刺绣艺人评比绣品质量,规定针脚密度大于60才算精细。执行以下代码,输出结果是什么?
density = 55
result = density > 60
print(result)
A. True
B. False
C. 55
D. 报错
✅ 正确答案:B
💡 考点解析:比较运算符(>)的运算结果是一个布尔值(True 或 False)。55 > 60 不成立,返回 False
第 3 题 单选题 2 分
非遗展览馆门票限量200张,售票系统使用以下代码统计已售票数。程序最终的输出结果是什么?
sold = 0
while True:
    sold += 50
    if sold >= 200:
        break
print(sold)
A. 150
B. 200
C. 250
D. 报错
✅ 正确答案:B
💡 考点解析:while True 无限循环与 break 语句。sold 依次为 50 → 100 → 150 → 200,当 sold >= 200 时执行 break 退出循环
第 4 题 单选题 2 分
风筝艺人计算一批风筝的材料成本:竹条每根3元,买了8根;风筝纸每张5元,买了6张;棉线每卷4元,买了2卷。以下代码的输出结果是什么?
price = 3 * 8 + 5 * 6 + 4 * 2
print(price)
A. 62
B. 126
C. 36
D. 报错
✅ 正确答案:A
💡 考点解析:四则运算及运算符优先级——乘法(*)优先于加法(+),计算过程:24 + 30 + 8 = 62
第 5 题 单选题 2 分
非遗社团记录了本学期学习的非遗项目,运行以下代码后,输出的第二行是什么?
items = ["剪纸", "皮影戏", "泥塑", "蜡染"]
for item in items:
    print("学习" + item)
A. 学习剪纸
B. 学习皮影戏
C. 学习泥塑
D. 学习蜡染
✅ 正确答案:B
💡 考点解析:for 循环遍历列表,字符串拼接(+)。列表第二个元素为 "皮影戏",所以第二行输出 "学习皮影戏"
第 6 题 多选题 4 分
关于Python中的注释,以下哪些描述是正确的?(多选)
A. # 符号用于单行注释,# 之后的内容不会被执行
B. 三引号(''' 或 """)可以用于书写多行注释
C. 注释会影响程序的运行结果,因此应尽量少写注释
D. 注释的作用是帮助人们阅读和理解代码
✅ 正确答案:ABD
💡 考点解析:Python注释——# 为单行注释(A对);三引号可用于多行注释(B对);注释不影响程序运行,是帮助理解代码的重要工具(C错、D对)
第 7 题 多选题 4 分
以下代码定义了4个变量。关于它们的数据类型,哪些描述是正确的?(多选)
a = 2024
b = "非遗文化"
c = 9.5
d = True
A. type(a) 的结果是 <class 'int'>(整数类型)
B. type(b) 的结果是 <class 'str'>(字符串类型)
C. type(c) 的结果是 <class 'float'>(浮点数类型)
D. type(d) 的结果是 <class 'int'>(整数类型)
✅ 正确答案:ABC
💡 考点解析:基本数据类型及 type() 函数——2024 是 int(A对),"非遗文化" 是 str(B对),9.5 是 float(C对),True 是 bool(布尔)类型而非 int(D错)
第 8 题 多选题 4 分
关于Python中字符串的格式化输出,以下哪些写法是正确的?(多选)
A. name = "剪纸"; print(f"{name}是一种非遗技艺")
B. print("距今已有{}年历史".format(3000))
C. age = 15; print("我今年" + age + "岁")
D. print("%d项非遗技艺" % 10)
✅ 正确答案:ABD
💡 考点解析:字符串格式化——f-string 格式 f"{变量}"(A对)、format() 方法(B对)、+ 不能拼接字符串和整数,需先用 str() 转换(C错)、百分号 % 格式化(D对)
第 9 题 多选题 4 分
关于Python中的比较运算符,以下哪些表达式的结果是 True?(多选)
A. 5 > 3
B. 7 == 7.0
C. "a" > "b"
D. 10 != 9
✅ 正确答案:ABD
💡 考点解析:比较运算符——5 > 3 成立(A对);Python中整数和浮点数比较时会自动转换,7 == 7.0 成立(B对);字符按 Unicode 编码比较,"a" 的编码小于 "b",所以 "a" > "b" 不成立(C错);10 != 9 成立(D对)
第 10 题 多选题 4 分
关于Python中的逻辑运算符(and、or、not),以下哪些表达式的结果是 True?(多选)
A. True and False
B. True or False
C. not False
D. (3 > 2) and (5 < 3)
✅ 正确答案:BC
💡 考点解析:逻辑运算符——and 两边都为 True 才为 True(A错);or 只要有一边为 True 即为 True(B对);not 取反(C对);3 > 2 为 True,5 < 3 为 False,True and False 为 False(D错)
第 11 题 编程操作题 15 分

题目描述:
年画(木版年画)是中国历史悠久的传统民间艺术形式。制作年画需要三种材料:红纸(每张2元)、颜料(每克3元)、金粉(每克5元)。请编写程序,输入每种材料的用量,计算总材料成本。

输入格式:

输出格式:

示例输入:

10 20 5

示例输出:

总价:105元
样例说明:红纸10张×2 = 20元,颜料20克×3 = 60元,金粉5克×5 = 25元,总计20+60+25 = 105元
✅ 参考答案:
📖 参考代码
# 读取三种材料的用量
paper, paint, gold = map(int, input().split())
# 计算总价:红纸2元/张,颜料3元/克,金粉5元/克
total = paper * 2 + paint * 3 + gold * 5
# 输出结果
print(f"总价:{total}元")
第 12 题 编程操作题 15 分

题目描述:
某非遗文化体验馆根据项目的受欢迎评分(1~10的整数)划分等级。请编写程序,输入一个评分,输出对应的等级。等级划分标准如下:
| 评分范围 | 等级 |
|---------|------|
| 9 ~ 10 | 五星级 |
| 7 ~ 8 | 四星级 |
| 5 ~ 6 | 三星级 |
| 1 ~ 4 | 需努力 |

输入格式:

输出格式:
示例输入1:
8
示例输出1:
四星级
示例输入2:
3
示例输出2:
需努力

示例输入:

示例输出:

✅ 参考答案:
📖 参考代码
# 读取评分
score = int(input())
# 根据评分判断等级
if score >= 9:
    grade = "五星级"
elif score >= 7:
    grade = "四星级"
elif score >= 5:
    grade = "三星级"
else:
    grade = "需努力"
# 输出等级
print(grade)
第 13 题 编程操作题 20 分

题目描述:
风筝制作技艺是国家级非物质文化遗产。不同形状的风筝面积计算公式不同。请编写程序,输入风筝的形状和尺寸,计算该风筝的面积。
- 如果形状是 "菱形":面积 = 宽 × 高 ÷ 2
- 如果形状是 "矩形":面积 = 宽 × 高
- 如果形状是 "三角形":面积 = 宽 × 高 ÷ 2

输入格式:

输出格式:
示例输入1:
菱形 10 8
示例输出1:
风筝面积:40.0
示例输入2:
矩形 15 6
示例输出2:
风筝面积:90.0

示例输入:

示例输出:

✅ 参考答案:
📖 参考代码
# 读取形状和尺寸
data = input().split()
shape = data[0]
w = int(data[1])
h = int(data[2])
# 根据形状计算面积
if shape == "菱形":
    area = w * h / 2
elif shape == "矩形":
    area = w * h
elif shape == "三角形":
    area = w * h / 2
else:
    area = 0
# 输出结果(保留1位小数)
print(f"风筝面积:{area:.1f}")
第 14 题 编程操作题 20 分

题目描述:
泥塑(如天津"泥人张")是国家级非物质文化遗产。一件泥塑作品需要经过多道工序制作。请编写程序,输入工序数量和每道工序的名称,完成以下任务:
1. 将所有工序用 → 连接并输出
2. 输出工序总数
3. 输出第一个工序和最后一个工序的名称

输入格式:
- 第一行:一个整数 n(1 <= n <= 20),表示工序数量
- 接下来 n 行:每行一个字符串,表示工序名称

输出格式:
- 第一行:所有工序用 → 连接
- 第二行:共{n}道工序
- 第三行:首工序:{第一个工序} 末工序:{最后一个工序}

示例输入:

4
和泥
塑形
雕刻
上色

示例输出:

和泥→塑形→雕刻→上色
共4道工序
首工序:和泥 末工序:上色
✅ 参考答案:
📖 参考代码
# 读取工序数量
n = int(input())
# 用列表收集所有工序名称
steps = []
for i in range(n):
    step = input().strip()
    steps.append(step)
# 用 → 连接所有工序
joined = "→".join(steps)
print(joined)
# 输出工序总数
print(f"共{n}道工序")
# 输出首尾工序
print(f"首工序:{steps[0]} 末工序:{steps[-1]}")