内容正文:
2024学年第二学期高中期末调测
高一技术
注意事项:1.本试卷分两部分,第一部分信息技术,第二部分通用技术。全卷共12页,第一部分1至6页,第二部分7至12页;2.考试时间90分钟,满分100分。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据、信息的说法,正确的是( )
A. 同一图像数据经过解释后产生的信息都是相同的
B. 刷脸验证人员信息,说明信息无需依附载体
C. 非授权人员无法进出宿舍,说明信息不具有共享性
D. 自动生成未归寝学生名单,体现了信息的可加工性
2. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据采集与编码的说法,正确的是( )
A. 人脸识别闸机系统在采集数据时无需传感器
B. 系统采集到的视频数据在计算机中以二进制形式存储
C. 存储在计算机中JPEG、MP4等格式文件都属于图像数据
D. 摄像头采集到的图像经数模转换后存储至计算机中
3. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据管理与安全的说法,不正确的是( )
A. 摄像头采集到的图像数据是非结构化数据
B. 只要安装防火墙,计算机就不会感染计算机病毒
C. 为保证数据的完整性,可采用数据校验的验证操作
D. 为保护数据安全,需要及时备份计算机中的重要数据
4. 各大电商平台在促销活动期间都会产生海量数据。下列关于大数据的说法,不正确的是( )
A. 电商平台日订单量超千万,体现大数据数据体量巨大
B 电商平台记录消费者文字、图片、视频等评价数据,体现大数据数据类型多样
C. 电商平台需获取用户购物原因后才能进行个性推送
D. 电商平台能够对实时交易数据进行毫秒级处理,体现大数据数据处理速度快
5. 汉字“日”的8×8信息编码图如图所示,用“1”表示对应位置是黑色的方块,“0”表示对应位置是白色的方块,则图中第5行从左到右排列的二进制编码是( )
A. 01100110B B. 11011011B C. 00111100B D. 00100100B
6. 某段未经压缩的wav格式单声道音频文件,其采样频率为44.1kHz,量化位数为16bit,时长为10s,下列说法正确的是( )
A. 将该音频文件保存成mp3格式会提高其音质
B. 该音频数字化时,每秒钟采集的样本数为44.1个
C. 该音频文件所需存储容量约为(44.1*1000*16*10/8/1024)KB
D. 仅改变该音频的音量会影响其存储容量的大小
7. 某智能农业大棚通过实时监测温度来保障农作物的生长环境。农作物最适宜的温度范围是tmin~tmax。当大棚内的温度t为正常、偏低、偏高时,将对应的状态值sta设置为0、1、2。描述该智能农业大棚温度监测算法的流程图如图所示。某同学编写Python程序实现温度监测的功能,部分代码如下:
流程图
Python程序代码
t= float(input())
sta=1
if t<= tmax:
sta=0
else:
sta=2
若变量tmax、tmin的值分别为40和20,输入下列数据分别测试流程图与程序段,两者得到的sta值不同的是( )
A. 18 B. 30 C. 40 D. 42
8. 某智能农业大棚通过实时监测温度来保障农作物的生长环境。农作物最适宜的温度范围是tmin~tmax。当大棚内的温度t为正常、偏低、偏高时,将对应的状态值sta设置为0、1、2。下列关于该智能农业大棚温度监测算法的说法,正确的是( )
A. 该算法中对温度t的判断过程无需输入值
B. 温度的持续变化会导致该算法不具备有穷性
C. 该算法无法用自然语言准确描述
D. 根据温度t的大小获得sta的值需采用分支结构实现
9. 已知变量t、x、y的值分别为30、40和20时,下列选项中Python表达式的值与其他三项不同的是( )
A. t<=x and t>=y B. not (t>x or t<y) C. (y<=t) and (t<=x) D. y> t or t>x
10. 有如下Python程序段:
Colors=["Red", "Green", "Blue", "Orange", "Yellow"]
print(Colors[1][2:5])
执行该程序段后,输出的结果是( )
A. Green B. een C. lue D. ange
11. 将输入的二进制数转换成十进制数,例如将输入的“1101”转换成13,相关程序代码如下:
s= input("请输入二进制数: ")
ans=0
for i in s:
ans= ______
print("转换成十进制数是: ", ans)
为实现上述功能,划线处的代码是( )
A. ans+2**int(s[i]) B. ans*2+int(s[i]) C. int(i)+ans D. ans*2+ int(i)
12. 有如下Python程序段:
import random
s='abc'
result=""
i=0
while i< len(s):
num = random.randint(0,1) #随机生成整数0或1
if num== 1:
result=s[i]+ result
i+=1
print(result)
执行该程序段后,输出result的值不可能是( )
A. 'abc' B. 'c' C. 'ba' D. 'cba'
二、非选择题(本题共3小题,其中第13题8分,第14题8分,第15题10分,共26分)
13. 图像数字化需要经过采样、量化、编码等环节。图像的采样就是把一张图像分解成一个一个大小相同的点,即像素,采样示意图如图a所示。图像的量化是指要使用多大范围的数值来表示图像采样之后每个像素的颜色信息,即位深度。某图像数字化后的信息如图b所示,回答下列问题。
(1)在采样过程中,若要使图像更真实,则像素点数量要______(选填:多/少)。
(2)如图b所示,该图像中像素的颜色信息量最多为______种,该图像所需存储容量约为______KB。
(3)若要将该图像转换成黑白图像,其中需要将每个像素的颜色信息与阈值进行判断:若小于阈值,则判定为0;否则判定为1。该判定的过程属于算法控制结构中的______结构。
14. 某地出租车按里程计费,收费标准:①起步价为8元(包含3公里);②里程大于3公里且小于等于10公里之间,每公里收费1.5元;③超过10公里后,每公里收费2元。
(1)抽象与建模
已知行驶里程为s,需要计算该次行程的费用cost。请根据收费标准,完成下表。
行驶里程s
费用cost
s<=3
8
3<s<=10
8+(s-3)*1.5
s>10
①______
(2)设计算法
根据建模,可以将算法做如下描述:
第一步,输入行驶里程s。
第二步,根据行驶里程和收费标准,计算行程的费用cost。
第三步,输出行程费用cost。
其中行程费用cost可能由以下部分组成:
①起步价8元
②3公里至10公里之间的里程费用
③超出3公里部分的里程按每公里1.5元计算
④超出10公里部分的里程按每公里2元计算
若出租车行驶里程s=12,该行程的费用由______组成。(单选,填字母)
A.①④ B.①③ C.①②③④ D.①②④
(3)编写程序
编写Python程序如下,在划线处填入合适的代码。
s= float(input("请输入行驶里程(公里):"))
if s<=3:
cost=8
elif ______:
cost=8+(s-3)*1.5
else:
#代码略
print("本次行程的费用为:", cost, "元")
(4)调试运行
调试程序时,可选择下列______组数据进行测试。(单选,填字母)
A. 3, 5, 10 B. 4, 8, 12 C. 2, 5, 15
15. 假设公交卡充值机只有1元、5角、2角、1角、5分、2分、1分这几种面值的硬币可供找零,且每种硬币的现存数量均为20个。充值机在找零时,会优先使用面值较大的硬币,以此来减少找零所需的硬币数量。请编写一个Python程序,计算找零所需的最少硬币数量,并输出每种硬币的使用数量。程序运行效果如图所示。请回答下列问题:
请输入需要找的零钱:3.57
用了3个面值为1的硬币
用了1个面值为0.5的硬币
用了1个面值为0.05的硬币
用了1个面值为0.02的硬币
找零完成!
(1)若需要找零5.89元,最少需要的硬币数量是______(单选,填字母)
A. 10 B. 11 C. 12 D. 13
(2)编写Python程序实现算法,部分代码如下,在划线处填入合适的代码。
coins=[0.01,0.02,0.05,0.1,0.2,0.5,1] #硬币面值
coins_num=[20,20,20,20,20,20,20] #现存硬币数量
def f(money):
for i in range(): #按大面额硬币优先原则遍历硬币面值。
if money >= coins[i]:
n= min(int(money/coins[i]), coins _num[i]) #③
if n>0: #只有当n>0时才处理
money= round( ① 2)
coins_num[i] - =n #更新硬币库存
print("用了", n, "个面值为", coins[i], "的硬币")
if money==0:
break
if money== 0:
print("找零完成! ")
else:
print("找零失败! 剩余金额: ", money)
#主程序
money= float(input("请输入需要找的零钱: "))
summ=0
for i in range(len(coins)):
summ += ②
if summ< money:
print("零钱不够, 无法找零!")
else:
f(money) #调用函数处理
①处应该填入的语句为_______
②处应该填入语句为_______
(3)程序加框处代码有错,请改正。______
(4)程序③处代码计算的是______(单选,填字母)
A.当前硬币的剩余数量 B.当前硬币使用的数量 C.当前硬币的面值 D.当前硬币的库存
第1页/共1页
学科网(北京)股份有限公司
$$
2024学年第二学期高中期末调测
高一技术
注意事项:1.本试卷分两部分,第一部分信息技术,第二部分通用技术。全卷共12页,第一部分1至6页,第二部分7至12页;2.考试时间90分钟,满分100分。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据、信息的说法,正确的是( )
A. 同一图像数据经过解释后产生的信息都是相同的
B. 刷脸验证人员信息,说明信息无需依附载体
C. 非授权人员无法进出宿舍,说明信息不具有共享性
D. 自动生成未归寝学生名单,体现了信息的可加工性
【答案】D
【解析】
【详解】本题考查的是数据与信息。选项A说法错误,同一图像数据在不同上下文或不同处理方式下,可能产生不同的信息;选项B说法错误,信息必须依附于载体存在。题干中刷脸验证过程,信息(如身份)依附于人脸图像(数据载体),系统通过摄像头捕获图像数据来提取信息;选项C说法错误,信息的共享性指信息可被多个接收者使用。非授权人员无法进出,是由于系统设置了访问控制(如权限管理),而非信息本身不能共享;选项D说法正确,题干中系统将采集的视频、图像等原始数据存储、分析,生成未归寝名单,正是对数据的加工过程(如分析进出记录),从而提炼出新的信息。故选D。
2. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据采集与编码的说法,正确的是( )
A. 人脸识别闸机系统在采集数据时无需传感器
B. 系统采集到的视频数据在计算机中以二进制形式存储
C. 存储在计算机中的JPEG、MP4等格式文件都属于图像数据
D. 摄像头采集到的图像经数模转换后存储至计算机中
【答案】B
【解析】
【详解】本题考查的是编码。选项A说法错误,系统通过摄像头采集人脸图像,摄像头核心部件是图像传感器;选项B说正确,所有计算机数据(包括视频、图像等)在存储时均以二进制形式表示(即0和1组成的序列),这是计算机存储和处理数据的基本原理;选项C说法错误,IPEG是静态图像压缩格式,属于图像数据;但MP4是视频容器格式,包含动态视频流和音频流,属于视频数据;选项D说法错误,摄像头采集光信号(模拟信号)后,需通过模数转换器(ADC, Analog-to-Digital Converter)转换为数字信号,才能被计算机存储和处理。故选B。
3. 某校宿舍出入口采用人脸识别闸机系统。所有人员必须通过摄像头刷脸进出宿舍,非授权人员无法进出宿舍。系统将采集到的数据存储在计算机的数据库中,并利用视频、图像等数据分析学生的进出情况,自动生成未归寝学生名单。下列关于数据管理与安全的说法,不正确的是( )
A. 摄像头采集到的图像数据是非结构化数据
B. 只要安装防火墙,计算机就不会感染计算机病毒
C. 为保证数据的完整性,可采用数据校验的验证操作
D. 为保护数据安全,需要及时备份计算机中的重要数据
【答案】B
【解析】
【详解】本题考查的是数据管理与安全。防火墙主要用于监控和控制网络流量,防止外部攻击(如黑客入侵),但它无法完全阻止所有计算机病毒。病毒可能通过其他途径传播,例如U盘、电子邮件附件或恶意软件下载,因此仅安装防火墙不能保证计算机绝对安全。故选B。
4. 各大电商平台在促销活动期间都会产生海量数据。下列关于大数据的说法,不正确的是( )
A. 电商平台日订单量超千万,体现大数据数据体量巨大
B. 电商平台记录消费者文字、图片、视频等评价数据,体现大数据数据类型多样
C. 电商平台需获取用户购物原因后才能进行个性推送
D. 电商平台能够对实时交易数据进行毫秒级处理,体现大数据数据处理速度快
【答案】C
【解析】
【详解】本题考查的是大数据特征。大数据的特征之一是Volume(体量大),日订单量超千万符合这一特征。大数据的另一个特征是Variety(类型多样),文字、图片、视频等多样化的数据形式体现了这一点。电商平台的个性化推送通常基于用户的行为数据(如浏览记录、购买历史、点击行为等),而不是直接获取“购物原因”。购物原因属于主观信息,通常难以直接获取,因此此说法是错误的。大数据的另一个特征是Velocity(处理速度快),实时数据处理能力符合这一特征。故选C。
5. 汉字“日”的8×8信息编码图如图所示,用“1”表示对应位置是黑色的方块,“0”表示对应位置是白色的方块,则图中第5行从左到右排列的二进制编码是( )
A. 01100110B B. 11011011B C. 00111100B D. 00100100B
【答案】D
【解析】
【详解】本题考查的是编码。 观察 “日” 字的 8×8 信息编码图,第 5 行从左到右,对应的方块颜色转换为二进制(黑色为1,白色为0 ),得到的编码是00100100,对应选项D。
6. 某段未经压缩的wav格式单声道音频文件,其采样频率为44.1kHz,量化位数为16bit,时长为10s,下列说法正确的是( )
A. 将该音频文件保存成mp3格式会提高其音质
B. 该音频数字化时,每秒钟采集的样本数为44.1个
C. 该音频文件所需存储容量约为(44.1*1000*16*10/8/1024)KB
D. 仅改变该音频的音量会影响其存储容量的大小
【答案】C
【解析】
【详解】本题考查的是音频编码。选项A说法错误,MP3是有损压缩格式,会丢弃部分音频数据以减小文件大小,导致音质降低;选项B说法错误,采样频率44.1kHz表示每秒采样44.1千次,即44.1 × 1000 = 44100个样本;选项C说法正确,音频存储容量计算公式为: 存储容量(字节) = 采样频率(Hz) × 量化位数(bit) × 声道数 × 时长(s) ÷ 8 转换为KB需再除以1024;选项D说法错误,在未压缩WAV格式中,存储容量取决于采样频率、量化位数、声道数和时长,与音频的音量无关。故选C。
7. 某智能农业大棚通过实时监测温度来保障农作物的生长环境。农作物最适宜的温度范围是tmin~tmax。当大棚内的温度t为正常、偏低、偏高时,将对应的状态值sta设置为0、1、2。描述该智能农业大棚温度监测算法的流程图如图所示。某同学编写Python程序实现温度监测的功能,部分代码如下:
流程图
Python程序代码
t= float(input())
sta=1
if t<= tmax:
sta=0
else:
sta=2
若变量tmax、tmin的值分别为40和20,输入下列数据分别测试流程图与程序段,两者得到的sta值不同的是( )
A. 18 B. 30 C. 40 D. 42
【答案】A
【解析】
【详解】本题考查的是流程图及分支语句。
选项 A:t = 18 流程图:18 <= 20(tmin),所以sta = 1 。程序代码:先sta = 1,再判断18 <= 40(tmax),执行sta = 0 。 此时流程图与程序得到的sta值不同。
选项 B:t = 30 流程图:30 > 20(tmin),再判断30 <= 40(tmax),所以sta = 0 。程序代码:先sta = 1,再判断30 <= 40(tmax),执行sta = 0 。 此时流程图与程序得到的sta值相同。
选项 C:t = 40 流程图:40 > 20(tmin),再判断40 <= 40(tmax),所以sta = 0 。程序代码:先sta = 1,再判断40 <= 40(tmax),执行sta = 0 。 此时流程图与程序得到的sta值相同。
选项 D:t = 42 流程图:42 > 20(tmin),再判断42 > 40(tmax),所以sta = 2 。程序代码:先sta = 1,再判断42 > 40(tmax),执行sta = 2 。 此时流程图与程序得到的sta值相同。
故选A。
8. 某智能农业大棚通过实时监测温度来保障农作物的生长环境。农作物最适宜的温度范围是tmin~tmax。当大棚内的温度t为正常、偏低、偏高时,将对应的状态值sta设置为0、1、2。下列关于该智能农业大棚温度监测算法的说法,正确的是( )
A. 该算法中对温度t的判断过程无需输入值
B. 温度的持续变化会导致该算法不具备有穷性
C. 该算法无法用自然语言准确描述
D. 根据温度t的大小获得sta的值需采用分支结构实现
【答案】D
【解析】
【详解】本题考查的是算法。该算法需要输入温度值t才能进行判断,因此“无需输入值”是错误的。算法的有穷性是指算法必须在有限的步骤内完成。温度的持续变化不会影响算法的有穷性,因为每次判断都是独立的。该算法可以用自然语言描述(如“如果温度低于tmin,则sta=1;如果高于tmax,则sta=2;否则sta=0”)。根据t的值判断sta需要条件分支(如if-else结构),因此“需采用分支结构实现”是正确的。故选D。
9. 已知变量t、x、y的值分别为30、40和20时,下列选项中Python表达式的值与其他三项不同的是( )
A. t<=x and t>=y B. not (t>x or t<y) C. (y<=t) and (t<=x) D. y> t or t>x
【答案】D
【解析】
【详解】本题考查的是Python表达式。已知变量值:t = 30、x = 40、y = 20。t <= x and t >= y值是True。not (t>x or t<y)值是True。(y <= t) and (t <= x)值是True。y > t or t > x值是False。故选D。
10. 有如下Python程序段:
Colors=["Red", "Green", "Blue", "Orange", "Yellow"]
print(Colors[1][2:5])
执行该程序段后,输出结果是( )
A. Green B. een C. lue D. ange
【答案】B
【解析】
【详解】本题考查的是Python列表。Python 列表索引从 0 开始,因此 Colors[1] 表示获取索引为 1 的元素,即字符串 "Green"。Colors[1][2:5] 表示对字符串 "Green" 进行切片操作。 切片语法 [start:end] 表示从索引 start 开始(包含),到索引 end 结束(不包含)。[2:5] 表示取索引 2 到索引 4 的字符(索引 5 超出范围,实际取到末尾),即索引 2('e')、索引 3('e')、索引 4('n'),结果为子字符串 "een"。故选B。
11. 将输入的二进制数转换成十进制数,例如将输入的“1101”转换成13,相关程序代码如下:
s= input("请输入二进制数: ")
ans=0
for i in s:
ans= ______
print("转换成十进制数是: ", ans)
为实现上述功能,划线处的代码是( )
A. ans+2**int(s[i]) B. ans*2+int(s[i]) C. int(i)+ans D. ans*2+ int(i)
【答案】D
【解析】
【详解】本题考查的是Python循环语句。二进制数转换为十进制数的核心方法是:每个位(bit)乘以 2 的相应次方(权重),然后求和。for i in s: 循环遍历字符串 s 中的每个字符(从左到右,即从最高位开始)。 空白处的代码需要实现累积计算。每次迭代,ans * 2 将当前累积结果左移一位(相当于乘以 2),然后 + int(i) 加上当前位的整数值(0 或 1)。故选D。
12. 有如下Python程序段:
import random
s='abc'
result=""
i=0
while i< len(s):
num = random.randint(0,1) #随机生成整数0或1
if num== 1:
result=s[i]+ result
i+=1
print(result)
执行该程序段后,输出result的值不可能是( )
A. 'abc' B. 'c' C. 'ba' D. 'cba'
【答案】A
【解析】
【详解】本题考查的是Python循环语句及随机函数。该程序段的功能是遍历字符串 s = 'abc',每次迭代随机生成一个整数(0 或 1)。如果生成的数为 1,则将当前字符添加到 result 字符串的前面(前缀添加),否则不添加。‘abc’:这是原始字符串的正序(‘a’ 在 ‘b’ 前,‘b’ 在 ‘c’ 前)。但在程序中,字符总是被添加到前面,无法得到正序结果。故选A。
二、非选择题(本题共3小题,其中第13题8分,第14题8分,第15题10分,共26分)
13. 图像数字化需要经过采样、量化、编码等环节。图像的采样就是把一张图像分解成一个一个大小相同的点,即像素,采样示意图如图a所示。图像的量化是指要使用多大范围的数值来表示图像采样之后每个像素的颜色信息,即位深度。某图像数字化后的信息如图b所示,回答下列问题。
(1)在采样过程中,若要使图像更真实,则像素点数量要______(选填:多/少)。
(2)如图b所示,该图像中像素的颜色信息量最多为______种,该图像所需存储容量约为______KB。
(3)若要将该图像转换成黑白图像,其中需要将每个像素的颜色信息与阈值进行判断:若小于阈值,则判定为0;否则判定为1。该判定的过程属于算法控制结构中的______结构。
【答案】 ①. 多 ②. 256 ③. 800 ④. 分支(选择)
【解析】
【详解】本题考查的是数据编码。
(1)采样时像素点数量越多,图像细节保留越丰富,越真实,所以填 “多”。
(2)位深度 8,颜色信息总量最多为 2^8 = 256 种;存储容量 = 宽度×高度×位深度 ÷8(转字节)÷1024(转 KB),即 1024×800×8÷8÷1024 = 800KB 。
(3)根据条件(小于 / 不小于阈值)判断并执行不同操作,属于分支(选择)结构。
14. 某地出租车按里程计费,收费标准为:①起步价为8元(包含3公里);②里程大于3公里且小于等于10公里之间,每公里收费1.5元;③超过10公里后,每公里收费2元。
(1)抽象与建模
已知行驶里程为s,需要计算该次行程费用cost。请根据收费标准,完成下表。
行驶里程s
费用cost
s<=3
8
3<s<=10
8+(s-3)*1.5
s>10
①______
(2)设计算法
根据建模,可以将算法做如下描述:
第一步,输入行驶里程s
第二步,根据行驶里程和收费标准,计算行程的费用cost。
第三步,输出行程费用cost
其中行程费用cost可能由以下部分组成:
①起步价8元
②3公里至10公里之间的里程费用
③超出3公里部分的里程按每公里1.5元计算
④超出10公里部分的里程按每公里2元计算
若出租车行驶里程s=12,该行程的费用由______组成。(单选,填字母)
A.①④ B.①③ C.①②③④ D.①②④
(3)编写程序
编写Python程序如下,在划线处填入合适的代码。
s= float(input("请输入行驶里程(公里):"))
if s<=3:
cost=8
elif ______:
cost=8+(s-3)*1.5
else:
#代码略
print("本次行程的费用为:", cost, "元")
(4)调试运行
调试程序时,可选择下列______组数据进行测试。(单选,填字母)
A. 3, 5, 10 B. 4, 8, 12 C. 2, 5, 15
【答案】 ①. cost = 18.5 + ( �� − 10 ) * 2 ②. D ③. s <= 10 ④. C
【解析】
【详解】本题考查的是计算机解决问题的过程及python分支语句。
(1)起步价 8 元覆盖前 3 公里。 3 公里至 10 公里部分(固定 7 公里),每公里 1.5 元,费用为 7 * 1.5 = 10.5 元。 超过 10 公里的部分,每公里 2 元,费用为 ( �� − 10 ) * 2 元。 因此,前 10 公里总费用为 8 + 10.5 = 18.5 元,加上超过部分费用,表达式为 cost = 18.5 + ( �� − 10 ) * 2 。
(2)① 起步价 8 元:覆盖前 3 公里,包含在内。 ② 3 公里至 10 公里之间的里程费用:3 到 10 公里(7 公里)按每公里 1.5 元收费,包含在内。 ③ 超出 3 公里部分的里程按每公里 1.5 元计算:不适用,因为超出 3 公里的部分(9 公里)中,只有 3-10 公里按 1.5 元,超过 10 公里部分按 2 元(不是 1.5 元)。 ④ 超出 10 公里部分的里程按每公里 2 元计算:超出 10 公里的部分(2 公里)按 2 元收费,包含在内。 因此,费用由①②④组成。选项 D 正确。
(3)由于 s <= 3 已在第一个条件处理,elif s <= 10 隐含了 �� > 3 的逻辑(因为当 �� ≤ 3 时不会进入该分支)。因此,空白处填 s <= 10 即可覆盖 3 < �� ≤ 10 的区间。
(4)测试数据应覆盖所有分支:�� ≤ 3 分支:测试 �� = 2 (费用应为 8 元)。 3 < �� ≤ 10 分支:测试 �� = 5 (费用应为 8 + ( 5 − 3 ) × 1.5 = 11 元)。 �� > 10 分支:测试 �� = 15 (费用应为 18.5 + ( 15 − 10 ) × 2 = 28.5 元)。 选项 C(2, 5, 15)覆盖所有分支;选项 A(3,5,10)缺少 �� > 10 ;选项 B(4,8,12)缺少 �� ≤ 3 。因此选 C。
15. 假设公交卡充值机只有1元、5角、2角、1角、5分、2分、1分这几种面值的硬币可供找零,且每种硬币的现存数量均为20个。充值机在找零时,会优先使用面值较大的硬币,以此来减少找零所需的硬币数量。请编写一个Python程序,计算找零所需的最少硬币数量,并输出每种硬币的使用数量。程序运行效果如图所示。请回答下列问题:
请输入需要找的零钱:3.57
用了3个面值为1的硬币
用了1个面值为0.5的硬币
用了1个面值为0.05的硬币
用了1个面值为0.02的硬币
找零完成!
(1)若需要找零5.89元,最少需要硬币数量是______(单选,填字母)
A. 10 B. 11 C. 12 D. 13
(2)编写Python程序实现算法,部分代码如下,在划线处填入合适的代码。
coins=[0.01,0.02,0.05,0.1,0.2,0.5,1] #硬币面值
coins_num=[20,20,20,20,20,20,20] #现存硬币数量
def f(money):
for i in range(): #按大面额硬币优先原则遍历硬币面值。
if money >= coins[i]:
n= min(int(money/coins[i]), coins _num[i]) #③
if n>0: #只有当n>0时才处理
money= round( ① ,2)
coins_num[i] - =n #更新硬币库存
print("用了", n, "个面值为", coins[i], "的硬币")
if money==0:
break
if money== 0:
print("找零完成! ")
else:
print("找零失败! 剩余金额: ", money)
#主程序
money= float(input("请输入需要找的零钱: "))
summ=0
for i in range(len(coins)):
summ += ②
if summ< money:
print("零钱不够, 无法找零!")
else:
f(money) #调用函数处理
①处应该填入的语句为_______
②处应该填入的语句为_______
(3)程序加框处代码有错,请改正。______
(4)程序③处代码计算的是______(单选,填字母)
A.当前硬币的剩余数量 B.当前硬币使用的数量 C.当前硬币的面值 D.当前硬币的库存
【答案】 ①. 11 ②. money - n * coins[i] ③. coins[i] * coins_num[i] ④. range(len(coins)-1, -1, -1) ⑤. B
【解析】
【详解】本题考查的是Python综合应用。
(1)根据贪心算法(优先使用面值较大的硬币),计算找零5.89元的过程如下:
使用5个1元硬币(5.00元),剩余0.89元。
使用1个0.5元硬币(0.50元),剩余0.39元。
使用1个0.2元硬币(0.20元),剩余0.19元。
使用1个0.1元硬币(0.10元),剩余0.09元。
使用1个0.05元硬币(0.05元),剩余0.04元。
使用2个0.02元硬币(0.04元),剩余0.00元。
硬币使用数量:5(1元)+ 1(0.5元)+ 1(0.2元)+ 1(0.1元)+ 1(0.05元)+ 2(0.02元)= 11个。
(2)①处:更新剩余找零金额。money - n * coins[i] 表示从剩余金额中减去当前面值硬币的总价值,然后使用 round(..., 2) 四舍五入到两位小数(分)以避免浮点数精度问题。②处:计算充值机中所有硬币的总金额。coins[i] * coins_num[i] 表示当前面值硬币的总价值,循环累加到 summ 中,用于判断零钱是否足够。
(3)加框处原代码为 range(len(coins)),这会从小面值硬币(0.01元)开始遍历,但题目要求“优先使用面值较大的硬币”,因此必须从大面值硬币(1元)开始遍历。改正后,range(len(coins)-1, -1, -1) 使索引从大到小(从1元到0.01元)遍历。
(4)③处代码 n = min(int(money / coins[i]), coins_num[i]) 中: int(money / coins[i]) 是当前面值理论上最多可用的硬币数量(基于剩余金额)。 coins_num[i] 是当前面值硬币的库存数量。 min() 取两者较小值,得到实际可使用的硬币数量 n(受库存限制)。后续代码使用 n 更新库存和输出,因此 n 表示当前硬币使用的数量。选项A(剩余数量)错误,因为 coins_num[i] 是使用前的库存;选项C(面值)和D(库存)与计算无关。故选B。
第1页/共1页
学科网(北京)股份有限公司
$$