内容正文:
2025学年第二学期杭州市余杭第二高级中学3月阶段检测
高二技术学科试题
考生须知:
1.本卷满分 100 分,考试时间 90 分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字;
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现对平台进行迭代升级,系统利用生成式人工智能根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。阅读下列材料,回答下面小题:
1. 关于该在线教育平台中数据与信息的说法,正确的是( )
A. 学生在平台学习过程中不会产生数据
B. 学情分析报告信息的价值不会随着时间的推移而变化
C. 学习方案和学情分析报告必须以同一种数据表现形式呈现
D. 通过分析学生数据生成学情分析报告,体现了信息的可加工处理性
2. 该在线教育平台的下列应用中,体现人工智能技术的是( )
A. 登录界面的“记住密码”功能
B. 自动记录学生的学习视频观看时长
C. 根据学生学习记录生成个性化学习方案
D. 登录平台时自动推送该生的作业批改结果
3. 关于该平台信息安全和信息社会责任,下列行为不合适的是( )
A. 定期对数据进行备份
B. 服务器及时更新系统补丁包
C. 弹出提醒用户定期修改密码的窗口
D. 用户在查询或阅卷后未及时退出系统
某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作:各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。阅读下列材料,完成下面小题:
4. 下列关于该系统组成的说法,正确的是( )
A. 手持式扫描枪是输出设备
B. 云端服务器的CPU性能会影响系统响应速度
C 仓储管理软件属于系统软件
D. 该系统的数据是商品库存和价格
5. 下列关于该系统中网络技术的说法,不正确的是( )
A. 各门店用手机访问该系统必须通过移动通信网络
B. 将该系统内部局域网接入互联网须使用路由器
C. 各门店通过网络查询库存数据需遵循网络协议
D 各门店可使用DHCP 服务自动设置计算机 IP 地址
6. 下列关于信息编码的说法正确的是( )
A. 计算机通过声卡播放声音时需要用到模数转换器(ADC)
B. 若二进制数末位是0,则该数对应的十六进制数末位肯定也是0
C. 计算机内英文字符采用二进制进行编码,而汉字采用十六进制进行编码
D. 一幅未经压缩的1024×400像素、16色位图,其存储容量为200KB
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为18,16,2,16,18,0。则输出p的值是( )
A. 1 B. 2 C. 4 D. 5
8. 有一个空栈,将A,B,C,D,E依次入栈,若出栈顺序为B,D,C,E,A,则该栈容量至少是( )
A. 1 B. 2 C. 3 D. 4
9. 已知某二叉树用一维数组d表示,如下表所示,下列说法正确的是( )
d
A
C
D
B
E
F
G
下标
0
1
2
3
4
5
6
7
8
9
10
11
A. 该二叉树的后序遍历为BCGEFDA B. 该二叉树有3个度数为1的节点
C. 该二叉树的高度为3 D. 该二叉树补全为完全二叉树至少需加6个节点
10. 有如下Python程序段:
import random
a = [12,18,23,23,25,29,29,30,31,33]
i,j =0,len(a) -1
key = random.randint(6,15) *2+1
f = [0] * len(a)
while i <= j:
m = (i + j) //2
f[m] =1
if key >= a[m]:
i = m + 1
else:
j = m -1
执行该程序段后,若f值为[0,1,1,0,1,0,0,0,0],则key的值可能为( )
A. 18 B. 21 C. 23 D. 25
11. 数组a中有若干个互不相同的正整数,现要输出数组a中所有和为b的两个元素的下标,实现该功能的程序段如下,方框处应填入的正确代码为( )
a = [8,9,12,11,4,3]
b =16
d = {}
for i in range(len(a)):
x = b - a[i]
if x in d:
print(d[x],i) #输出结果为:2 4
else:
A. d[x] = i B. d[i] = x C. d[a[i]] = i D. d[i] = a[i]
12. 使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据、个数、指针三个数据项,h为头指针,链表节点按“数据”非降序排序。现要对链表节点进行合并,将“数据”相同的节点合并为一个节点,并在节点中记录该数据的个数,如图b所示。实现上述功能的Python程序段如下:
p = h =1
while p != -1:
while q != -1 and d[q][0] == d[p][0]:
q = d[q][2]
c +=1
d[p][1] = c
划线处可选代码有:
①q = p ②q = d[p][2] ③c =1 ④c =0
⑤d[p][2] = q ⑥d[p][2] = d[q][2] ⑦p= d[p][2] ⑧p = q
按划线顺序填入代码顺序正确的是( )
A. ①④⑥⑦ B. ②③⑤⑧ C. ②③⑥⑦ D. ①③⑤⑧
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共神墙26分)
13. 某地举办菊花展期间,为提升游客观赏体验,举办方将不同品种的菊花穿插摆放,让游客走最少的路,观赏到尽可能多的品种。编写程序,输入菊花品种的摆放序列(用大写字母标识菊花的品种),输出最长连续不重复品种序列的区间,若有多段,输出最前面那段。如某段展区菊花摆放序列为 "ABCABE",则最长连续不重复品种序列的区间为2~5。请回答下列问题:
(1)若某段展区菊花摆放序列为"ABCCDB",最长连续不重复品种序列的区间为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
s = input()
index = [-1] *26 # 保存字符最后出现的位置
mx = left = start =0
①____
for right in range(n):
c = s[right]
t = ord(c) -65
if index[t] >= left:
left =②____
index[t] = right
③____
if length > mx:
mx = length
start = left
print("最长连续无重复品种序列的区间为:",start,"~",start + mx -1)
14. 某环保机构开发了一套城市空气质量监测系统,6个工业园区周边各设置1个监测站。服务器端程序采用 Flask Web框架开发。智能终端连接多种传感器,每隔半个小时采集1次PM2.5、PM10及二氧化硫浓度数据上传至服务器,用户通过浏览器查看实时监测结果和历史数据。若服务器判断出任一数据超过相应阈值,系统通过智能终端触发LED屏发布预警信号。
(1)以下措施不能提升系统所采集数据的准确性是 (单选,填字母)
A. 选择性能更优的智能终端
B. 选择高精度的 PM2.5传感器
C. 选择更加合适的位置设置监测站
(2)下列功能需要在服务器端程序中实现的是____(单选,填字母:A.采集PM2.5传感器上的数据/B.处理浏览器访问请求)。
(3)某工业园区提交数据到 Web服务器的URL为: http://10.106.164.107:8000/ upload? idy=1& idc=1&p=28,则服务器端应用实例 app 中与该 URL 关联的路由设置语句是@ app.route("_____")。
(4)测试系统时,通过浏览器查看实时数据,发现数据超过阈值但LED屏未发布预警信号,简要说明可能造成上述问题的原因。__________
(5)将某工业园区一年的数据导出到文件“data. xlsx”中,部分数据如图a所示,其中编号1~3分别对应PM2.5、PM10及二氧化硫传感器。现要统计该工业园区一年里 PM2.5平均值最高的5个时间点,并绘制如图 b 所示的柱形图。
时间
编号
数值
2023-01-01 00:00:00
1
53
2023-01-01 00:00:00
2
90
2023-01-01 00:00:00
3
40
2023-12-31 23:30:00
1
56
2023-12-31 23:30:00
2
108
2023-12-31 23:30:00
3
34
图a
图b
实现上述功能的部分 Python 程序如下:
import pandas as pd
import matplotlib. pyplot as plt
df = pd read excel(" data. xlsx")
df["时间点"] = ""
for i in df. index:
t = ____________________
df. at[i, “时间点”] = t[11: 16]
plt. bar(df1["时间点"],df1["数值"])
#设置绘图参数,代码略
plt. show()
①请在划线处填入合适的代码。
②方框中应填入的语句依次为_______(选3 项,填字母序列)。
A. df1 = df[df.编号 == 1]
B. df1 = df1[df1.编号 == 1]
C. df1 = df1. sort values("数值", ascending= False). head(5)
D. df1 = df1. sort values("数值", ascending= True). tail(5)
E. df1 = df1. groupby("时间", as index= False). mean()
F. df1 = dfl. groupby("时间点", as index= False). mean()
15. 某工厂有n种零件需要加工,每种零件的信息包含编号、加工难度、收益、数量。有m个工人报名参与加工,每个工人的信息包含技能等级、报名时间。加工难度和技能等级分9个级别,分别用1~9的整数表示。每个工人按照报名时间依序选择一个零件加工,所选零件的加工难度不超过其技能等级。
编写程序模拟零件加工分配过程,先将零件数据按加工难度分类整理,然后每个工人按报名时间依序选择零件加工。计算所有工人能够获得的最高总收益。
编号
加工难度
收益
数量
1
4
14
1
2
4
10
1
3
6
5
4
4
2
12
1
5
7
11
2
6
7
12
1
表a
技能等级
报名时间
8
8:30
4
7:30
5
9:00
6
10:00
表b
请回答下列问题:
(1)如果工厂有6种零件,如表a所示,有4个工人报名参与加工,如表b所示,则能够获得的最高总收益为____。
(2)定义如下sort _work(data,st,ed)函数,列表data存储零件数据,每个元素包含编号、加工难度、收益、数量4个数据项。函数功能是将data[st] ~ data[ed]中的零件数据按“收益”降序排序。
def sort _work(data,st,ed):
n = ed - st +1
for i in range(n -1):
for j in range ( ):
if :
data[j],data[j -1] = data[j -1],data[j]
return data
①划线处应填入的代码为____(单选,填字母)。
A.st +1ed - i B.ed,st + i,-1 C.n -1,i
②加框处代码有误,应更改为____。
(3)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
"'读取n、m;读取n个零件数据存入data列表,每个元素包含编号、加工难度、收益、数量4个数据项,data列表已按“加工难度”升序排序;读取m个工人数据存入wk列表,每个元素包含技能等级、报名时间2个数据项,wk列表已按“报名时间”升序排序。代码略"'
h = [0] *10 #h[i]存储“加工难度”为i的起始位置
t = [0] *10
c = [0] *10
for i in range(n):
①____
c[k] +=1
for i in range(1,10):
h[i] = h[i -1] + c[i -1]
t[i] = h[i] + c[i] -1
if h[i] <= t[i]:
data = sort work(data,h[i],t[i])
ans =0
for w in wk:
mx,p =0,-1
for i in range(w[0],0,-1):
if ②____
mx = data[h[i]][2]
p = i
if p ==-1:#该工人无法分配工作
continue
ans += mx
③____
if data[h[p]][3] == 0:
h[p] +=1
print("最高总收益为:",ans)
第1页/共1页
学科网(北京)股份有限公司
$
2025学年第二学期杭州市余杭第二高级中学3月阶段检测
高二技术学科试题
考生须知:
1.本卷满分 100 分,考试时间 90 分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字;
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
某在线教育平台可实现作业批改、在线阅卷、在线学习等功能。现对平台进行迭代升级,系统利用生成式人工智能根据学生的学习记录和兴趣,自动生成学情分析报告和个性化学习方案。阅读下列材料,回答下面小题:
1. 关于该在线教育平台中数据与信息的说法,正确的是( )
A. 学生在平台学习过程中不会产生数据
B. 学情分析报告信息的价值不会随着时间的推移而变化
C. 学习方案和学情分析报告必须以同一种数据表现形式呈现
D. 通过分析学生数据生成学情分析报告,体现了信息的可加工处理性
2. 该在线教育平台的下列应用中,体现人工智能技术的是( )
A. 登录界面的“记住密码”功能
B. 自动记录学生的学习视频观看时长
C. 根据学生学习记录生成个性化学习方案
D. 登录平台时自动推送该生的作业批改结果
3. 关于该平台信息安全和信息社会责任,下列行为不合适的是( )
A. 定期对数据进行备份
B. 服务器及时更新系统补丁包
C. 弹出提醒用户定期修改密码的窗口
D. 用户在查询或阅卷后未及时退出系统
【答案】1. D 2. C 3. D
【解析】
【1题详解】
本题考查数据与信息相关知识。A选项错误,学生在平台学习过程中会产生学习记录、答题情况等各类数据。B选项错误,学情分析报告信息的价值会随着时间推移、学生学习情况变化而改变。C选项错误,学习方案和学情分析报告可采用文字、图表等不同数据表现形式呈现。D选项正确,通过分析学生数据生成学情分析报告,体现了信息的可加工处理性。因此,本题选择D选项。
【2题详解】
本题考查人工智能技术相关知识。A选项错误,登录界面的“记住密码”功能属于常规存储功能,未体现人工智能技术。B选项错误,自动记录学生的学习视频观看时长属于数据自动统计功能,未体现人工智能技术。C选项正确,根据学生学习记录生成个性化学习方案利用了生成式人工智能,体现了人工智能技术。D选项错误,登录平台时自动推送该生的作业批改结果属于数据推送功能,未体现人工智能技术。因此,本题选择C选项。
3题详解】
本题考查信息安全和信息社会责任相关知识。A选项正确,定期对数据进行备份可保障数据安全,是合适的行为。B选项正确,服务器及时更新系统补丁包可修复系统漏洞,保障平台安全,是合适的行为。C选项正确,弹出提醒用户定期修改密码的窗口可提升账户安全性,是合适的行为。D选项错误,用户在查询或阅卷后未及时退出系统易造成信息泄露,存在安全隐患,是不合适的行为。因此,本题选择D选项。
某超市仓储管理系统,管理员在公司内部局域网使用手持式扫描枪扫描商品二维码完成入库操作:各门店使用计算机、手机等设备通过互联网查询库存数据并提交提货申请,平台自动生成提货单,管理员依单完成出库操作。系统全程实时更新云端服务器的库存数据。阅读下列材料,完成下面小题:
4. 下列关于该系统组成的说法,正确的是( )
A. 手持式扫描枪是输出设备
B. 云端服务器的CPU性能会影响系统响应速度
C. 仓储管理软件属于系统软件
D. 该系统的数据是商品库存和价格
5. 下列关于该系统中网络技术的说法,不正确的是( )
A. 各门店用手机访问该系统必须通过移动通信网络
B. 将该系统内部局域网接入互联网须使用路由器
C. 各门店通过网络查询库存数据需遵循网络协议
D. 各门店可使用DHCP 服务自动设置计算机 IP 地址
【答案】4. B 5. A
【解析】
【详解】1.本题考查信息系统的组成相关知识。手持式扫描枪用于输入商品二维码信息,属于输入设备,不是输出设备,该选项错误;CPU是服务器的核心运算部件,云端服务器的CPU性能会直接影响系统的运算处理效率,进而影响系统响应速度,该选项正确;仓储管理软件是针对仓储管理具体业务开发的应用软件,不属于系统软件,该选项错误;该系统的数据除商品库存和价格外,还包含提货申请、提货单、用户信息等多类数据,该选项描述错误。故答案为:B。
2.本题考查信息系统中的网络技术相关知识。手机访问互联网除移动通信网络外,还可以连接WiFi无线网络,并非必须通过移动通信网络,该说法错误;路由器用于实现不同网络之间的互联,将内部局域网接入互联网需要使用路由器,该说法正确;网络中所有数据交互都需要遵循对应网络协议,各门店查询库存数据属于网络数据交互,需遵循网络协议,该说法正确;DHCP是动态主机配置协议,功能是为网络中的设备自动分配IP地址,门店计算机可通过DHCP服务自动设置IP地址,该说法正确。故答案为:A。
6. 下列关于信息编码的说法正确的是( )
A. 计算机通过声卡播放声音时需要用到模数转换器(ADC)
B. 若二进制数末位是0,则该数对应的十六进制数末位肯定也是0
C. 计算机内英文字符采用二进制进行编码,而汉字采用十六进制进行编码
D. 一幅未经压缩的1024×400像素、16色位图,其存储容量为200KB
【答案】D
【解析】
【详解】本题考查信息编码。 A 选项错误: 计算机播放声音时,需将数字信号转换为模拟信号,使用的是数模转换器(DAC);而模数转换器(ADC)用于将模拟声音信号转换为数字信号(如录音场景)。该选项混淆了播放与录音的信号转换过程。 B 选项错误: 二进制数末位为 0 时,其对应的十六进制数末位不一定为 0。例如,二进制数10(末位 0,对应十进制 2)转换为十六进制是2,末位非 0。只有当二进制数的最后 4 位均为 0 时,十六进制末位才为 0(如二进制1000对应十六进制8,末位仍非 0;二进制10000对应十六进制10,末位为 0)。 C 选项错误: 计算机内所有字符(包括英文字符和汉字)均以二进制形式编码。英文字符常用 ASCII 或 Unicode 编码,汉字常用 GB2312、UTF-8 等编码,而十六进制仅为人类阅读方便的表示方式,并非计算机内部存储形式。 D 选项正确: 计算未经压缩的 16 色位图存储容量: 16 色对应 2⁴种颜色,每个像素占4 位(bit)。 像素数:1024×400 = 409600 像素。总位数:409600×4 = 1638400 bit。 转换为字节:1638400 ÷ 8 = 204800 Byte。 换算为 KB:204800 ÷ 1024 = 200 KB,与选项表述一致。 因此,本题选择 D 选项。
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为18,16,2,16,18,0。则输出p的值是( )
A. 1 B. 2 C. 4 D. 5
【答案】B
【解析】
【详解】本题考查流程图。
x
mx1
mx2
c
p
18
18
0
2
0
16
18
16
3
2
2
18
16
4
2
16
18
16
5
2
18
18
16
6
2
0
输出p
因此,本题选择B
8. 有一个空栈,将A,B,C,D,E依次入栈,若出栈顺序为B,D,C,E,A,则该栈容量至少是( )
A. 1 B. 2 C. 3 D. 4
【答案】C
【解析】
【详解】本题考查的是栈的操作。栈是一种后进先出(LIFO)的数据结构。
入栈 A:栈状态为 [A],深度为 1。
入栈 B:栈状态为 [A, B],深度为 2。
出栈 B:输出 B(符合出栈顺序第一个),栈状态为 [A],深度为 1。
入栈 C:栈状态为 [A, C],深度为 2。
入栈 D:栈状态为 [A, C, D],深度为 3(此时深度最大)。
出栈 D:输出 D(符合出栈顺序第二个),栈状态为 [A, C],深度为 2。
出栈 C:输出 C(符合出栈顺序第三个),栈状态为 [A],深度为 1。
入栈 E:栈状态为 [A, E],深度为 2。
出栈 E:输出 E(符合出栈顺序第四个),栈状态为 [A],深度为 1。
出栈 A:输出 A(符合出栈顺序第五个),栈空。
故选C。
9. 已知某二叉树用一维数组d表示,如下表所示,下列说法正确的是( )
d
A
C
D
B
E
F
G
下标
0
1
2
3
4
5
6
7
8
9
10
11
A. 该二叉树的后序遍历为BCGEFDA B. 该二叉树有3个度数为1的节点
C. 该二叉树的高度为3 D. 该二叉树补全为完全二叉树至少需加6个节点
【答案】A
【解析】
【详解】本题考查二叉树。根据题意,绘制二叉树如下所示:
所以,该二叉树后序遍历为BCGEFDA;该二叉树有2个度数为1的节点(C,E);该二叉树的高度为4;该二叉树补全为完全二叉树至少需加5个节点。因此,本题选择A。
10. 有如下Python程序段:
import random
a = [12,18,23,23,25,29,29,30,31,33]
i,j =0,len(a) -1
key = random.randint(6,15) *2+1
f = [0] * len(a)
while i <= j:
m = (i + j) //2
f[m] =1
if key >= a[m]:
i = m + 1
else:
j = m -1
执行该程序段后,若f值为[0,1,1,0,1,0,0,0,0],则key的值可能为( )
A. 18 B. 21 C. 23 D. 25
【答案】B
【解析】
【详解】本题考查二分查找。数组 a:有序列表 [12,18,23,23,25,29,29,30,31,33]。 随机数 key:生成范围为 [6*2+1, 15*2+1] = [13, 31] 内的奇数。 标记数组 f:记录二分查找过程中访问的索引位置(值为 1)。 二分查找过程分析 给定 f = [0,1,1,0,1,0,0,0,0],表示访问的索引为 1, 2, 4。根据二分查找逻辑: 初始区间:i=0, j=9,中点 m = (0+9)//2 = 4,访问 a[4]=25,标记 f[4]=1。 比较 key 与 a[4]: 若 key >= 25,则 i = m+1 = 5,后续中点为 (5+9)//2 = 7,但 f[7]=0,矛盾。因此 key < 25,则 j = m-1 = 3,继续查找。新区间 i=0, j=3:中点 m = (0+3)//2 = 1,访问 a[1]=18,标记 f[1]=1。 比较 key 与 a[1]: 若 key >= 18,则 i = m+1 = 2,继续查找。 若 key < 18,则 j = m-1 = 0,后续中点为 0,但 f[0]=0,矛盾。因此 key >= 18。 新区间 i=2, j=3:中点 m = (2+3)//2 = 2,访问 a[2]=23,标记 f[2]=1。 比较 key 与 a[2]: 若 key >= 23,则 i = m+1 = 3,后续中点为 3,但 f[3]=0,矛盾。 因此 key < 23,且 key >= 18,结合 key 为奇数,可能值为 19 或 21。因此,本题选择B。
11. 数组a中有若干个互不相同的正整数,现要输出数组a中所有和为b的两个元素的下标,实现该功能的程序段如下,方框处应填入的正确代码为( )
a = [8,9,12,11,4,3]
b =16
d = {}
for i in range(len(a)):
x = b - a[i]
if x in d:
print(d[x],i) #输出结果为:2 4
else:
A. d[x] = i B. d[i] = x C. d[a[i]] = i D. d[i] = a[i]
【答案】C
【解析】
【详解】本题考查 数组。程序通过字典记录元素信息,实现快速查找和为 b 的两个元素下标。for循环遍历数组 a,对于每个元素 a[i],计算 x = b - a[i],判断 x 是否在字典 d 中。若在,说明找到和为 b 的两个元素(x 对应元素已存,当前元素为 a[i]),输出下标;若不在,需将当前元素的信息存入字典,以便后续查找,代码为d[a[i]] = i:存储当前元素值 a[i] 对应的下标 i,后续遍历到 x(即 b - a[i])时,可通过 x in d 判断是否存在,因此,本题选择C。
12. 使用列表d模拟链表结构(节点数n>0),如图a所示,每个节点包含数据、个数、指针三个数据项,h为头指针,链表节点按“数据”非降序排序。现要对链表节点进行合并,将“数据”相同的节点合并为一个节点,并在节点中记录该数据的个数,如图b所示。实现上述功能的Python程序段如下:
p = h =1
while p != -1:
while q != -1 and d[q][0] == d[p][0]:
q = d[q][2]
c +=1
d[p][1] = c
划线处可选代码有:
①q = p ②q = d[p][2] ③c =1 ④c =0
⑤d[p][2] = q ⑥d[p][2] = d[q][2] ⑦p= d[p][2] ⑧p = q
按划线顺序填入代码顺序正确的是( )
A. ①④⑥⑦ B. ②③⑤⑧ C. ②③⑥⑦ D. ①③⑤⑧
【答案】B
【解析】
【详解】本题考查的是链表操作。第一个空(②) q = d[p][2] 作用:将q指向p的下一个节点,开始查找与p数据相同的后续节点。 第二个空(③) c = 1 作用:初始化计数器,包含当前节点p自身(至少有 1 个节点)。 第三个空(⑤) d[p][2] = q 作用:当内层循环结束时,q指向第一个数据不同的节点,将p的指针直接指向q,跳过所有重复节点。 第四个空(⑧) p = q 作用:将p移动到下一个需要处理的节点(即q),继续合并后续节点。故选B。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共神墙26分)
13. 某地举办菊花展期间,为提升游客观赏体验,举办方将不同品种的菊花穿插摆放,让游客走最少的路,观赏到尽可能多的品种。编写程序,输入菊花品种的摆放序列(用大写字母标识菊花的品种),输出最长连续不重复品种序列的区间,若有多段,输出最前面那段。如某段展区菊花摆放序列为 "ABCABE",则最长连续不重复品种序列的区间为2~5。请回答下列问题:
(1)若某段展区菊花摆放序列为"ABCCDB",最长连续不重复品种序列的区间为____。
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
s = input()
index = [-1] *26 # 保存字符最后出现的位置
mx = left = start =0
①____
for right in range(n):
c = s[right]
t = ord(c) -65
if index[t] >= left:
left =②____
index[t] = right
③____
if length > mx:
mx = length
start = left
print("最长连续无重复品种序列的区间为:",start,"~",start + mx -1)
【答案】 ①. 0~2 ②. n = len(s) ③. index[t] +1 ④. length = right - left +1或length = index[t] - left +1
【解析】
【详解】本题考查滑动窗口算法。
(1)输入序列为 "ABCCDB",最长连续不重复子串为 "ABC",对应索引 0 到 2,转换为题目要求的区间表示为 0~2。
(2)① 该处获取输入字符串的长度,用于控制循环次数,答案为n = len(s)。 ②当检测到重复字符时,移动左边界至上次该字符出现位置的下一位,避免重复字符出现在当前窗口内,答案为index[t] + 1。 ③计算当前窗口的长度,即连续不重复子串的长度,答案为length = right - left + 1 。
14. 某环保机构开发了一套城市空气质量监测系统,在6个工业园区周边各设置1个监测站。服务器端程序采用 Flask Web框架开发。智能终端连接多种传感器,每隔半个小时采集1次PM2.5、PM10及二氧化硫浓度数据上传至服务器,用户通过浏览器查看实时监测结果和历史数据。若服务器判断出任一数据超过相应阈值,系统通过智能终端触发LED屏发布预警信号。
(1)以下措施不能提升系统所采集数据的准确性是 (单选,填字母)
A. 选择性能更优的智能终端
B. 选择高精度的 PM2.5传感器
C. 选择更加合适的位置设置监测站
(2)下列功能需要在服务器端程序中实现的是____(单选,填字母:A.采集PM2.5传感器上的数据/B.处理浏览器访问请求)。
(3)某工业园区提交数据到 Web服务器的URL为: http://10.106.164.107:8000/ upload? idy=1& idc=1&p=28,则服务器端应用实例 app 中与该 URL 关联的路由设置语句是@ app.route("_____")。
(4)测试系统时,通过浏览器查看实时数据,发现数据超过阈值但LED屏未发布预警信号,简要说明可能造成上述问题的原因。__________
(5)将某工业园区一年的数据导出到文件“data. xlsx”中,部分数据如图a所示,其中编号1~3分别对应PM2.5、PM10及二氧化硫传感器。现要统计该工业园区一年里 PM2.5平均值最高的5个时间点,并绘制如图 b 所示的柱形图。
时间
编号
数值
2023-01-01 00:00:00
1
53
2023-01-01 00:00:00
2
90
2023-01-01 00:00:00
3
40
2023-12-31 23:30:00
1
56
2023-12-31 23:30:00
2
108
2023-12-31 23:30:00
3
34
图a
图b
实现上述功能的部分 Python 程序如下:
import pandas as pd
import matplotlib. pyplot as plt
df = pd. read excel(" data. xlsx")
df["时间点"] = ""
for i in df. index:
t = ____________________
df. at[i, “时间点”] = t[11: 16]
plt. bar(df1["时间点"],df1["数值"])
#设置绘图参数,代码略
plt. show()
①请在划线处填入合适的代码。
②方框中应填入的语句依次为_______(选3 项,填字母序列)。
A. df1 = df[df.编号 == 1]
B. df1 = df1[df1.编号 == 1]
C. df1 = df1. sort values("数值", ascending= False). head(5)
D. df1 = df1. sort values("数值", ascending= True). tail(5)
E. df1 = df1. groupby("时间", as index= False). mean()
F. df1 = dfl. groupby("时间点", as index= False). mean()
【答案】(1)A (2)B (3)/upload
(4)可能是LED屏与智能终端之间的连接中断,控制信号无法下发;也可能是 LED 屏硬件损坏或供电异常,无法执行预警显示
(5) ①. df.at [i,"时间"] ②. A、F、C
【解析】
【分析】本题考查搭建信息系统和pandas数据分析。
【小问1详解】
该处考查影响数据采集准确性的因素,选择性能更优的智能终端仅能提升数据处理和传输效率,无法直接提升传感器采集数据的精准度,高精度传感器、合理的监测站位置都能提升数据准确性,因此不能提升数据准确性的措施是A。
【小问2详解】
该处考查服务器端与终端功能区分,采集传感器数据是智能终端的功能,处理浏览器的访问请求是 Flask 服务器端的核心功能,因此需要在服务器端实现的功能是 B。
【小问3详解】
该处考查 Flask 路由匹配规则,URL 中路由仅匹配路径部分,? 后的参数为查询参数,该 URL 的路径为 /upload,因此路由设置语句为 @ app.route ("/upload")。
【小问4详解】
该处考查信息系统故障排查,数据超过阈值但 LED 屏未发布预警,可能是LED屏与智能终端之间连接中断,控制信号无法下发;也可能是 LED 屏硬件损坏或供电异常,无法执行预警显示。
【小问5详解】
①处,该处需要从数据的完整时间字符串中提取时分的时间片段,首先要获取当前行的时间数据,因此该空答案为df.at [i,"时间"]。②处,该处考查数据筛选、分组统计、排序取值的逻辑,第一步需要筛选出编号为 1 的 PM2.5 数据,对应语句 A;第二步需要按照提取的时间点分组计算数值的平均值,对应语句 F;第三步需要将平均值降序排序并取最高的 5 个数据,对应语句 C,因此方框中应填入的语句依次为 A、F、C。
15. 某工厂有n种零件需要加工,每种零件的信息包含编号、加工难度、收益、数量。有m个工人报名参与加工,每个工人的信息包含技能等级、报名时间。加工难度和技能等级分9个级别,分别用1~9的整数表示。每个工人按照报名时间依序选择一个零件加工,所选零件的加工难度不超过其技能等级。
编写程序模拟零件加工分配过程,先将零件数据按加工难度分类整理,然后每个工人按报名时间依序选择零件加工。计算所有工人能够获得的最高总收益。
编号
加工难度
收益
数量
1
4
14
1
2
4
10
1
3
6
5
4
4
2
12
1
5
7
11
2
6
7
12
1
表a
技能等级
报名时间
8
8:30
4
7:30
5
9:00
6
10:00
表b
请回答下列问题:
(1)如果工厂有6种零件,如表a所示,有4个工人报名参与加工,如表b所示,则能够获得的最高总收益为____。
(2)定义如下sort _work(data,st,ed)函数,列表data存储零件数据,每个元素包含编号、加工难度、收益、数量4个数据项。函数功能是将data[st] ~ data[ed]中的零件数据按“收益”降序排序。
def sort _work(data,st,ed):
n = ed - st +1
for i in range(n -1):
for j in range ( ):
if :
data[j],data[j -1] = data[j -1],data[j]
return data
①划线处应填入的代码为____(单选,填字母)。
A.st +1ed - i B.ed,st + i,-1 C.n -1,i
②加框处代码有误,应更改为____。
(3)实现上述功能的部分Python程序如下,请在划线处填入合适代码。
"'读取n、m;读取n个零件数据存入data列表,每个元素包含编号、加工难度、收益、数量4个数据项,data列表已按“加工难度”升序排序;读取m个工人数据存入wk列表,每个元素包含技能等级、报名时间2个数据项,wk列表已按“报名时间”升序排序。代码略"'
h = [0] *10 #h[i]存储“加工难度”为i的起始位置
t = [0] *10
c = [0] *10
for i in range(n):
①____
c[k] +=1
for i in range(1,10):
h[i] = h[i -1] + c[i -1]
t[i] = h[i] + c[i] -1
if h[i] <= t[i]:
data = sort work(data,h[i],t[i])
ans =0
for w in wk:
mx,p =0,-1
for i in range(w[0],0,-1):
if ②____
mx = data[h[i]][2]
p = i
if p ==-1:#该工人无法分配工作
continue
ans += mx
③____
if data[h[p]][3] == 0:
h[p] +=1
print("最高总收益为:",ans)
【答案】 ①. 48 ②. B ③. data[j][2] > data[j -1][2] 或data[j][2] >= data[j -1][2] ④. k = data[i][1] ⑤. h[i] <= t[i] and data[h[i]][2] > mx ⑥. data[h[p]][3] - =1
【解析】
【详解】本题考查链表的应用。
(1)按照题意给工人分配零件:工人1(技能4):可选难度≤4的零件。难度4的起始零件收益14,难度2的起始零件收益12。选择最大收益14(难度4的零件1)。分配后,零件1数量减为0,难度4的起始位置后移(指向收益10的零件2)。 工人2(技能8):可选难度≤8的零件。难度7的起始零件收益12,难度2的起始零件收益12,难度4的起始零件收益10,难度6的起始零件收益5。从高难度向低难度遍历,先遇到难度7的收益12(大于当前最大值0),选择收益12(难度7的零件6)。分配后,零件6数量减为0,难度7的起始位置后移(指向收益11的零件5)。 工人3(技能5):可选难度≤5的零件。难度4的起始零件收益10,难度2的起始零件收益12。选择最大收益12(难度2的零件4)。分配后,零件4数量减为0,难度2的起始位置后移(无零件)。 工人4(技能6):可选难度≤6的零件。难度4的起始零件收益10,难度6的起始零件收益5。选择最大收益10(难度4的零件2)。分配后,零件2数量减为0,难度4的起始位置后移(无零件)。所以总收益为14 + 12 + 12 + 10 = 48。
(2) ① 函数用冒泡排序对data[st]~data[ed]按收益降序排序。冒泡排序内层循环需从st+1到ed - i(或反向遍历),选项 B:ed, st+i, -1等价于range(ed, st+i-1, -1),即从后往前遍历(符合冒泡排序优化写法,减少已排序部分的比较),因此该空答案为 B。 ②原条件data[j]<data[j-1]比较的是列表元素整体(含编号、难度等),需明确比较 “收益”(第 3 个数据项,索引 2),因此修正为data[j][2] < data[j-1][2]。
(3)①c[k]统计难度k的零件数量,h[k]记录难度k的起始索引。遍历零件时,用data[i][1]获取加工难度k,因此该空答案为k = data[i][1]。②遍历工人技能等级w[0],从高到低检查难度i的零件区间[h[i], t[i]]是否有剩余(h[i] <= t[i]),且当前难度的最高收益(data[h[i]][2])大于已记录的mx,因此该空答案为h[i] <= t[i] and data[h[i]][2] > mx。 ③ d 工人选中难度p的零件后,该零件数量减 1(data[h[p]][3]存储数量),因此该空答案为data[h[p]][3] -= 1。
第1页/共1页
学科网(北京)股份有限公司
$