🔒 答案已锁定

📖 答案解析 — 丝路新程(丝路文化) — 简单

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

第 1 题 单选题 2 分
在丝绸之路上,驼队商人记录了交易的茶叶数量:tea = 15。请问变量 tea 的数据类型是什么?
A. 字符串(str)
B. 整数(int)
C. 浮点数(float)
D. 布尔值(bool)
✅ 正确答案:B
💡 考点解析:基本数据类型(数值类型)
第 2 题 单选题 2 分
一位商人在敦煌集市上用Python计算瓷器的总价。已知单价为 price = 120,数量为 count = 3,他想用 print() 输出总价,以下代码正确的是?
A. print("总价:" + price * count)
B. print("总价:" + str(price * count))
C. print("总价:" , price * count)
D. print(总价:price * count)
✅ 正确答案:C
💡 考点解析:print输出、字符串拼接与类型转换
第 3 题 单选题 2 分
驼队从长安出发,每天行进的距离记录在列表中:distances = [30, 45, 28, 50, 35]。要获取第三天的行进距离(28),应使用的索引是?
A. distances[1]
B. distances[2]
C. distances[3]
D. distances[4]
✅ 正确答案:B
💡 考点解析:列表索引
第 4 题 单选题 2 分
在丝路贸易中,商人需要判断丝绸的等级。以下代码的输出结果是什么?
level = "A"
if level == "A":
    print("上等丝绸")
elif level == "B":
    print("中等丝绸")
else:
    print("普通丝绸")
A. 上等丝绸
B. 中等丝绸
C. 普通丝绸
D. 程序报错
✅ 正确答案:A
💡 考点解析:if-elif-else条件语句
第 5 题 单选题 2 分
驼队商人用 range() 统计5天的行程。以下代码会输出什么?
for day in range(1, 6):
    print("第", day, "天")
A. 输出"第1天"到"第5天"共5行
B. 输出"第1天"到"第6天"共6行
C. 输出"第0天"到"第5天"共6行
D. 程序报错
✅ 正确答案:A
💡 考点解析:for循环、range()函数
第 6 题 多选题 4 分
丝路商人记录了一组商品的名称:goods = ["丝绸", "瓷器", "茶叶", "香料"]。以下哪些Python操作能正确打印出所有商品?(多选)
A.
for item in goods:
    print(item)

B.
print(goods)

C.
for i in range(len(goods)):
    print(goods[i])

D.
print(goods[0], goods[1], goods[2], goods[3])
✅ 正确答案:ABCD
💡 考点解析:列表遍历、print输出
第 7 题 多选题 4 分
在丝绸之路上,商人需要做度量衡换算。下列关于Python数据类型的说法,正确的有?(多选)
A. type(3.14) 返回 <class 'float'>
B. int("25") 可以将字符串 "25" 转换为整数 25
C. str(100) 可以将整数 100 转换为字符串 "100"
D. Python中整数和字符串可以直接使用 + 连接
✅ 正确答案:ABC
💡 考点解析:基本数据类型、类型转换
第 8 题 多选题 4 分
在丝路贸易结算中,要用比较运算符判断盈亏。已知变量 revenue(收入)= 500 和 cost(成本)= 300,以下表达式结果为 True 的有?(多选)
A. revenue > cost
B. revenue - cost == 200
C. revenue <= cost
D. revenue != cost
✅ 正确答案:ABD
💡 考点解析:比较运算符
第 9 题 多选题 4 分
驼队商人用列表管理货物,定义了 cargo = ["丝绸", "茶叶", "瓷器"]。以下哪些操作是合法的?(多选)
A. cargo.append("香料") —— 列表变为 ["丝绸", "茶叶", "瓷器", "香料"]
B. cargo[0] = "锦缎" —— 列表变为 ["锦缎", "茶叶", "瓷器"]
C. cargo.remove("茶叶") —— 列表变为 ["丝绸", "瓷器"]
D. cargo.insert(1, "玉器") —— 列表变为 ["丝绸", "玉器", "茶叶", "瓷器"]
✅ 正确答案:ABCD
💡 考点解析:列表增删改操作
第 10 题 多选题 4 分
商队在沿途驿站休息。下列关于Python循环的说法,正确的有?(多选)
A. for i in range(5) 中,变量 i 的取值依次为 0, 1, 2, 3, 4
B. while True 循环如果不包含 break 语句,程序会一直运行
C. 在Python中,缩进不一致不会影响循环体的执行
D. break 语句可以用于提前结束 for 循环
✅ 正确答案:ABD
💡 考点解析:循环结构、缩进规则、break
第 11 题 编程操作题 15 分

题目描述:
一支丝路驼队从长安出发前往敦煌,沿途经过多个驿站。请你编写程序,让用户输入每天行进的距离(单位:里),连续输入5天。程序计算并输出驼队5天的总行程和平均每天行进的距离(保留1位小数)。

输入格式:
共5行,每行一个正整数,表示当天行进的距离(里)。

输出格式:
第一行输出:"总行程:X里"(X为总里程)
第二行输出:"日均行程:Y里"(Y为平均行程,保留1位小数)

示例输入:

40
35
50
30
45

示例输出:

总行程:200里
日均行程:40.0里
✅ 参考答案:
📖 参考代码
total = 0
for i in range(5):
    distance = int(input())
    total += distance
average = total / 5
print("总行程:" + str(total) + "里")
print("日均行程:" + str(round(average, 1)) + "里")
第 12 题 编程操作题 15 分

题目描述:
在丝绸之路的贸易集市上,丝绸按质量分为特等(A)、上等(B)、中等(C)、下等(D)四个等级,对应的单价分别为:500文、300文、200文、100文。请你编写程序,用户输入一个等级字母,程序输出该等级丝绸的单价。如果输入的等级不在A~D范围内,输出"无效等级"。

输入格式:
一行,一个大写字母,表示丝绸等级。

输出格式:
一行,输出单价(格式如"单价:500文")或"无效等级"。
示例输入1:
A
示例输出1:
单价:500文
示例输入2:
E
示例输出2:
无效等级

示例输入:

示例输出:

✅ 参考答案:
📖 参考代码
level = input()
if level == "A":
    print("单价:500文")
elif level == "B":
    print("单价:300文")
elif level == "C":
    print("单价:200文")
elif level == "D":
    print("单价:100文")
else:
    print("无效等级")
第 13 题 编程操作题 20 分

题目描述:
海上丝绸之路的商船装运瓷器。每箱瓷器的价格为 price 文(由用户输入),商船一次运载 boxes 箱(由用户输入)。此外,商船每航次还有固定的保险费 insurance 文(由用户输入)。请你编写一个函数 calc_total(price, boxes, insurance),计算并返回本次航运的总费用。然后在主程序中调用该函数并输出结果。

输入格式:
共3行,每行一个正整数:
- 第一行:每箱瓷器的价格(文)
- 第二行:瓷器的箱数
- 第三行:固定的保险费用(文)

输出格式:
一行,输出"本次航运总费用:X文"(X为总费用)

示例输入:

200
10
500

示例输出:

本次航运总费用:2500文
✅ 参考答案:
📖 参考代码
def calc_total(price, boxes, insurance):
    return price * boxes + insurance
p = int(input())
b = int(input())
ins = int(input())
total = calc_total(p, b, ins)
print("本次航运总费用:" + str(total) + "文")
第 14 题 编程操作题 20 分

题目描述:
丝绸之路上的商人需要管理一份商品清单。请你编写程序实现以下功能:
1. 初始时,商人有一份商品清单 goods = ["丝绸", "瓷器"]。
2. 用户可以先输入一个整数 n,表示接下来要执行 n 次操作。
3. 每次操作由一行输入描述:
- 如果输入格式为 add 商品名,则在清单末尾添加该商品;
- 如果输入格式为 remove 商品名,则从清单中移除该商品(如果存在);
- 如果输入格式为 show,则打印当前商品清单,每个商品占一行。
4. 每次 show 操作时,先输出 ===当前商品清单===,然后每行一个商品名。如果清单为空,则输出"清单为空"。

输入格式:
第一行一个正整数 n,表示操作次数。
接下来 n 行,每行一个操作命令(add 商品名、remove 商品名 或 show)。

输出格式:
对每个 show 命令,按上述要求输出当前清单。

示例输入:

5
show
add 茶叶
add 香料
show
remove 瓷器

示例输出:

===当前商品清单===
丝绸
瓷器
===当前商品清单===
丝绸
瓷器
茶叶
香料
✅ 参考答案:
📖 参考代码
goods = ["丝绸", "瓷器"]
n = int(input())
for _ in range(n):
    cmd = input()
    if cmd == "show":
        print("===当前商品清单===")
        if len(goods) == 0:
            print("清单为空")
        else:
            for item in goods:
                print(item)
    elif cmd.startswith("add "):
        name = cmd[4:]
        goods.append(name)
    elif cmd.startswith("remove "):
        name = cmd[7:]
        if name in goods:
            goods.remove(name)