🔒 答案已锁定

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

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

第 1 题 单选题 2 分
在Python中,小明想定义一个变量来存储陶瓷工艺品"青花瓷瓶"的价格,以下哪个变量名是合法的?
A. 2price
B. price!
C. qinghua_price
D. class
✅ 正确答案:C
💡 考点解析:变量命名规则(不能以数字开头、不能含特殊字符、不能使用关键字)
第 2 题 单选题 2 分
剪纸艺人记录了剪一张"福"字窗花所需的时间(单位:分钟),代码如下:
time_str = "15"
time_min = int(time_str)
print(time_min + 5)

程序输出结果是什么?
A. 155
B. 20
C. "155"
D. 报错
✅ 正确答案:B
💡 考点解析:数据类型转换 int() 将字符串转为整数后进行算术运算
第 3 题 单选题 2 分
二十四节气中,阳历3、4、5月属于春季。以下代码用于判断一个月份是否属于春季,横线处应填什么?
month = int(input())
if 3 <= month <= 5:
    print("春季")
_____:
    print("非春季")
A. else
B. elif
C. if
D. then
✅ 正确答案:A
💡 考点解析:if-else 双分支条件语句
第 4 题 单选题 2 分
年画作坊要印制编号从1到10的10张年画,需要使用 range() 生成数字1到10。以下哪个选项的写法是正确的?
A. range(10)
B. range(1, 10)
C. range(1, 11)
D. range(0, 10)
✅ 正确答案:C
💡 考点解析:range(start, stop) 函数,stop 不包含在序列中
第 5 题 单选题 2 分
皮影戏道具箱中有5个皮影人物,存储在列表中。要取出第3个皮影人物"猪八戒",横线处应填什么?
puppets = ["孙悟空", "唐僧", "猪八戒", "沙和尚", "白骨精"]
print(______)
A. puppets[2]
B. puppets[3]
C. puppets[1]
D. puppets(2)
✅ 正确答案:A
💡 考点解析:列表索引(从0开始计数,第3个元素的索引为2)
第 6 题 多选题 4 分
以下哪些是Python中合法的标识符(变量名)?(多选)
A. embroidery_01
B. 2_paper_cut
C. _clay_figure
D. kite-flying
✅ 正确答案:AC
💡 考点解析:变量命名规则——可以包含字母、数字、下划线,但不能以数字开头(B错),不能包含连字符(D错),可以以下划线开头(C对)
第 7 题 多选题 4 分
关于Python字符串操作,以下哪些描述是正确的?(多选)
A. len("剪纸") 的结果是 2
B. "年画" + "艺术" 的结果是 "年画艺术"
C. "皮影戏"[0] 的结果是 "皮"
D. "hello".upper() 的结果是 "HELLO"
✅ 正确答案:ABCD
💡 考点解析:字符串长度 len()、拼接 +、索引 [索引]、方法 upper()
第 8 题 多选题 4 分
以下Python代码中,哪些操作可以正确地向节气列表 solar_terms 中添加元素 "清明"?(多选)
solar_terms = ["立春", "雨水", "惊蛰"]
# 在此处添加代码
A. solar_terms.append("清明")
B. solar_terms.insert(3, "清明")
C. solar_terms.add("清明")
D. solar_terms = solar_terms + ["清明"]
✅ 正确答案:ABD
💡 考点解析:列表添加元素——append()(A对)、insert()(B对)、列表拼接(D对);列表没有 add() 方法(C错)
第 9 题 多选题 4 分
关于Python字典,以下哪些描述是正确的?(多选)
A. 字典由键(key)和值(value)组成的键值对构成
B. 字典的键必须是不可变类型,如字符串、数字、元组
C. 字典可以用数字索引(如 dict[0])来访问元素
D. 空字典可以用 {} 创建
✅ 正确答案:ABD
💡 考点解析:字典的数据结构——键值对(A对)、键不可变(B对)、不能用数字索引访问(C错)、{} 创建空字典(D对)
第 10 题 多选题 4 分
以下关于Python函数的描述,哪些是正确的?(多选)
A. 使用 def 关键字定义函数
B. 函数可以没有参数
C. 函数必须要有 return 语句
D. 函数名应遵循变量命名规则
✅ 正确答案:ABD
💡 考点解析:函数定义(def)、参数(可无参数)、返回值(return 可选,无 return 时返回 None)、命名规则(与变量相同)
第 11 题 编程操作题 15 分

题目描述:
二十四节气是中华民族悠久历史文化的重要组成部分,反映了季节的变化。某学校"非遗文化社团"需要一个小程序:用户输入一个节气名称,程序自动输出该节气属于哪个季节,并列出该季节包含的所有节气。
已知四季与节气的对应关系如下:
- 春季:立春、雨水、惊蛰、春分、清明、谷雨
- 夏季:立夏、小满、芒种、夏至、小暑、大暑
- 秋季:立秋、处暑、白露、秋分、寒露、霜降
- 冬季:立冬、小雪、大雪、冬至、小寒、大寒

输入格式:

输出格式:
- 第一行输出:{节气名}属于{季节}季
- 第二行输出:{季节}季的节气有:{节气列表,空格分隔}

示例输入:

春分

示例输出:

春分属于春季
春季的节气有:立春 雨水 惊蛰 春分 清明 谷雨
✅ 参考答案:
📖 参考代码
# 定义四季与节气的字典
terms = {
    "春": ["立春", "雨水", "惊蛰", "春分", "清明", "谷雨"],
    "夏": ["立夏", "小满", "芒种", "夏至", "小暑", "大暑"],
    "秋": ["立秋", "处暑", "白露", "秋分", "寒露", "霜降"],
    "冬": ["立冬", "小雪", "大雪", "冬至", "小寒", "大寒"]
}
# 读取用户输入的节气名称
name = input().strip()
# 遍历字典,查找节气所属的季节
for season, term_list in terms.items():
    if name in term_list:
        print(f"{name}属于{season}季")
        print(f"{season}季的节气有:{' '.join(term_list)}")
        break
第 12 题 编程操作题 15 分

题目描述:
刺绣是中国传统手工艺,不同针法在绣品中交替使用。小明记录了一段刺绣过程中的针法顺序,用字母表示不同的针法(如A表示平针、B表示回针、C表示链针等)。请编写程序,输入一段针法字符串,统计每种针法出现的次数,并按字母顺序输出。

输入格式:

输出格式:

示例输入:

AABBCA

示例输出:

A:3
B:2
C:1
✅ 参考答案:
📖 参考代码
# 读取针法字符串
s = input().strip()
# 用字典统计每种针法的次数
count = {}
for ch in s:
    if ch in count:
        count[ch] += 1
    else:
        count[ch] = 1
# 按字母顺序输出
for key in sorted(count.keys()):
    print(f"{key}:{count[key]}")
第 13 题 编程操作题 20 分

题目描述:
剪纸艺人在一次展览中展出了若干幅剪纸作品,每件作品都有一个名称和专家评分(1-10的整数)。请编写程序实现以下功能:
1. 输入作品数量n
2. 逐行输入每件作品的名称和评分(空格分隔)
3. 计算所有作品的平均评分,保留1位小数
4. 找出评分最高的作品(如果有多件并列最高,输出最先输入的那件)
5. 输出所有评分大于等于8分的"优秀作品"

输入格式:
- 第一行:一个整数n,表示作品数量
- 接下来n行:每行一个作品名称和一个整数评分,空格分隔

输出格式:
- 第一行:平均评分:{平均值,保留1位小数}
- 第二行:最高分作品:{作品名称} {评分}
- 第三行:优秀作品:
- 接下来若干行:评分>=8分的作品,每行格式为 {作品名称} {评分}

示例输入:

4
福字窗花 9
喜鹊登梅 8
年年有余 7
龙凤呈祥 9

示例输出:

平均评分:8.2
最高分作品:福字窗花 9
优秀作品:
福字窗花 9
喜鹊登梅 8
龙凤呈祥 9
✅ 参考答案:
📖 参考代码
# 读取作品数量
n = int(input())
works = []   # 存储 (名称, 评分)
total = 0    # 评分总和
# 读取每件作品的信息
for i in range(n):
    line = input().split()
    name = line[0]
    score = int(line[1])
    works.append((name, score))
    total += score
# 计算并输出平均评分
avg = total / n
print(f"平均评分:{avg:.1f}")
# 找出评分最高的作品
max_work = works[0]
for w in works:
    if w[1] > max_work[1]:
        max_work = w
print(f"最高分作品:{max_work[0]} {max_work[1]}")
# 输出优秀作品(评分 >= 8)
print("优秀作品:")
for name, score in works:
    if score >= 8:
        print(f"{name} {score}")
第 14 题 编程操作题 20 分

题目描述:
陶瓷烧制是重要的非物质文化遗产,烧制过程中需要严格控制窑温。某陶艺工坊记录了连续k小时的窑温数据(整数,单位:摄氏度)。请编写程序完成以下分析:
1. 找出记录期间的最高温度和最低温度
2. 统计温度在正常范围[800, 1200](包含边界)内的小时数
3. 找出连续超过1200度(高温异常)的最长持续小时数

输入格式:
- 第一行:一个整数k,表示记录的小时数
- 第二行:k个整数,表示每小时的温度,空格分隔

输出格式:
- 第一行:最高温度:{值}
- 第二行:最低温度:{值}
- 第三行:正常范围时数:{值}
- 第四行:最长连续高温持续:{值}

示例输入:

8
850 1150 1250 1210 900 1300 1280 1100

示例输出:

最高温度:1300
最低温度:850
正常范围时数:4
最长连续高温持续:2
样例说明:
- 8个温度值中,最高1300,最低850
- 在[800, 1200]范围内的有:850, 1150, 900, 1100,共4小时
- 连续超过1200度的异常段:{1250, 1210}(第3-4小时,持续2小时),{1300, 1280}(第6-7小时,持续2小时),最长连续高温持续为2
✅ 参考答案:
📖 参考代码
# 读取数据
k = int(input())
temps = list(map(int, input().split()))
# 找出最高和最低温度
max_t = max(temps)
min_t = min(temps)
# 统计正常范围内的时数
normal_count = 0
for t in temps:
    if 800 <= t <= 1200:
        normal_count += 1
# 找出最长连续高温异常的持续小时数
max_abnormal = 0
current_abnormal = 0
for t in temps:
    if t > 1200:
        current_abnormal += 1
        if current_abnormal > max_abnormal:
            max_abnormal = current_abnormal
    else:
        current_abnormal = 0
# 输出结果
print(f"最高温度:{max_t}")
print(f"最低温度:{min_t}")
print(f"正常范围时数:{normal_count}")
print(f"最长连续高温持续:{max_abnormal}")