内容正文:
2025学年第一学期浙南名校联盟返校联考
高二技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分 信息技术(共50分)
一、选择题(本大题共15小题,每小题2分,共30分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列关于智慧步道中数据与信息的说法,不正确的是( )
A. 实时排行榜动态更新说明信息具有时效性
B. 数据的客观性为排行榜的生成提供了可靠的依据
C. 从运动数据得到的信息在分享后可能产生损耗
D. 运动信息可在不同的设备中显示,说明信息可依附于不同载体
2. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列关于智慧步道中大数据的说法,正确的是( )
A. 在大数据分析时,不追求个别数据的准确性
B. 通过传感器采集的运动数据均为结构化数据
C. 实时生成运动排行榜依赖静态数据
D. 人脸数据只能采用图计算处理
3. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列措施中,不能有效提升数据安全的是( )
A. 对敏感信息进行匿名化处理后再显示 B. 向用户自动推送运动后的数据摘要
C. 定期备份数据至异地容灾中心 D. 对传感器数据进行加密传输
4. 下列关于人工智能的说法,不正确的是( )
A. 人脸识别是联结主义人工智能技术的应用
B. 图灵测试是一种测试机器智能水平方法
C. 在强化学习中,学习者事先不需要知道问题的最终答案
D. 在智能叠加协调的回路中,人类智能是智能回路的总开关
5. 下列关于信息编码的说法,正确的是( )
A. 不同格式的数据必须保存在不同的存储设备中
B. 在ASCII字符集中,字母占用存储空间比数字更多
C. 一般而言,降低采样频率能提高模拟信号的保真度
D. 某二进制数n(非零)的末位为‘0’,去掉该末位后,新数是原数的1/2
6. 如图a所示为300×200像素、256色的BMP格式位图,经过处理后,存储为如图b所示的300×200像素、黑白两色的BMP格式图像,则图a与图b的存储容量之比为( )
图a 图b
A. 1∶1 B. 2∶1 C. 8∶1 D. 128∶1
7. 下列关于算法的描述,不正确的是( )
A. 算法需要包含一个或多个输入
B. 可用多种不同的算法来解决同一个问题
C. 可用枚举算法求解某整数x的所有因子
D. 算法是解决问题或完成任务的一系列步骤,步骤必须有限
8. 某算法的部分流程图如图所示,执行流程图后,输出k的值为( )
A. 16 B. 21 C. 32 D. 64
9. 下列Python表达式的值,与其他三项不同的是( )
A. 369%100//10 == 6 B. "7"+"4" > "10" C. not "56" in [5,6] D. int(5.9) == len("Python")
10. 某Exce1文件记录了不同时间某农业大棚内的温度,导出某一天的部分数据如右图所示,现需根据数据智能调控环境温度。
读取大棚当前温度t(℃),当t超过40℃时,打开通风设备S(S=1),关闭加热器H(H=0);当t低于18℃时,打开加热器H(H=1),关闭通风设备S(S=0);当t处于18℃至40℃之间时,关闭通风设备S与加热器H(S=0,H=0)。下列Python程序段不能实现上述功能的是( )
A
.if t > 40:
S,H=1,0
elif t < 18:
S,H=0,1
else:
S,H=0,0
B.
if t > 40:
S,H=1,0
if t < 18:
S,H=0,1
if t >= 18 and t <= 40:
S,H=0,0
C.
if t > 40:
S,H=1,0
if t < 18:
S,H=0,1
else:
S,H=0,0
D.
S,H=0,0
if t > 40:
S=1
elif t < 18:
H=1
A. A B. B C. C D. D
11. 某Exce1文件记录了不同时间某农业大棚内温度,导出某一天的部分数据如右图所示,现需根据数据智能调控环境温度。
列表records中存储了大棚当日采集的6次温度数据,现编写以下Python程序:
records=["2025-03-07 06:00",22.5,"2025-03-07 06:20",25.3,"2025-03-07 07:00",29.1,"2025-03-07 07:20",31.2,"2025-03-07 08:20",30.7,"2025-03-07 09:00",23.5]
c=0;mt=0
for i in range(0len(records),2):
if records[i+1] > 28:
c+=1
if records[i+1] > mt:
mt=records[i+1]
执行该程序段后,c和mt的值分别为( )
A. 3 31.2 B. 3 22.5 C. 2 29.1 D. 2 31.2
12. 已知字符串s中存储了某校高二年级学生某学科的学考成绩(成绩以等级制表示,包含A、B、C、D、E五个等级),如s=‘AADDEACDBBB’,编写Python程序,统计各等级人数,并按照A至E的顺序输出各等级人数占总人数的比例(以百分比形式表示)。
s=input()
b={}
for x in s:
if x in b:
(1)
else:
(2)
total=len(s)
for i in "ABCDE":
(3)
print(f"{i}等级占比:{p*100:.2f}%") #输出对应等级的占比,数值保留小数点后两位上述程序段中划线处可选代码为:
①p=s[i]/total ②p=b[i]/total ③b[x]=1 ④b[x]+=1
则(1)(2)(3)处语句依次为( )
A. ④③① B. ④③② C. ③④② D. ③④①
13. 编写Python程序,将输入的十进制整数转换为十六进制字符串。例如:输入42时输出“2A”,代码如下:
n=int(input("请输入十进制数:"))
s=""
while n != 0:
r=n%16
if r > 9:
(1)
else:
(2)
n=n//16
print("转换成十六进制数是:",s)
为实现上述功能,划线处可供选择的代码有:
①s=str(r)+s ②s=s+str(r) ③s=chr(r+55)+s ④s=s+ord(r+55)
依次可填入的顺序为( )
A. ③① B. ④② C. ①④ D. ②③
14. 有如下Python程序段:
import random
1st=["a","b","c","d"]
res=""
i=0
while i < len(1st):
n=random.randint(0,5)
if n < 4:
res=1st [i]+res
i+=1
print(res)
执行该程序段后,输出结果不可能是( )
A. "a" B. "cb" C. "dcba" D. "dcbca"
15. 有如下Python程序:
n=len(a)
s=[0]*(n+1)
for i in range(1,n+1):
s[i]=s[i-1]+a[i-1]
max=s[0]
for i in range(0n):
for j in range(i+1,n+1):
if s[j]-s[i] > max:
max=s[j]-s[i]
print(max)
若列表a=[9,-6,8,7,-7,2,3,-2],则输出的结果为( )
A. 95 B. 23 C. 18 D. 14
二、非选择题(本大题共2小题,每小题10分,共20分)
16. 某停车场提供新能源车快充功能,停车场想要分析新能源车的停车与充电数据以制定不同时段的充电价格,现将2024年第三季度的停车与充电数据存放在“parking_data.xlsx”中,部分数据如图a所示。现读取数据,分析不同时段的充电车的车流量,并绘制如图b所示的柱形图,实现上述功能的部分Python程序如下,回答以下问题。
图a
import pandas as pd #引入pandas模块
import matplotlib.pyplot as plt #引入matplotlib的pyplot子库
plt.rc('font',family='simsun') #设置中文字体
df=pd.read_excel("parking_data.xlsx")
df1=
h=[]
for i indf1.index:
t=df1.at[i'入场时间']
h.append(t[11:13])
df1["小时"]=h
①
②
③
plt.title("**停车场充电车车流量")
plt.show()
图b
(1)加框处程序功能为筛选出充电车辆数据,请在加框处填入合适的代码。____
(2)划线处可填入的代码如下,为实现上述功能,划线①②③处应填入的代码依次为____、____、____。
A.df2=df1.groupby("小时",as_index=False)["车牌号"].count()
B.df1=df1.groupby("小时",as_index=False)["车牌号"].sum()
C.df3=df2.sort_values("车牌号",ascending=False)
D.df3=df1.sort_values("车牌号",ascending=True)
E.plt.bar(df3.小时,df3.车牌号)
F.plt.bar(df3.index,df3.车牌号)
(3)为获得充电车车流量最高的5个时间段,以下代码不可行的是____(多选,填字母)
A.df3.tail(5) B.df3.head() C.df3.head(5) D.df3[1:6]
17. 一面墙由n列砖组成,已知每列砖的数量为nums[i](相邻两列砖之间无缝隙),每块砖的长宽高均为1,现需在这面墙中找到一块面积最大的矩形用于涂鸦。例如,n=6,每列砖的数量依次为3,2,1,5,6,2,如图所示,该墙最大面积的矩形为10。
(1)若该面墙有5列砖,每列砖的数量为4,3,5,2,3,那么最大的矩形面积是____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
def area(nums):
maxa=0
①____
for i in range(n):
left=i
while:
left-=1
right=i
while right < n-1 and nums[right+1] >= nums[i]:
right+=1
②____
cur=nums[i]*lenght
if maxa < cur:
maxa=cur
return maxa
#获取每列砖的数量,存于列表nums中,代码略
③____
print("最大的矩形面积是:",s)
(3)加框处的代码有误,请改正。____
第1页/共1页
学科网(北京)股份有限公司
$$
2025学年第一学期浙南名校联盟返校联考
高二技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分 信息技术(共50分)
一、选择题(本大题共15小题,每小题2分,共30分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列关于智慧步道中数据与信息的说法,不正确的是( )
A. 实时排行榜动态更新说明信息具有时效性
B. 数据的客观性为排行榜的生成提供了可靠的依据
C. 从运动数据得到的信息在分享后可能产生损耗
D. 运动信息可在不同的设备中显示,说明信息可依附于不同载体
【答案】C
【解析】
【详解】本题考查的是数据与信息。信息在分享过程中,只要传递和呈现的方式恰当,本身不会产生损耗,所以 C 说法不正确。实时排行榜动态更新,体现出信息随时间变化,具有时效性;数据是客观采集的,能为排行榜生成提供可靠依据;运动信息能在大屏、手机等不同设备显示,说明信息可依附不同载体。故选C。
2. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列关于智慧步道中大数据的说法,正确的是( )
A. 在大数据分析时,不追求个别数据的准确性
B. 通过传感器采集的运动数据均为结构化数据
C. 实时生成运动排行榜依赖静态数据
D. 人脸数据只能采用图计算处理
【答案】A
【解析】
【详解】本题考查的是大数据。A选项:大数据分析更注重整体趋势等,不追求个别数据的绝对准确性,该说法正确。 B选项:传感器采集的运动数据,像运动轨迹等部分可能是非结构化数据,并非均为结构化数据,所以B错误。 C选项:实时生成运动排行榜依赖的是实时产生的动态数据,而非静态数据,所以C错误。 D选项:人脸数据不是只能采用图计算处理,还有其他多种处理方式,所以D错误。故选A。
3. 智慧步道系统通过人脸识别注册后,沿途传感器实时采集用户的运动轨迹与步伐频率;系统后台融合多源数据,即时计算用户速度、里程及卡路里消耗,并基于大数据分析生成实时运动排行榜,用户可在大屏查看运动数据,也能扫码分享至手机端。下列措施中,不能有效提升数据安全的是( )
A. 对敏感信息进行匿名化处理后再显示 B. 向用户自动推送运动后的数据摘要
C. 定期备份数据至异地容灾中心 D. 对传感器数据进行加密传输
【答案】B
【解析】
【详解】本题考查的是数据安全。A选项:对敏感信息匿名化处理,能避免敏感信息泄露,提升数据安全。 B选项:向用户自动推送运动后的数据摘要,只是信息展示,没有涉及数据安全防护相关操作,不能有效提升数据安全。 C选项:定期备份数据至异地容灾中心,可防止数据因本地故障等丢失,保障数据安全。 D选项:对传感器数据加密传输,能防止数据在传输过程中被窃取,提升数据安全。故选B。
4. 下列关于人工智能的说法,不正确的是( )
A. 人脸识别是联结主义人工智能技术的应用
B. 图灵测试是一种测试机器智能水平的方法
C. 在强化学习中,学习者事先不需要知道问题的最终答案
D. 在智能叠加协调回路中,人类智能是智能回路的总开关
【答案】B
【解析】
【详解】本题考查的是人工智能。人脸识别常使用卷积神经网络(CNN),属于联结主义范畴;图灵测试由计算机科学家阿兰·图灵在1950年提出,旨在评估机器是否具有智能,但不能测试机器智能水平;强化学习中学习者通过与环境交互获得奖惩来学习,事先不需要知道问题的最终答案;在智能叠加协调的回路里,人类智能起到总开关等关键作用。故选B。
5. 下列关于信息编码的说法,正确的是( )
A. 不同格式的数据必须保存在不同的存储设备中
B. 在ASCII字符集中,字母占用存储空间比数字更多
C. 一般而言,降低采样频率能提高模拟信号的保真度
D. 某二进制数n(非零)的末位为‘0’,去掉该末位后,新数是原数的1/2
【答案】D
【解析】
【详解】本题考查的是信息编码。A 选项:不同格式的数据可以保存在相同的存储设备中,比如电脑硬盘可以存储文本、图片、视频等不同格式数据,所以 A 错误。 B 选项:在 ASCII 字符集中,字母和数字都占用 1 个字节的存储空间,所以 B 错误。 C 选项:一般而言,提高采样频率能提高模拟信号的保真度,降低采样频率会降低保真度,所以 C 错误。 D 选项:二进制数末位为“0”,说明这个数是偶数,去掉末位后,相当于右移一位,新数是原数的 1/2,所以 D 正确。
6. 如图a所示为300×200像素、256色的BMP格式位图,经过处理后,存储为如图b所示的300×200像素、黑白两色的BMP格式图像,则图a与图b的存储容量之比为( )
图a 图b
A. 1∶1 B. 2∶1 C. 8∶1 D. 128∶1
【答案】C
【解析】
【详解】本题考查图像数字化相关内容。图像存储容量=图像像素总数*颜色位深度,256色图像颜色位深度为8位,黑白两色为1位,因此,处理前后的图像存储容量之比为300*200*8/(300*200*1)=8:1。故本题答案是C选项。
7. 下列关于算法的描述,不正确的是( )
A. 算法需要包含一个或多个输入
B. 可用多种不同的算法来解决同一个问题
C. 可用枚举算法求解某整数x的所有因子
D. 算法是解决问题或完成任务的一系列步骤,步骤必须有限
【答案】A
【解析】
【详解】本题考查算法的基本概念与特征。A选项错误,算法并非必须包含一个或多个输入,部分算法无需输入即可执行,例如计算1到100的累加和的算法,无需额外输入就能完成计算。B选项正确,解决同一个问题往往存在多种不同思路,因此可对应多种不同的算法,例如求两个正整数的最大公约数,既可用辗转相除法,也可用更相减损术。C选项正确,枚举算法的核心是逐一列举所有可能情况并判断,求解整数x的所有因子时,可枚举1到x的所有整数,判断其是否能整除x,符合枚举算法的应用场景。D选项正确,算法的定义明确其是解决问题或完成任务的一系列步骤,且“有穷性”是算法的基本特征之一,即步骤必须有限,不能无限循环。因此,本题选择A选项。
8. 某算法的部分流程图如图所示,执行流程图后,输出k的值为( )
A. 16 B. 21 C. 32 D. 64
【答案】D
【解析】
【详解】本题考查的是流程图识读。初始值: s=0 , k=1 , f=−1 。
第一次循环: s=0+(−1)×1=−1 , f=1 , k=2 , s=−1<10 ,继续循环。
第二次循环: s=−1+1×2=1 , f=−1 , k=4 , s=1<10 ,继续循环。
第三次循环: s=1+(−1)×4=−3 , f=1 , k=8 , s=−3<10 ,继续循环。
第四次循环: s=−3+1×8=5 , f=−1 , k=16 , s=5<10 ,继续循环。
第五次循环: s=5+(−1)×16=−11 , f=1 , k=32 ,此时 s=−11<10 ,继续循环。
第六次循环: s=−11+1×32=21 , f=−1 , k=64 ,此时 s=21≥10 ,循环结束,输出 k=64,故选D。
9. 下列Python表达式的值,与其他三项不同的是( )
A. 369%100//10 == 6 B. "7"+"4" > "10" C. not "56" in [5,6] D. int(5.9) == len("Python")
【答案】D
【解析】
【详解】本题考查Python表达式相关内容。A选项,369%100//10 == 6-->69//10 == 6-->6 == 6-->True。B选项,"7"+"4" > "10"-->"74" > "10"-->True。C选项,not "56" in [5,6]-->not False-->True。D选项,int(5.9) == len("Python")-->5 == 6-->False。故本题答案是D选项。
10. 某Exce1文件记录了不同时间某农业大棚内的温度,导出某一天的部分数据如右图所示,现需根据数据智能调控环境温度。
读取大棚当前温度t(℃),当t超过40℃时,打开通风设备S(S=1),关闭加热器H(H=0);当t低于18℃时,打开加热器H(H=1),关闭通风设备S(S=0);当t处于18℃至40℃之间时,关闭通风设备S与加热器H(S=0,H=0)。下列Python程序段不能实现上述功能的是( )
A
.if t > 40:
S,H=1,0
elif t < 18:
S,H=0,1
else:
S,H=0,0
B
if t > 40:
S,H=1,0
if t < 18:
S,H=0,1
if t >= 18 and t <= 40:
S,H=0,0
C
if t > 40:
S,H=1,0
if t < 18:
S,H=0,1
else:
S,H=0,0
D.
S,H=0,0
if t > 40:
S=1
elif t < 18:
H=1
A. A B. B C. C D. D
【答案】C
【解析】
【详解】本题考查的是python选择语句。选项C中,若t > 40:执行第一个if,S, H = 1, 0;然后判断第二个if t < 18,若t > 40则t < 18不成立,执行else,S, H = 0, 0这就错误地将S和H又设为0, 0,不符合“超过 40℃时 S=1、H=0”的要求。故选C。
11. 某Exce1文件记录了不同时间某农业大棚内的温度,导出某一天的部分数据如右图所示,现需根据数据智能调控环境温度。
列表records中存储了大棚当日采集的6次温度数据,现编写以下Python程序:
records=["2025-03-07 06:00",22.5,"2025-03-07 06:20",25.3,"2025-03-07 07:00",29.1,"2025-03-07 07:20",31.2,"2025-03-07 08:20",30.7,"2025-03-07 09:00",23.5]
c=0;mt=0
for i in range(0,len(records),2):
if records[i+1] > 28:
c+=1
if records[i+1] > mt:
mt=records[i+1]
执行该程序段后,c和mt的值分别为( )
A. 3 31.2 B. 3 22.5 C. 2 29.1 D. 2 31.2
【答案】A
【解析】
【详解】本题考查的是python循环语句应用。列表 records 里的元素,每两个为一组,分别是时间和温度,即温度依次为 22.5、25.3、29.1、31.2、30.7、23.5。循环中 for i in range(0, len(records), 2),i 取 0、2、4、6、8、10,具体执行过程如下:
i = 0,records[1] = 22.5 < 28,c 不增,mt 不变。
i = 2,records[3] = 25.3 < 28,c 不增,mt 不变。
i = 4,records[5] = 29.1 > 28,c = 1,mt = 29.1。
i = 6,records[7] = 31.2 > 28,c = 2,mt = 31.2。
i = 8,records[9] = 30.7 > 28,c = 3,30.7 < 31.2,mt 还是 31.2。
i = 10,records[11] = 23.5 < 28,c 不增,mt 不变。 所以最终 c = 3,mt = 31.2,答案选 A。
12. 已知字符串s中存储了某校高二年级学生某学科的学考成绩(成绩以等级制表示,包含A、B、C、D、E五个等级),如s=‘AADDEACDBBB’,编写Python程序,统计各等级人数,并按照A至E的顺序输出各等级人数占总人数的比例(以百分比形式表示)。
s=input()
b={}
for x in s:
if x in b:
(1)
else:
(2)
total=len(s)
for i in "ABCDE":
(3)
print(f"{i}等级占比:{p*100:.2f}%") #输出对应等级的占比,数值保留小数点后两位上述程序段中划线处可选代码为:
①p=s[i]/total ②p=b[i]/total ③b[x]=1 ④b[x]+=1
则(1)(2)(3)处语句依次为( )
A. ④③① B. ④③② C. ③④② D. ③④①
【答案】B
【解析】
【详解】本题考查的是字符串处理。(1)处:当 x 在字典 b 中时,要将对应人数加 1,所以应填 b[x] += 1(即选项④)。(2)处:当 x 不在字典 b 中时,要将对应人数初始化为 1,所以应填 b[x] = 1(即选项③)。(3)处:要计算等级 i 的占比,需要用该等级的人数(b[i])除以总人数(total),所以应填 p = b[i] / total(即选项②)。故选B。
13. 编写Python程序,将输入的十进制整数转换为十六进制字符串。例如:输入42时输出“2A”,代码如下:
n=int(input("请输入十进制数:"))
s=""
while n != 0:
r=n%16
if r > 9:
(1)
else:
(2)
n=n//16
print("转换成十六进制数是:",s)
为实现上述功能,划线处可供选择的代码有:
①s=str(r)+s ②s=s+str(r) ③s=chr(r+55)+s ④s=s+ord(r+55)
依次可填入的顺序为( )
A. ③① B. ④② C. ①④ D. ②③
【答案】A
【解析】
【详解】本题考查的是python循环语句。(1)当计算得到的余数 r 大于 9 时(十六进制中 10 - 15 对应 A - F),需要将其转换为对应的字母。此时应该用 chr(r + 55)(因为 65 是 'A' 的 ASCII 码,10 + 55 = 65,以此类推),并且要把每次得到的字符拼接到结果字符串的前面,所以是 s = chr(r + 55) + s。(2)当余数 r 小于等于 9 时,直接将其转换为字符串,同样拼接到结果字符串前面,即 s = str(r) + s。故选A。
14. 有如下Python程序段:
import random
1st=["a","b","c","d"]
res=""
i=0
while i < len(1st):
n=random.randint(0,5)
if n < 4:
res=1st [i]+res
i+=1
print(res)
执行该程序段后,输出结果不可能是( )
A. "a" B. "cb" C. "dcba" D. "dcbca"
【答案】D
【解析】
【详解】本题考查的是字符串处理。循环逻辑:使用 while 循环遍历列表的每个元素(索引 i 从 0 到 3)。随机条件:每次迭代生成一个随机整数 n(范围 0 到 5),如果 n < 4,则将当前元素 lst[i] 添加到 res 的开头(即 res = lst[i] + res)。索引递增:无论是否添加元素,i 都会增加 1,确保每个元素只被处理一次。输出约束:由于每个元素最多被添加一次(且列表元素唯一),res 只能是列表元素的子序列(顺序为逆序),长度在 0 到 4 之间,且字符不重复。选项D中有 5 个字符,而且字符串中包含重复的“c”,不可能,故选D。
15. 有如下Python程序:
n=len(a)
s=[0]*(n+1)
for i in range(1,n+1):
s[i]=s[i-1]+a[i-1]
max=s[0]
for i in range(0,n):
for j in range(i+1,n+1):
if s[j]-s[i] > max:
max=s[j]-s[i]
print(max)
若列表a=[9,-6,8,7,-7,2,3,-2],则输出的结果为( )
A. 95 B. 23 C. 18 D. 14
【答案】C
【解析】
【详解】本题考查的市python循环语句的应用。该程序用于计算列表 a 中所有连续子数组和的最大值。给定列表 a = [9, -6, 8, 7, -7, 2, 3, -2],程序通过前缀和数组 s 和嵌套循环实现计算。循环 for i in range(1, n+1) 计算前缀和,计算后 s = [0, 9, 3, 11, 18, 11, 13, 16, 14]。当 i=0, j=4:s[4] - s[0] = 18 - 0 = 18(对应子数组 [9, -6, 8, 7],和为 18)。故选C。
二、非选择题(本大题共2小题,每小题10分,共20分)
16. 某停车场提供新能源车快充功能,停车场想要分析新能源车的停车与充电数据以制定不同时段的充电价格,现将2024年第三季度的停车与充电数据存放在“parking_data.xlsx”中,部分数据如图a所示。现读取数据,分析不同时段的充电车的车流量,并绘制如图b所示的柱形图,实现上述功能的部分Python程序如下,回答以下问题。
图a
import pandas as pd #引入pandas模块
import matplotlib.pyplot as plt #引入matplotlib的pyplot子库
plt.rc('font',family='simsun') #设置中文字体
df=pd.read_excel("parking_data.xlsx")
df1=
h=[]
for i indf1.index:
t=df1.at[i,'入场时间']
h.append(t[11:13])
df1["小时"]=h
①
②
③
plt.title("**停车场充电车车流量")
plt.show()
图b
(1)加框处程序功能为筛选出充电车辆数据,请在加框处填入合适的代码。____
(2)划线处可填入的代码如下,为实现上述功能,划线①②③处应填入的代码依次为____、____、____。
A.df2=df1.groupby("小时"as_index=False)["车牌号"].count()
B.df1=df1.groupby("小时",as_index=False)["车牌号"].sum()
C.df3=df2.sort_values("车牌号",ascending=False)
D.df3=df1.sort_values("车牌号",ascending=True)
E.plt.bar(df3.小时,df3.车牌号)
F.plt.bar(df3.index,df3.车牌号)
(3)为获得充电车车流量最高的5个时间段,以下代码不可行的是____(多选,填字母)
A.df3.tail(5) B.df3.head() C.df3.head(5) D.df3[1:6]
【答案】 ①. df[df["是否充电"] == 'Y']或df[df.是否充电 == 'Y'] ②. A ③. C ④. E ⑤. AD
【解析】
【详解】本题考查的是数据分析。
(1)要筛选出充电车辆数据,应根据“是否充电”列的值为“Y”来筛选,所以加框处代码为:df[df["是否充电"] == "Y"] 或 df[df.是否充电 == 'Y']。
(2)①处:要对按小时分组后的充电车辆数进行统计,df2 = df1.groupby("小时", as_index=False)["车牌号"].count() 能实现按“小时”分组并统计每组“车牌号”数量(即车流量),所以①选 A。②处:为了后续绘制柱形图能按车流量从高到低(或其他合理降序)展示,需要对数据按“车牌号”(车流量)降序排序,df3 = df2.sort_values("车牌号", ascending=False) 可实现,所以②选 C。③groupby中设置 as_index=False,分组后的结果会将“小时”作为普通列保留,而不是作为索引,不能通过index获取“小时”,所以③选E。
(3)tail(5) 提取“最后 5 行”,降序排列下对应“车流量最低的 5 个时间段”,与 “最高 5 个”需求相反,不可行。df3.head() 按默认规则提取“前 5 行”,降序排列下前 5 行即“车流量最高的 5 个时间段”,完全满足需求,可行。df3.head(5) 明确指定提取“前5 行”,与 df3.head() 结果完全一致,同样对应“车流量最高的5 个时间段”,可行。df3[1:6] 切片提取“索引 1-5 的 5 行”,对应“第 2 高到第 6 高” 的车流量,未完整覆盖“最高 5 个”,不可行。故选AD。
17. 一面墙由n列砖组成,已知每列砖的数量为nums[i](相邻两列砖之间无缝隙),每块砖的长宽高均为1,现需在这面墙中找到一块面积最大的矩形用于涂鸦。例如,n=6,每列砖的数量依次为3,2,1,5,6,2,如图所示,该墙最大面积的矩形为10。
(1)若该面墙有5列砖,每列砖的数量为4,3,5,2,3,那么最大的矩形面积是____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
def area(nums):
maxa=0
①____
for i in range(n):
left=i
while:
left-=1
right=i
while right < n-1 and nums[right+1] >= nums[i]:
right+=1
②____
cur=nums[i]*lenght
if maxa < cur:
maxa=cur
return maxa
#获取每列砖的数量,存于列表nums中,代码略
③____
print("最大的矩形面积是:",s)
(3)加框处代码有误,请改正。____
【答案】 ①. 10 ②. n=len(nums) ③. lenght=right-left+1 ④. s=area(nums) ⑤. left > 0 and nums[left-1] >= nums[i]
【解析】
【详解】本题考查python程序设计。
(1)通过分析每列作为高度时左右可扩展的宽度,计算面积后比较:高度为2(第4列,索引3)时,左右可扩展至所有5列,宽度为5,面积2×5=10,为最大值。因此答案为10。
(2)①处,该处需要获取列数n(即列表nums的长度),因此该空答案为n=len(nums)。②处,该处需要计算当前矩形的宽度length(由左边界left和右边界right确定,宽度为right−left+1),因此该空答案为length=right−left+1。③处,该处需要调用area函数计算最大面积并赋值给s,因此该空答案为s=area(nums)。
(3)原条件缺少left的范围判断(易越界),且逻辑应为左边列高度大于等于当前列高度时可向左扩展,因此正确代码为left>0 and nums[left−1] >= nums[i]。
第1页/共1页
学科网(北京)股份有限公司
$$