内容正文:
2026年高三5月题库
技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某同学利用旅游app规划假期旅游行程,输入目的地和天数,系统自动生成旅游攻略,并支持根据个人喜好灵活调整。
1. 下列有关数据与信息的描述,不正确的是( )
A. 分享攻略不会造成数据的损耗
B. 调整攻略体现了信息的可加工处理性
C. 系统生成的攻略是信息,不存在真伪问题
D. 旅游攻略在计算机中以二进制的形式存储
2. 下列关于信息安全与信息社会责任的做法,合理的是( )
A. 定期删除用户对话历史记录以保护隐私
B. 平台收集用户对话数据用于商业训练
C. 输入个人身份证号以便获取更精准的酒店推荐
D. 系统生成的攻略没有版权,商用无需注明来源
【答案】1. C 2. A
【解析】
【详解】1.本题考查数据与信息。A正确,分享攻略只是复制数据,不会造成原数据的损耗;B正确,调整攻略是对信息进行加工处理,体现了信息的可加工处理性;C不正确,系统生成的攻略虽然以数据形式存在,但数据本身可能存在真伪问题(例如景点信息错误、路线不合理等);D正确,计算机中所有数据(包括攻略)都以二进制形式存储。故不正确的是C。
2.本题考查信息安全。 A选项:定期删除用户对话历史记录有助于保护用户隐私,是合理的信息安全做法。B选项:平台未经用户明确同意收集对话数据用于商业训练,侵犯用户隐私,不合理。C选项:身份证号属于敏感信息,会造成信息泄露,不合理。D选项:系统生成的攻略可能受平台版权保护或涉及知识产权,随意商用且不注明来源不合理。因此,本题选择A选项。
阅读下列材料,完成下面小题:
某餐厅引入机器人服务员,顾客可通过机器人或手机APP点餐,点餐信息会实时传输至厨房。机器人接收服务器指令后自主规划送餐路线,并通过语音提示顾客取餐。同时,机器人搭载激光雷达与摄像头,可实现离线自主避障与人脸识别功能。
3. 下列关于机器人服务员的说法,正确的是( )
A. 机器人在环境中不断完善自己属于深度学习
B. 机器人“讲话”体现了模数转换的过程
C. 机器人的激光雷达属于该系统的输出设备
D. 机器人自动规划路径依赖人工智能技术
4. 为提升系统的运行效率,下列做法不合理的是( )
A. 增强服务器处理能力 B. 清洗机器人摄像头镜头
C. 优化机器人路径规划算法 D. 关闭服务器防火墙
5. 该餐厅共有2个区域,每个区域有8张餐桌,每张餐桌有4个座位。现使用0~9,A~F的字符对每个座位进行编码,则每个座位的编码至少需要的字符个数为( )
A. 7 B. 3 C. 2 D. 1
6. 下列有关网络技术的说法,正确的是( )
A. 机器人的送餐速度与网络带宽成正比
B. 手机APP与餐厅服务器之间可进行双向通信
C. 多个机器人需要配置相同IP地址才能统一管理
D. 机器人离线自主避障功能依赖实时网络数据传输
【答案】3. D 4. D 5. C 6. B
【解析】
【详解】1.本题考查人工智能。 A错误,机器人不断完善自己属于强化学习;B错误,机器人“讲话”是语音合成,属于数模转换(数字→模拟),而非模数转换;C错误,激光雷达用于感知环境,属于输入设备。因此,本题选择D选项。
2.本题考查信息安全。 D不合理:关闭服务器防火墙会带来严重的安全隐患,不可取。因此,本题选择D选项。
3. 本题考查数据编码。总座位数为2×8×4=64。使用0~9、A~F共16个字符,每个字符可表示16种状态。162=256≥64,因此每个座位编码至少需要2个字符。因此,本题选择C选项。
4.本题考查网络。 A错误:送餐速度与网络带宽有些关系,但不一定成正比。
B正确:手机APP与服务器之间需要双向通信(如发送订单、接收确认)。
C错误:多个机器人必须配置不同IP地址,否则会发生地址冲突。
D错误:离线自主避障功能不依赖实时网络数据传输。
因此,本题选择B选项。
7. 某中学生一分钟内跳绳计数为n,跳绳体测判定标准如图所示,下列程序段功能与流程图所示一致的是( )
A.
if n >= 180:
g = "优秀"
elif n >= 140:
g = "良好"
else:
g = "合格"
B.
if n >= 140:
if n >= 180:
g = "优秀"
else:
g = "良好"
elif n >= 64:
g = "合格"
C.
g = "合格"
if n >= 180:
g = "优秀"
elif n >= 140:
g = "良好"
D.
g = "良好"
if n >= 180:
g = "优秀"
if 64 <= n < 140:
g = "合格"
A. A B. B C. C D. D
【答案】B
【解析】
【详解】本题考查流程图。根据流程图可得标准如下:
n≥180→“优秀”
140≤n<180→“良好”
64≤n<140→“合格”
A、C选项,若n<64,也会给“合格”,与流程图不一致;
D选项,若n<64,会给“良好”,与流程图不一致。
因此,本题选择B选项。
8. 某餐厅厨师使用队列管理烹饪任务,某时刻队列中有5个订单,按订单提交顺序依次为:A、B、C、D、E,每个订单的菜品数量不一。烹饪规则如下:若队首订单不超过8道菜,则直接完成并出队;否则先烹饪8道菜后,将订单剩余菜品放回队尾重新排队等待。已知各订单菜品数量分别为5、12、8、15、10,则厨师完成所有订单的顺序是( )
A. A B C D E B. A C E D B C. A C E B D D. A C B D E
【答案】D
【解析】
【详解】本题考查队列。第一轮:A(5)≤8,完成A,输出A。队列变为:B(12),C(8),D(15),E(10)
处理B:B(12)>8,做8道,剩余4,放回队尾。队列变为:C(8),D(15),E(10),B(4)
处理C:C(8)≤8,完成C,输出C。队列:D(15),E(10),B(4)
处理D:D(15)>8,做8,剩余7,放回队尾。队列:E(10),B(4),D(7)
处理E:E(10)>8,做8,剩余2,放回队尾。队列:B(4),D(7),E(2)
处理B:B(4)≤8,完成B,输出B。队列:D(7),E(2)
处理D:D(7)≤8,完成D,输出D。队列:E(2)
处理E:E(2)≤8,完成E,输出E。
因此,本题选择D选项。
9. 某完全二叉树的中序遍历为ABCDEF。在该二叉树的某个节点上增加一个节点G,得到一棵新二叉树。则新二叉树的前序遍历可能有几种不同的结果( )
A. 3 B. 4 C. 6 D. 7
【答案】A
【解析】
【详解】本题考查二叉树。添加在A处:D,B,A,G,C,F,E;添加在C处:D,B,A,C,G,F,E;添加在E或F处:D,B,A,C,F,E,G,共三种。因此,本题选择A选项。
10. 有如下Python程序段:
s='aabccba'
i=0
while i < len(s)-1:
if s[i] == s[i+1]:
s=s[:i]+s[i+2:]
i=max(0,i-1)
else:
i+=1
print(s)
执行该程序段后,输出的结果是( )
A. a B. abccba C. abcba D. aa
【答案】A
【解析】
【详解】本题考查字符串处理。
i
s[i]==s[i+1]
s
0
s[0]==s[1]→'a'=='a'成立
s=s[:0]+s[2:]=='bccba'
0
s[0]==s[1]→'b'=='c'不成立
s='bccba'
1
s[1]==s[2]→'c'=='c'成立
s=s[:1]+s[3:]='bba'
0
s[0]==s[1]→'b'=='b'成立
s=s[:0]+s[2:]='a'
0
i<len(s)-1→0<0为假,退出循环
因此,本题选择A选项。
11. 有如下Python程序:
def func(n):
if n == -1:
return ""
elif n%3 == 0:
return str(n%2) + func(n-1)
else:
return func(n-1) + str(n%2)
执行语句result=func(5)后,result的值为( )
A. 110010 B. 010101 C. 100101 D. 101001
【答案】D
【解析】
【详解】本题考查递归。
递推:
func(5)=func(4)+str(5%2)=func(4)+"1"
func(4)=func(3)+str(4%2)=func(3)+"0"
func(3)=str(3%2)+func(2)="1"+func(2)
func(2)=func(1)+str(2%2)=func(1)+"0"
func(1)=func(0)+str(1%2)=func(0)+"1"
func(0)=str(0%2)+func(-1)="0"+func(-1)
func(-1) = ""
回归:
func(0)="0"
func(1)="0"+"1"="01"
func(2)="01"+"0"="010"
func(3)="1"+"010"="1010"
func(4)="1010"+"0"="10100"
func(5)="10100"+"1"="101001"
因此,本题选择D选项。
12. 使用列表a模拟链表结构,每个节点由数据域和指针域组成,head为头指针。现需要找出链表中最长连续递增子序列的所有节点数据域之和,实现该功能的Python程序如下:
a=[[3,1],[5,2],[2,3],[4,4],[6,5],[1,6],[3,7],[4,8],[5,9],[7,10],[2,-1]]
p=head=0
max_n=n=1
max_s=s=a[head][0]
while a[p][1] != -1:
q=a[p][1]
if a[p][0] < a[q][0]:
n+=1
(1)
if n > max_n:
max_n=n; max_s=s
else:
n=1
(2)
(3)
划线处有如下可选代码:
①p=q ②p=a[p][1] ③s=a[q][0] ④s+=a[q][0]
则划线处应填入的正确代码为( )
A. ①②④ B. ④③① C. ①③④ D. ②④①
【答案】B
【解析】
【详解】本题考查链表。(1):递增时,新节点q加入当前段,应s+=a[q][0]。选项④s+=a[q][0]符合。
(2):递增断了,新段起点是q,所以新段的和要设为a[q][0]。选项③s=a[q][0]符合。
(3):不论是否递增,当前节点要移动到q继续循环,所以p=q。选项①p=q符合。因此,本题选择B选项。
二、综合题(本大题共3小题,其中第13小题10分,第14小题7分,第15小题9分,共26分)
13. 某“口袋公园”内设置多个监测点,每个监测点配备一台智能终端;终端每十分钟通过搭载的传感器采集公园内的土壤湿度、空气温湿度等环境数据,经无线网络传输至云服务器。服务器对数据进行整合分析后,以图表形式呈现在公园的数字屏上;当环境数据满足预设条件时,系统自动启动喷灌设备。请回答以下问题:
(1)下列关于该系统功能与设计的说法,不正确的是( )
A. 传感器和喷淋设备可以连接在同一个智能终端上
B. 判定土壤湿度低于阈值的操作可以在智能终端中进行
C. 采集数据时数据流向为:传感器→智能终端→数字屏
D. 系统可以通过分析土壤湿度变化趋势,预测下次灌溉时间
(2)为在服务器中区分监测数据的来源,以下方法可行的是( )
A. 终端发送数据时,为每个数据包随机生成验证码
B. 使用人工智能技术对接收到的数据进行来源鉴别
C. 根据智能终端IP地址区分不同监测点的数据
D. 将监测点唯一编号嵌入到数据内容中上传
(3)如果系统运行过程中某个智能终端损坏,可能导致的结果有( )
A. 无法获取该区域的实时温湿度
B. 系统无法控制该监测点的喷灌设备
C. 公园步道数字屏无法显示历史数据
D. 该监测点的数据无法传输至后台服务器
(4)系统运行一段时间后,发现喷灌设备频繁启停,经查主要原因为监测值在阈值附近上下波动,请提出一种解决该问题的方案。
(5)将一天内收集到的土壤湿度数据导出到文件“data.xlsx”中,部分数据如图a所示,系统每小时计算各区域的平均土壤湿度,并输出每个区域平均土壤湿度最低的三个小时及其对应的土壤湿度,部分输出如图b所示。
实现上述功能的部分 Python 程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data.xlsx')
df['小时'] = df['时间'].str[0:2] #新增一列为小时数
ls=['A','B','C','D','E','F']
for i in ls:
df1= ①____
df2= ②____
df3= ③____
print(f"监测点 {i} 最低湿度的三小时:")
print(df3)
程序中①②③处可选的代码有:
A.df[df["监测点"]==i]
B.df1[df1["监测点"]==i]
C.df2.sort_values('土壤湿度',ascending=True).head(3) #升序排序
D.df1.sort_values('土壤湿度',ascending=False).head(3)
E.df1.groupby("小时",as_index=False)['土壤湿度'].mean() #分组求平均
F.df2.groupby("小时",as_index=False)['土壤湿度'].mean()
【答案】(1)C (2)CD (3)ABD
(4)方案1:设置两个阈值:启动阈值和停止阈值;方案2:修改算法监测值满足条件N分钟后才执行开关动作
(5) ①. A ②. E ③. C
【解析】
【详解】本题考查搭建信息系统和pandas数据分析。
(1)A正确:智能终端通常具备多种接口(如GPIO、ADC、继电器接口),既可以连接输入设备(传感器),也可以连接输出设备(如控制喷灌设备的继电器)。
B正确。智能终端具备一定的计算能力,可以在本地进行简单的逻辑判断(如if湿度<阈值),从而降低服务器负载和网络延迟。
C错误:数据流向描述不完整且有误。根据题干描述,数据是“经无线网络传输至云服务器……呈现在公园的数字屏上”。因此,完整的数据流向应为:传感器→智能终端→云服务器→数字屏。
D正确:服务器拥有历史数据存储和分析能力,可以通过分析趋势(如湿度下降速率)来预测未来的灌溉需求。
(2)A不可行:随机生成的验证码仅用于验证数据的有效性或安全性,不具备标识来源的功能,服务器无法通过随机码区分是哪个终端发送的。
B不可行:虽然理论上可以通过数据特征(如地理位置关联的数值特征)进行AI鉴别,但这在工程实现上极其复杂且不准确,不是区分数据来源的标准或可行方法。
C可行:在网络通信中,每个联网设备通常都有唯一的IP地址(或在网关处有端口映射),服务器可以根据发送数据的IP地址来区分不同的监测点。
D可行:这是物联网通信中最常用的方法。在上传的数据包中包含设备ID或监测点编号字段,服务器解析该字段即可精准识别数据来源。
(3)A正确:终端损坏意味着传感器数据无法被采集和发送,因此无法获取该区域的实时数据。
B正确:智能终端可能作为执行器的直接控制器。如果终端损坏,无法接收指令或驱动电路,导致无法控制喷灌。
C错误:历史数据已经存储在服务器或云端数据库中。单个终端损坏只会影响实时数据的更新,不会导致数据库中已存储的历史数据丢失,数字屏仍可读取并显示历史记录。
D正确:终端损坏直接导致数据传输链路中断。
(4)方案1:不要只设置一个单一的阈值(例如40%),而是设置两个阈值:启动阈值和停止阈值。例如:当土壤湿度低于30%时,启动喷灌;当土壤湿度高于50%时,才停止喷灌。
方案2:修改软件算法:当监测值满足条件持续N分钟(如5分钟)后,才执行开关动作,避免因瞬间波动导致误判。
(5)代码逻辑分析:
①处(筛选数据):代码处于for i in ls:循环中,i代表当前的监测点(如'A')。我们需要从总表df中筛选出当前监测点i的所有数据。
因此选A:df[df[“监测点”]==i]。此时df1是监测点i的原始数据子集。
②处(分组求平均):题目要求“计算各区域的平均土壤湿度”,且图b显示的是按“小时”统计的。需要对筛选出的df1按“小时”进行分组,并计算“土壤湿度”的均值。因此选E:df1.groupby(“小”,as_index=False)['土壤湿度'].mean()。此时df2是包含各小时平均湿度的数据表。
③处(排序取最低):题目要求输出“平均土壤湿度最低的三个小时”。
需要对df2按“土壤湿度”进行升序(从小到大)排列,并取前3行。
因此选 C:df2.sort_values('土壤湿度',ascending=True).head(3)
14. 口袋公园可以通过摄像头与AI算法实时分析人流量。社区计划在口袋公园举办活动,需要从历史人流量与温度数据中选择最佳时间段。假设当人流量处于[L,R]的区间,且区间内温差不超过5℃,即为活动举办最佳时间段。给定过往一个星期中每天每个小时段的人流量与温度数据,找出举办活动最佳时段的最长长度。
请回答以下问题:
(1)口袋公园某天每小时人流量和平均温度数据如题表所示,要求人流量区间为[15,35],则活动可最长举办____小时。
时间
8:00-9:00
9:00-10:00
10:00-11:00
11:00-12:00
12:00-13:00
13:00-14:00
14:00-15:00
15:00-16:00
16:00-17:00
人流量
12
20
30
35
28
40
32
25
18
平均温度
18
22
25
27
28
26
24
23
21
表
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#人流量与温度数据保存在列表data中,如data=[[12,18],[ 20,22]...]]。
T = 5; L = 15; R = 35
mlen = 0; n = len(data)
for i in range(n):
p = data[i][0]
if L <= p <= R:
①____
temps = []
while j < n:
flow, temp = data[j]
if :
break
temps.append(temp)
if max(temps) - min(temps) > T:
break
②____
mlen = max(mlen, j - i)
print(mlen)
(3)上述Python程序中加框处代码有误,请改正。
【答案】(1)3 (2) ①. j=i ②. j+=1
(3)if not (L <= flow <= R):
【解析】
【详解】本题考查数组。
(1)活动可最长举办3小时
解析过程:我们需要找到一段连续的时间序列,满足以下两个条件:
人流量条件:所有时刻的人流量都在[15,35]之间。温差条件:该时间段内的最高温与最低温之差≤5度 。
·筛选人流量:
·8:00-9:00 (12):不满足 (<15)
·9:00-12:00 (20, 30, 35):满足
·12:00-13:00 (28):满足
·13:00-14:00 (40):不满足 (>35) —— 此处断开
·14:00-17:00 (32, 25, 18):满足
·检查温差:
·第一段(9:00-13:00):包含4个小时段。
·温度序列:22, 25, 27, 28。
·最大温差:28−22=6∘ C28−22=6∘ C 。
·因为 6>56>5 ,所以这4个小时不能连在一起。
·子区间检查:若去掉9:00-10:00(22℃),剩余10:00-13:00(25, 27, 28),温差为3℃,时长为3小时。
·第二段(14:00-17:00):包含3个小时段。
·温度序列:24, 23, 21。
·最大温差:24−21=3。
·因为 3≤53≤5,且人流量均达标,所以这3小时 是连续的合法时段。
·结论:最长时长为3小时。
(2)①j=i这是一个典型的双指针(或滑动窗口)逻辑。外层循环i指向当前尝试作为起点的时刻。内层需要一个指针j从i开始向后扫描,寻找满足条件的最长区间。因此,在每次确定起点i有效后,需要初始化j为i。
②j+=1 while循环的作用是不断向后检查下一个小时的数据。当程序执行到第②空时,说明当前j指向的小时已经处理完毕(温度已加入列表,且没有触发break跳出)。为了继续检查下一个小时,必须让j加1。如果不填这一行,j的值永远不会变,程序会陷入死循环。
(3)原代码错误:if L <= flow <= R : break如果人流量满足条件,就停止循环。
这会导致程序一旦遇到一个符合要求的人流量就立刻结束,逻辑完全相反。
while循环的目的是向后延伸区间。只有当遇到不满足人流量条件(即超出范围)的情况时,区间才无法继续延伸,此时才应该break(跳出循环)。因此,判断条件应改为if not (L <= flow <= R):。
15. 集装箱按体积从小到大分为6种规格,依次标记为A–F。所有集装箱按预约时间依次到港,可竖直叠放成堆,但必须满足:后到集装箱不能放在先到集装箱的下方;体积小的集装箱不能放在体积大的集装箱下方。
为满足叠放要求,采用以下策略:新箱到港时,查找堆顶集装箱体积大于或等于新箱体积的堆,若有多个,选顶部集装箱体积最小的堆叠放;若无,则新建一堆放置。如,集装箱到港顺序为:DCBBCAABC,可以将箱子分为[D,C,B,B,A,A]、[C,B]、[C]三堆。设计Python程序,求解集装箱最少码放堆数。
(1)如果集装箱进港顺序为CCDBACACDBA,箱子堆数至少为____。
(2)不同时间抵达港口的集装箱,按到达时间先后依次处理。为便于后续堆放,同一时间到达的集装箱中,体积较大的先进行堆放。定义如下sort_d(data)函数,用于预处理数据,data列表的每个元素含2个数据项,依次为到达时间、规格类型,如第15题表所示。
到达时间
07:45
07:45
07:45
07:47
07:47
07:45
07:47
规格类型
A
D
A
C
B
B
C
表
def sort_d(data):
n = len(data)
for i in range(1, n):
key = data[i]
j = i - 1
while j >= 0 :
if data[j][0] > key[0] or (data[j][0] == key[0] and data[j][1] < key[1]):
j -= 1
else:
break
data[j + 1] = key
s=""
for i in range(n):
s=s+data[i][1]
return s
①加框处代码的运行次数为____
②在调用函数sort_d(data)后,返回值为____
(3)实现堆叠功能的部分程序如下,若data中数据为题表中数据,则输出结果如图所示,请在划线处填入合适的代码。
def stacking(box):
n = len(box)
top=[] #每个堆最下面的一个位置
top_idx=[]
prev=[-1]*n
for i in range(n):
cur = ord(box[i])-65
left,right = 0,len(top)
①____
while left < right:
mid= (left + right) // 2
②____:
pos = mid
right = mid
else:
left=mid+1
if pos < len(top):
prev[i] = top_idx[pos]
③____
top_idx[pos] = i
else:
top.append(cur)
top_idx.append(i)
print("具体堆放方案:")
for i in range(len(top)):
pile = []
curr_idx = top_idx[i] # 从堆顶开始
while curr_idx != -1:
pile.append(box[curr_idx])
curr_idx = prev[curr_idx]
# 将pile列表倒转输出,格式如图,代码略
return len(top)
"""
将集装箱到港数据存入data列表中,data列表的每个元素含2个数据项,依次为到达时间、规格类型,代码略。
"""
d_str=sort_d(data)
print(stacking(d_str))
【答案】(1)3 (2) ①. 6 ②. DBAACCB
(3) ①. pos = right 或 pos=len(top) ②. if top[mid] >= cur: ③. top[pos] = cur
【解析】
【详解】 本题主要考查集装箱堆叠问题的模拟算法,涉及排序、二分查找及链表式堆叠,分为三个小题:计算最少堆数、分析排序函数运行次数及返回值、补全堆叠函数代码。
(1)集装箱进港顺序为“CCDBACACDBA”,共11个箱子。按规则模拟:依次处理每个箱子,查找所有堆顶体积不小于当前箱子体积的堆中,选择堆顶体积最小的堆放置;若无则新建一堆。详细模拟过程如下: • 初始无堆,第一个C:新建堆1,堆顶C。 • 第二个C:堆1顶C ≥ C,放置堆1,堆顶仍C。 • 第三个D:堆1顶C < D,不满足,新建堆2,堆顶D。 • 第四个B:堆1顶C ≥ B,堆2顶D ≥ B,选堆顶较小的C(堆1),放置后堆1顶变为B。 • 第五个A:堆1顶B ≥ A,堆2顶D ≥ A,选较小B(堆1),放置后堆1顶变为A。 • 第六个C:堆1顶A < C,堆2顶D ≥ C,选堆2(唯一),放置后堆2顶变为C。 • 第七个A:堆1顶A ≥ A,堆2顶C ≥ A,选较小A(堆1),放置后堆1顶仍A。 • 第八个C:堆1顶A < C,堆2顶C ≥ C,选堆2,放置后堆2顶仍C。 • 第九个D:堆1顶A < D,堆2顶C < D,无满足堆,新建堆3,堆顶D。 • 第十个B:堆1顶A < B,堆2顶C ≥ B,堆3顶D ≥ B,选堆顶最小的是C(堆2),放置后堆2顶变为B。 • 第十一个A:堆1顶A ≥ A,堆2顶B ≥ A,堆3顶D ≥ A,选最小A(堆1),放置后堆1顶仍A。 最终共3堆,答案为3。
(2)sort_d函数采用插入排序,按到达时间升序、同一时间按规格降序排列(体积大的先)。给定原始数据7条(表格所示): 索引0: (07:45, A) 索引1: (07:45, D) 索引2: (07:45, A) 索引3: (07:47, C) 索引4: (07:47, B) 索引5: (07:45, B) 索引6: (07:47, C) 模拟插入排序过程,记录加框处 data[j+1]=data[j] 的执行次数(即元素后移次数): • i=1:key=(07:45,D),j=0。比较(07:45,A):时间相等且A < D,条件成立,移动一次:data[1]=data[0]。序列变为[A,A,A,C,B,B,C],然后data[0]=key,得[D,A,A,C,B,B,C]。移动1次。 • i=2:key=(07:45,A),j=1。比较(07:45,A):时间相等且A < A不成立,退出。移动0次。 • i=3:key=(07:47,C),j=2。比较(07:45,A):时间小,不满足条件,退出。移动0次。 • i=4:key=(07:47,B),j=3。比较(07:47,C):时间相等且C < B不成立,退出。移动0次。 • i=5:key=(07:45,B),j=4。此时序列索引0~4为[D,A,A,C,B](索引5、6为B,C)。比较data[4]=(07:47,B):时间大,条件成立,移动一次:data[5]=data[4];j=3,data[3]=(07:47,C):时间大,移动第二次:data[4]=data[3];j=2,data[2]=(07:45,A):时间相等且A < B成立,移动第三次:data[3]=data[2];j=1,data[1]=(07:45,A):时间相等且A < B成立,移动第四次:data[2]=data[1];j=0,data[0]=(07:45,D):时间相等且D < B不成立,退出。然后data[1]=key,得[D,B,A,A,C,B,C](注意原索引5、6现在是B,C)。移动4次。 • i=6:key=(07:47,C),j=5。此时序列索引0~5为[D,B,A,A,C,B],索引6为C。比较data[5]=(07:47,B):时间相等且B < C成立,移动一次:data[6]=data[5];j=4,data[4]=(07:47,C):时间相等且C < C不成立,退出。然后data[5]=key,得[D,B,A,A,C,C,B]。移动1次。 总移动次数=1+0+0+0+4+1=6,故①答案为6。排序后序列为[(07:45,D),(07:45,B),(07:45,A),(07:45,A),(07:47,C),(07:47,C),(07:47,B)],规格字符依次连接得“DBAACCB”,故②答案为“DBAACCB”。
(3)stacking函数使用二分查找确定每个箱子应放置的堆位置。top列表存储各堆堆顶体积数值(0~5对应A~F),top_idx存储堆顶箱子的索引,prev记录每个箱子下方的索引。①处需初始化默认位置为新建堆,即pos = len(top)。②处二分条件应为查找第一个堆顶≥当前体积的位置,即if top[mid] >= cur:,满足时向右边界移动。③处当找到已有堆时,需更新该堆的堆顶体积为当前箱子体积,即top[pos] = cur。
第1页/共1页
学科网(北京)股份有限公司
$
2026年高三5月题库
技术试题
考生须知:
1.答题前,请务必将自己的姓名、准考证号用黑色字迹的签字笔或钢笔分别填写在试题卷和答题纸规定的位置上。
2.答题时,请按照答题纸上“注意事项”的要求,在答题纸相应的位置上规范作答,在本试题卷上的作答一律无效。
3.非选择题的答案必须使用黑色字迹的签字笔或钢笔写在答题纸上相应区域内,作图时可先使用2B铅笔,确定后必须用黑色字迹的签字笔或钢笔描黑。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
阅读下列材料,完成下面小题:
某同学利用旅游app规划假期旅游行程,输入目的地和天数,系统自动生成旅游攻略,并支持根据个人喜好灵活调整。
1. 下列有关数据与信息的描述,不正确的是( )
A. 分享攻略不会造成数据的损耗
B. 调整攻略体现了信息的可加工处理性
C. 系统生成的攻略是信息,不存在真伪问题
D. 旅游攻略在计算机中以二进制的形式存储
2. 下列关于信息安全与信息社会责任的做法,合理的是( )
A. 定期删除用户对话历史记录以保护隐私
B. 平台收集用户对话数据用于商业训练
C. 输入个人身份证号以便获取更精准的酒店推荐
D. 系统生成的攻略没有版权,商用无需注明来源
阅读下列材料,完成下面小题:
某餐厅引入机器人服务员,顾客可通过机器人或手机APP点餐,点餐信息会实时传输至厨房。机器人接收服务器指令后自主规划送餐路线,并通过语音提示顾客取餐。同时,机器人搭载激光雷达与摄像头,可实现离线自主避障与人脸识别功能。
3. 下列关于机器人服务员的说法,正确的是( )
A. 机器人在环境中不断完善自己属于深度学习
B. 机器人“讲话”体现了模数转换的过程
C. 机器人的激光雷达属于该系统的输出设备
D. 机器人自动规划路径依赖人工智能技术
4. 为提升系统的运行效率,下列做法不合理的是( )
A. 增强服务器处理能力 B. 清洗机器人摄像头镜头
C. 优化机器人路径规划算法 D. 关闭服务器防火墙
5. 该餐厅共有2个区域,每个区域有8张餐桌,每张餐桌有4个座位。现使用0~9,A~F的字符对每个座位进行编码,则每个座位的编码至少需要的字符个数为( )
A. 7 B. 3 C. 2 D. 1
6. 下列有关网络技术的说法,正确的是( )
A. 机器人的送餐速度与网络带宽成正比
B. 手机APP与餐厅服务器之间可进行双向通信
C. 多个机器人需要配置相同IP地址才能统一管理
D. 机器人离线自主避障功能依赖实时网络数据传输
7. 某中学生一分钟内跳绳计数为n,跳绳体测判定标准如图所示,下列程序段功能与流程图所示一致的是( )
A.
if n >= 180:
g = "优秀"
elif n >= 140:
g = "良好"
else:
g = "合格"
B.
if n >= 140:
if n >= 180:
g = "优秀"
else:
g = "良好"
elif n >= 64:
g = "合格"
C.
g = "合格"
if n >= 180:
g = "优秀"
elif n >= 140:
g = "良好"
D.
g = "良好"
if n >= 180:
g = "优秀"
if 64 <= n < 140:
g = "合格"
A. A B. B C. C D. D
8. 某餐厅厨师使用队列管理烹饪任务,某时刻队列中有5个订单,按订单提交顺序依次为:A、B、C、D、E,每个订单的菜品数量不一。烹饪规则如下:若队首订单不超过8道菜,则直接完成并出队;否则先烹饪8道菜后,将订单剩余菜品放回队尾重新排队等待。已知各订单菜品数量分别为5、12、8、15、10,则厨师完成所有订单的顺序是( )
A. A B C D E B. A C E D B C. A C E B D D. A C B D E
9. 某完全二叉树的中序遍历为ABCDEF。在该二叉树的某个节点上增加一个节点G,得到一棵新二叉树。则新二叉树的前序遍历可能有几种不同的结果( )
A. 3 B. 4 C. 6 D. 7
10. 有如下Python程序段:
s='aabccba'
i=0
while i < len(s)-1:
if s[i] == s[i+1]:
s=s[:i]+s[i+2:]
i=max(0,i-1)
else:
i+=1
print(s)
执行该程序段后,输出的结果是( )
A. a B. abccba C. abcba D. aa
11. 有如下Python程序:
def func(n):
if n == -1:
return ""
elif n%3 == 0:
return str(n%2) + func(n-1)
else:
return func(n-1) + str(n%2)
执行语句result=func(5)后,result的值为( )
A. 110010 B. 010101 C. 100101 D. 101001
12. 使用列表a模拟链表结构,每个节点由数据域和指针域组成,head为头指针。现需要找出链表中最长连续递增子序列的所有节点数据域之和,实现该功能的Python程序如下:
a=[[3,1],[5,2],[2,3],[4,4],[6,5],[1,6],[3,7],[4,8],[5,9],[7,10],[2,-1]]
p=head=0
max_n=n=1
max_s=s=a[head][0]
while a[p][1] != -1:
q=a[p][1]
if a[p][0] < a[q][0]:
n+=1
(1)
if n > max_n:
max_n=n; max_s=s
else:
n=1
(2)
(3)
划线处有如下可选代码:
①p=q ②p=a[p][1] ③s=a[q][0] ④s+=a[q][0]
则划线处应填入的正确代码为( )
A. ①②④ B. ④③① C. ①③④ D. ②④①
二、综合题(本大题共3小题,其中第13小题10分,第14小题7分,第15小题9分,共26分)
13. 某“口袋公园”内设置多个监测点,每个监测点配备一台智能终端;终端每十分钟通过搭载的传感器采集公园内的土壤湿度、空气温湿度等环境数据,经无线网络传输至云服务器。服务器对数据进行整合分析后,以图表形式呈现在公园的数字屏上;当环境数据满足预设条件时,系统自动启动喷灌设备。请回答以下问题:
(1)下列关于该系统功能与设计的说法,不正确的是( )
A. 传感器和喷淋设备可以连接在同一个智能终端上
B. 判定土壤湿度低于阈值的操作可以在智能终端中进行
C. 采集数据时数据流向为:传感器→智能终端→数字屏
D. 系统可以通过分析土壤湿度变化趋势,预测下次灌溉时间
(2)为在服务器中区分监测数据的来源,以下方法可行的是( )
A. 终端发送数据时,为每个数据包随机生成验证码
B. 使用人工智能技术对接收到的数据进行来源鉴别
C. 根据智能终端IP地址区分不同监测点的数据
D. 将监测点唯一编号嵌入到数据内容中上传
(3)如果系统运行过程中某个智能终端损坏,可能导致的结果有( )
A. 无法获取该区域的实时温湿度
B. 系统无法控制该监测点的喷灌设备
C. 公园步道数字屏无法显示历史数据
D. 该监测点的数据无法传输至后台服务器
(4)系统运行一段时间后,发现喷灌设备频繁启停,经查主要原因为监测值在阈值附近上下波动,请提出一种解决该问题的方案。
(5)将一天内收集到的土壤湿度数据导出到文件“data.xlsx”中,部分数据如图a所示,系统每小时计算各区域的平均土壤湿度,并输出每个区域平均土壤湿度最低的三个小时及其对应的土壤湿度,部分输出如图b所示。
实现上述功能的部分 Python 程序如下,请选择合适的代码填入划线处(单选)。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('data.xlsx')
df['小时'] = df['时间'].str[0:2] #新增一列为小时数
ls=['A','B','C','D','E','F']
for i in ls:
df1= ①____
df2= ②____
df3= ③____
print(f"监测点 {i} 最低湿度的三小时:")
print(df3)
程序中①②③处可选的代码有:
A.df[df["监测点"]==i]
B.df1[df1["监测点"]==i]
C.df2.sort_values('土壤湿度',ascending=True).head(3) #升序排序
D.df1.sort_values('土壤湿度',ascending=False).head(3)
E.df1.groupby("小时",as_index=False)['土壤湿度'].mean() #分组求平均
F.df2.groupby("小时",as_index=False)['土壤湿度'].mean()
14. 口袋公园可以通过摄像头与AI算法实时分析人流量。社区计划在口袋公园举办活动,需要从历史人流量与温度数据中选择最佳时间段。假设当人流量处于[L,R]的区间,且区间内温差不超过5℃,即为活动举办最佳时间段。给定过往一个星期中每天每个小时段的人流量与温度数据,找出举办活动最佳时段的最长长度。
请回答以下问题:
(1)口袋公园某天每小时人流量和平均温度数据如题表所示,要求人流量区间为[15,35],则活动可最长举办____小时。
时间
8:00-9:00
9:00-10:00
10:00-11:00
11:00-12:00
12:00-13:00
13:00-14:00
14:00-15:00
15:00-16:00
16:00-17:00
人流量
12
20
30
35
28
40
32
25
18
平均温度
18
22
25
27
28
26
24
23
21
表
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#人流量与温度数据保存在列表data中,如data=[[12,18],[ 20,22]...]]。
T = 5; L = 15; R = 35
mlen = 0; n = len(data)
for i in range(n):
p = data[i][0]
if L <= p <= R:
①____
temps = []
while j < n:
flow, temp = data[j]
if :
break
temps.append(temp)
if max(temps) - min(temps) > T:
break
②____
mlen = max(mlen, j - i)
print(mlen)
(3)上述Python程序中加框处代码有误,请改正。
15. 集装箱按体积从小到大分为6种规格,依次标记为A–F。所有集装箱按预约时间依次到港,可竖直叠放成堆,但必须满足:后到集装箱不能放在先到集装箱的下方;体积小的集装箱不能放在体积大的集装箱下方。
为满足叠放要求,采用以下策略:新箱到港时,查找堆顶集装箱体积大于或等于新箱体积的堆,若有多个,选顶部集装箱体积最小的堆叠放;若无,则新建一堆放置。如,集装箱到港顺序为:DCBBCAABC,可以将箱子分为[D,C,B,B,A,A]、[C,B]、[C]三堆。设计Python程序,求解集装箱最少码放堆数。
(1)如果集装箱进港顺序为CCDBACACDBA,箱子堆数至少为____。
(2)不同时间抵达港口的集装箱,按到达时间先后依次处理。为便于后续堆放,同一时间到达的集装箱中,体积较大的先进行堆放。定义如下sort_d(data)函数,用于预处理数据,data列表的每个元素含2个数据项,依次为到达时间、规格类型,如第15题表所示。
到达时间
07:45
07:45
07:45
07:47
07:47
07:45
07:47
规格类型
A
D
A
C
B
B
C
表
def sort_d(data):
n = len(data)
for i in range(1, n):
key = data[i]
j = i - 1
while j >= 0 :
if data[j][0] > key[0] or (data[j][0] == key[0] and data[j][1] < key[1]):
j -= 1
else:
break
data[j + 1] = key
s=""
for i in range(n):
s=s+data[i][1]
return s
①加框处代码的运行次数为____
②在调用函数sort_d(data)后,返回值为____
(3)实现堆叠功能的部分程序如下,若data中数据为题表中数据,则输出结果如图所示,请在划线处填入合适的代码。
def stacking(box):
n = len(box)
top=[] #每个堆最下面的一个位置
top_idx=[]
prev=[-1]*n
for i in range(n):
cur = ord(box[i])-65
left,right = 0,len(top)
①____
while left < right:
mid= (left + right) // 2
②____:
pos = mid
right = mid
else:
left=mid+1
if pos < len(top):
prev[i] = top_idx[pos]
③____
top_idx[pos] = i
else:
top.append(cur)
top_idx.append(i)
print("具体堆放方案:")
for i in range(len(top)):
pile = []
curr_idx = top_idx[i] # 从堆顶开始
while curr_idx != -1:
pile.append(box[curr_idx])
curr_idx = prev[curr_idx]
# 将pile列表倒转输出,格式如图,代码略
return len(top)
"""
将集装箱到港数据存入data列表中,data列表的每个元素含2个数据项,依次为到达时间、规格类型,代码略。
"""
d_str=sort_d(data)
print(stacking(d_str))
第1页/共1页
学科网(北京)股份有限公司
$