一、单项选择题(每题2分,共10分)
1. 在贸易系统中,我们需要从用户那里获取一个城市的名称。以下哪个函数是正确的?
A. input("请输入城市名: ")
B. print("请输入城市名: ")
C. get("请输入城市名: ")
D. read("请输入城市名: ")
2.贸易获得的商品价格可能是小数(如 3.5 两银子),也可能是整数(如 10 匹布)。在 Python 中,表示这两种数值的数据类型分别是?
A. str 和 intB. float 和 intC. bool 和 floatD. list 和 dict
3.商队队长说:“如果货物重量超过100斤,则需要额外支付运费;否则,按标准收费。” 这对应于哪种条件语句结构?
A. if-elseB. if-elif-elseC. whileD. for
4.我们要计算商队行进的天数,已知总路程为total_distance,每日行进距离为 daily_distance。以下哪个表达式能正确计算所需天数(向上取整)?
A. total_distance / daily_distance
B. total_distance // daily_distance
C. (total_distance + daily_distance - 1) // daily_distance
D. round(total_distance / daily_distance)
5. 在“数字守艺人”的数字化管理系统中,为了快速查找特定ID的城市信息(如人口、特产等),程序员决定使用Python中最合适的数据结构来构建一个“城市注册表”。请阅读以下代码片段,并计算最终输出的结果。
city_registry = {
1001: {"name": "Chang'an", "pop": 4000},
1002: {"name": "Dunhuang", "pop": 2000},
1003: {"name": "Kashgar", "pop": 1000}
}
city_registry[1004] = {"name": "Samarkand", "pop": 4000}
if 1003 in city_registry:
del city_registry[1003]
total_population = sum(info["pop"] for info in city_registry.values())
print(total_population)
A. 7000B. 10000C. 11000D. 12000
二、多项选择题(每题4分,共20分,少选不得分,错选不得分)
6.【多选】在管理系统中,goods_list = ['丝绸', '瓷器', '香料', '茶叶']。以下哪些操作可以正确地向列表中添加新商品‘宝石’?
A. goods_list.append('宝石')B. goods_list.insert(0, '宝石')
C. goods_list += ['宝石']D. goods_list.extend(['宝石'])
7.【多选】关于“丝绸之路”路径规划中的循环,以下说法正确的是?
A. for city in cities: 可以遍历一个城市列表。
B. while True: 会创建一个无限循环,通常需要配合 break 使用。
C. range(5) 生成的序列是 [0, 1, 2, 3, 4]。
D. 在 for 循环中使用 break 会立即终止整个循环。
8.【多选】天气系统需要生成随机事件。以下哪些是关于随机数的正确描述?
A. import random 是使用随机数模块的前提。
B. random.randint(1, 10) 可以生成一个1到10之间的随机整数(包含1和10)。
C. random.choice(['晴天', '雨天', '沙尘暴']) 可以从列表中随机选择一个元素。
D. 每次运行程序,random.random()生成的数字都完全相同。
9.在“数字守艺人”的贸易管理系统中,财务模块需要计算商队的最终净利润。请阅读以下Python代码片段,该代码演示了运算符优先级以及布尔值在数值运算中的隐式转换规则。
revenue = 1000# 总收入
cost = 200# 变动成本
fixed_fee = 50# 固定手续费
# 税率标志位:True 表示正常征税 (视为 1.0),False 表示免税 (视为 0.0)
is_taxable = True
# 核心利润计算公式
# 逻辑:(收入 - 成本) * 税率系数 - 固定费用
profit = (revenue - cost) * is_taxable - fixed_fee
print(f"最终利润: {profit}")
A. 程序运行后,控制台输出的最终利润数值为 750。
B. 在该表达式中,括号 () 内的减法运算拥有最高优先级,会最先执行。
C. 变量 is_taxable是布尔类型,不能直接参与数学乘法运算,代码会报错。
D. 整个表达式的运算顺序遵循:先算括号内的减法,再算乘法,最后算外面的减法。
10.【多选】“数字守艺人”的库存管理使用字典 inventory = {'丝绸': 100, '瓷器': 50}。以下哪些操作是合法?
A. inventory['香料'] = 30 (增加新商品)
B. del inventory['瓷器'] (删除商品)
C. if '丝绸' in inventory: print(inventory['丝绸'])
D. print(inventory.get('茶叶', 0))
三、编程操作题(共70分)
11. 【输入输出与简单运算】
请编写一个程序,模拟“数字守艺人”的简易收银台。 要求:
1. 提示用户输入商品名称(字符串)。
2. 提示用户输入商品单价(浮点数)。
3. 提示用户输入购买数量(整数)。
4. 计算总价(单价 × 数量)。
5. 输出格式化的收据,
例如:“您购买了 3 件 丝绸,单价 50.0 两,总计 150.0 两。”
12. 在古代丝绸之路的漫长旅途中,商队的驼队需要定期在驿站进行物资补给。为了保证驼队的平衡与运力最大化,驿站管理员遵循一种古老的装载规则:只有当物资包裹的编号是“完全平方数”时,才能被装载上领头骆驼的“核心仓位”,因为这些包裹通常装有最易碎也最珍贵的瓷器或香料。
假设驿站现有编号从 1 到 n的一系列物资包裹等待装载。请你编写一个程序,帮助驿站管理员找出所有需要装载到核心仓位的包裹编号,并按从小到大的顺序输出。
题目描述
输入一个整数:n ,表示物资包裹的最大编号( n≥1)。请找出 1 到 n之间(包含 n)所有的完全平方数(即可以表示为某个整数的平方的数,例如 1 、4、9 、16等),并逐行输出这些编号。
输入格式
一个整数 n表示物资包裹的最大编号( n≥1)。
输出格式
输出所有需要装载到核心仓位的包裹编号,每个编号占一行,按从小到大的顺序排列
13.在古代丝绸之路的某段商道上,商队需要从起点长安(A点)出发,前往终点罗马(B点)进行贸易。为了保证物资运输的安全与效率,商队必须遵守以下行军规则:
行军方向:为了追赶季风与日照,商队每天只能向东(向右) 或向 南(向下)行进,绝不可回头。
马匪威胁:商道某处有一个马匪营地(C点)。马匪骑兵机动性极强,他们不仅控制着营地本身,还能控制其“日”字形跳跃一步可达的所有据点(类似于中国象棋中“马”的控制范围)。
安全准则:商队严禁进入任何被马匪控制的据点,否则将被洗劫。
现在,我们将地图抽象为一个坐标系:起点 A 为坐标(0, 0),终点 B 为坐标(n, m),马匪营地位于 (cx, cy)。请你编写程序,计算商队从 A 到 B 一共有多少条安全的行军路线。
题目描述
给定终点 B 的坐标(n, m) 和马匪营地 C 的坐标 (cx, cy)。
商队只能向x轴正方向(向右) 或 y轴正方向(向下) 移动。
马匪的控制点包括其自身位置以及其“马步”(日字格)能跳到的所有 8 个方向上的点。
如果某个坐标点是马匪控制点,商队无法经过该点。
请计算从(0, 0) 到 (n, m) 的路径总数。
输入格式
一行包含四个整数:n m cx cy,分别表示终点 B 的坐标和马匪营地 C 的坐标。
输出格式
输出一个整数,表示安全路径的总条数。
样例输出:
8 6 0 8
样例输出:
1617
14. 为了体现丝路精神中的“互利共赢”与“效率至上”,城主决定制定一条新规:请重新安排这n位首领的排队顺序,使得所有人(包括正在取水的人)的平均等待时间最短。这样,商队能更快上路,城市的贸易流转也能更加高效。
题目描述
给定n个人的接水时间 T_i,请设计一种排队顺序,使得 n 个人的平均等待时间最小。
等待时间定义:一个人的等待时间 = 排在他前面所有人的接水时间之和 + 他自己的接水时间。
平均等待时间= 所有人的等待时间之和 / n 。
输入格式
共两行:
第一行:一个整数 n (1≤n≤1000 ),表示人数。
第二行: n个整数 T_1,T_2,…,T_n ,表示每个人的接水时间。
输出格式
共两行:
第一行:输出一种最优的排队顺序,即 1 到 n 的一种排列(用空格隔开)。
第二行:输出该顺序下的平均等待时间,结果精确到小数点后两位。
输入样例:
10
56 12 1 99 1000 234 33 55 99 812
输出样例:
3 2 7 8 1 4 9 6 10 5
291.90