内容正文:
宁波市2025学年第一学期选考模拟考试
高三技术试卷
考生须知:
1.本卷满分100分,考试时间90分钟
2.答题前,在答题卷指定区域填写学校、班级、姓名、试场号、座位号及准考证号:
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求,不选、多选、错选均不得分)
1. 国家反诈中心APP是一款能有效预防诈骗、快速举报诈骗内容的软件。APP内有海量诈骗案例,情景再现事情经过;用户发现诈骗线索时,可快速使用APP的一键举报功能进行举报,同时,APP还支持远程身份账号验证,用户可对可疑网友的真实身份、社交账号和支付账户进行涉诈风险验证,有效降低网络交易风险:当用户收到涉嫌诈骗的电话、短信或者下载高风险APP时,该APP会发出预警劝阻提示。下列关于数据和信息的说法,正确的是( )
A. 诈骗案例“APP炒股”中平台显示的虚假收益金额“5000元”不是数据
B. 剖析APP内的诈骗案例,对诈骗信息真伪性的辨识没有帮助
C. 用户可以观看反诈APP中的诈骗案例体现了信息的共享性
D. 给用户发送诈骗提醒信息不需要通过数据分析
2. 国家反诈中心APP是一款能有效预防诈骗、快速举报诈骗内容的软件。APP内有海量诈骗案例,情景再现事情经过;用户发现诈骗线索时,可快速使用APP的一键举报功能进行举报,同时,APP还支持远程身份账号验证,用户可对可疑网友的真实身份、社交账号和支付账户进行涉诈风险验证,有效降低网络交易风险:当用户收到涉嫌诈骗的电话、短信或者下载高风险APP时,该APP会发出预警劝阻提示。关于信息安全与信息社会责任,下列行为不合适的是( )
A. 收到疑似诈骗短信后,删除短信内容
B. 用户安装陌生贷款APP时,忽略反诈APP弹出的诈骗风险预警继续安装
C. 向陌生网友转账前,使用反诈APP的风险查询功能核验对方账号真实性
D. 发现某可疑钓鱼网站后,通过反诈APP一键举报该网站
3. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统功能的说法,不正确的是( )
A. 智能扫码仪可实现药品数据的收集和输入
B. 该系统能实现人证合一的核验
C. 违规购买处方药时,系统弹出警示窗,仅体现了系统的数据输出功能
D. 管理员可通过浏览器查看药品销售情况等数据
4. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统中硬件和网络的说法,正确的是( )
A. 身份证识别器不是该系统的硬件
B. 智能扫码仪属于输出设备
C. 可配置一个警示铃在系统发出警示弹窗时同时发出警示声
D. 入库区和销售区必须搭建在同一局域网内
5. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统中软件的说法,不正确的是( )
A. 监管系统服务器属于系统软件
B. 该软件应根据新的药品监管政策进行更新优化
C. 购药者的身份核验功能需要软件支持
D. 该系统的服务器和销售区终端可使用不同的操作系统
6. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。智能识别终端的下列功能中,最能体现人工智能技术应用的是( )
A. 读取购买者出示的身份证号,并把后六位显示在屏幕上
B. 购买者可通过人脸识别自动核验购药者身份信息
C. 接收云端服务器发送的最新药品监管规则
D. 将违规购买记录按固定格式整理后上传至服务器
7. 某BMP图像甲的每个像素颜色均不同,若甲为256*256像素的BMP图像,则图像甲的颜色位深度至少为( )
A. 8位 B. 16位 C. 24位 D. 32位
8. 二叉树T前序遍历序列为A-B-D-C-E-F,中序遍历序列为D-B-A-E-C-F。关于该二叉树T,下列说法不正确的是( )
A. 该二叉树T根节点为A B. 节点E是节点C的左孩子
C. 该二叉树T高度为3 D. 叶子节点的个数为4
9. 出港集装箱运抵港口到装载上船需经过堆场与装船两个步骤,现有6个集装箱编号为a、b、c、d、e、f,在堆场与装船时都需逐箱叠放在一堆上,如图为集装箱抵港、堆场与装船时的部分堆放情况(堆场时不一定全部堆放完再装船)。若装船的第1个集装箱编号为c,且装船的第3个集装箱编号为b,则装船的第4个集装箱编号不可能是装( )
A. a B. d C. e D. f
10. a数组中有n个元素(n为偶数),现要将所有索引为奇数的元素循环右移两位,索引素为偶数的元素不变,如[1,2,3,4,5,6]处理后得到[1,6,3,2,5,4]。实现该功能的Python程序段如下:
n=len(a)
last=a[n-1]
for i in range(① )
②
a[i]=last
则划线处应填入的正确代码为( )
A. ①n-3,0,-2 ②a[i+2]=a[i] B. ①n-1,1,-2 ②a[i-2]=a[i]
C. ①1,n-1,2 ②a[i+2]=a[i] D. 10,n-2,2 ②a[i-2]=a[i]
11. 有如下Python代码段:
#’a’的ASCII码值是97
arr=['a','d','d','r','e','s','s']
n=len(arr)
for i in range(n-1,0,-1):
for j in range(n-2,n-i-2,-1):
if ord(arr[j])%3>ord(arr[j+1])%3:
arr[j],arr[j+1]=arr[j+1],arr[j]
print(arr)
则运行程序后,arr的值是( )
A. ['e','a','d','d','s','s','r'] B. ['e','s','s','d','d','a','r'] C. ['r','a','d','d','s','s','e'] D. ['r','s','s','d','d','a','e']
12. 有一个数字传送带每秒匀速向左移动1个数字,如第12题图所示。其上方有观察数字传送带的固定窗口,宽度为k(即可以看到k个数字)。操作员需每秒一次记录窗口中的最大值,例如图中的数字每秒记录下来的结果依次为“3 3 5 5 6 7”。现在已知数字传送带的所有数据nums和窗口宽度k,操作员编写了记录每秒窗口最大值的Python代码如下,方框中应填入的正确代码为( )
nums=[1,3,-1,-3,5,3,6,7]
k=int(input()) #输入固定窗口大小k
n=len(nums)
q=[0]*n
head,tail=0,0
ans=[]
#处理前k个元素
for i in range(k):
while head < tail and nums[i] >= nums[q[tail-1]]:
tail-=1
q[tail]=i
tail+=1
ans.append(nums[q[head]])
#处理剩余元素
for i in range(k,n):
while head < tail and nums[i] >= nums[q[tail-1]]:
tail-=1
q[tail]=i
tail+=1
#移除超出窗口范围的队列头部元素
print(ans) #若k为3,输出应为[3,3,5,5,6,7]
A.
while tail < head and q[head] <= i-k:
head+=1
ans.append(nums[q[tail]])
B.
while tail < head and q[tail] <= i+k:
tail+=1
ans.append(nums[q[head]])
C.
while head < tail and q[tail] <= i-k:
tail+=1
ans.append(nums[q[tail]])
D.
while head < tail and q[head] <= i-k:
head+=1
ans.append(nums[q[head]])
A. A B. B C. C D. D
二、综合题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 空调作为现代家庭的必备家电,从部件加工到组装完成需经过多道工序。每个工序可能有多个不重复的前置工序,且必须完成其所有前置工序后才能开始当前工序,若无前置工序则可直接开始,同一时间只能执行一个工序。现在已知每个工序完成所需的时间(单位:分钟,简称工时),需编写程序模拟这一流程,根据输入的工序信息(包含工序编号、工时及其前置工序列表),计算完成指定编号为m的工序所需的总工时(含所有前置工序用时及当前工序用时)。
(1)如图所示,完成工序2需先完成前置工序0和1,总工时为(3+7+5=15)。则完成工序5的总工时为____。
工序编号
工时
前置工序
0
3
1
1
7
无
2
5
0
3
4
无
4
2
3
5
5
2、4
6
8
无
7
6
6
8
5
5、7
(2)以下是实现上述功能的Python程序,请在划线处填入合适代码。
def cal(hours,pre,m):
need=[m]
i=0
while i<len(need):
if need[i] in pre:
for j in pre[need[i]]:
need.append(j)
①____
total=0
for i in need:
②____
return total
#hours[i]存储工序i的工时
hours=[3,7,5,4,2,5,8,6,5]
#键值对2:[0,1]表示工序2的前置工序为工序0和工序1
pre=[0:[1],2:[0],4:[3],5:[2,4],7:[6],8:[5,7]}
m=int(input("请输入工序编号:"))
total_time=③____
print("完成该工序及其全部前置工序所需总工时为:",total_time)
14. 某研究小组为监测校园空气质量,在5栋教学楼各设置1个监测点,每个监测点至少布置一个采集点。智能终端连接PM2.5传感器,每隔2小时采集1次PM2.5浓度数据,通过无线网络传输到服务器。服务器分析数据发现超标情况时,会通过智能终端控制执行器触发预警。请回答下列问题:
(1)在搭建该空气质量监测系统时,为了可以让每个监测点都能独立完成“数据采集+数据传输”的基础功能,PM2.5传感器与智能终端的配备总数量合理的是____(多选,填字母)。
A.5个PM2.5传感器和5个智能终端
B.5个PM2.5传感器和1个智能终端
C.10个PM2.5传感器和5个智能终端
D.10个PM2.5传感器和1个智能终端
(2)系统设定数据采集的时间间隔为2小时,不能够实现采集时间控制功能的设备是____(单选,填字母:A.传感器/B.智能终端)。
(3)编写智能终端数据传输相关程序时,不需要了解的信息有____(多选,填字母)。
A.与PM2.5传感器连接的智能终端引脚定义
B.服务器的硬盘剩余存储空间
C.服务器的IP地址及通信端口号
D.传感器的生产年份
(4)当服务器判定PM2.5浓度超标后,可通过智能终端控制指示灯发出闪烁预警监测1点位的工作人员,现在服务器端也需要定位是哪个监测点的PM2.5超标,请写出两种预警定位方式。____
(5)将系统中某年度的监测数据导出到文件air_data.x1sx中,如图a所示,部分数据包含序号、监测点编号、月份、日期、时、实测PM2.5浓度。现需按从大到小的顺序输出9月份各监测点PM2.5的平均值,再用柱形图来显示9月份各监测点PM2.5的平均值,如图b显示。
图a 图b
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选,填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("air_data.xlsx")
df1=①____
df2-df1.groupby("监测点编号",as_index=False)["实测PM2.5浓度"].mean()
df2=②____
#按从大到小的顺序输出9月份各监测点PM2.5的平均值,代码略
plt.bar(df2.["监测点编号"],df2["实测PM2.5浓度"]) #绘制柱形图
#设置绘图参数,并显示柱形图,代码略
①②处可选代码有:
A.df[df["月份"]==9]
B.df["月份"==9]
C.df1[df1["月份"]==9]
D.df2.sort_values("实测PM2.5浓度")
E.df2.sort_values("监测点编号",ascending=False)
F.df2.sort_values("实测PM2.5浓度",ascending=False)
15. 某晋级赛有36名选手,将晋级28人。规则如下:1、团队赛,将选手分成6个团队,每队6人。团队之间两两对决,每队各派一名选手进行1V1比拼,高票者晋级,低票者进入待定。晋级人数共计18人;2、进入待定区选手根据比赛得分进行排序,高票者晋级,晋级10名(如有同票选手,同样晋级,最后晋级总人数可能超过28人)。
(1)团队赛。团队A的6名选手初赛票数为(178,159,167,188,193,168),团队B的6名选手初赛票数为(194,166,165,152,186,196),对决时的票数可能会在初赛的基础上上下浮动5票,对决一共进行6次。现在假设团队B获得了安排两队选手对决顺序的资格,该队至少能获得的胜利次数是____次。
(2)待定选手排序。待定的选手数据存放于waiting中,每个选手数据包含选手姓名、选手票数、晋级与否三项数据,如['hd',189,False]表示选手’hd’获得了189票未晋级。下面的代码实现了待定选手数据按选手得票升序排序,运行结果如图所示。请补全程序代码。
待定名单(按得票升序):
[['lm',150,False],['xzy',155,False],['ljy',157,False],
['xtt',160,False],['zxy',174,False],['fh',174,False],
['zj',174,False],['lhh',174,False],['xrr',174,False],
['zyy'175,False],['lj',177,False],['wjy',177,False],
['wxy',177,False],['lxx',182,False],['lyy',185,False],
['syy',191,False],['wyx',192,False],['1xy',192,False]]
#确定所有选手的最高得票maxscore和最低得票minscore,代码略
count=[0]*(maxscore-minscore+1)
for p in waiting:
count[p[1]-minscore]+=1
for i in range(1,len(count)):
count[i]=①____
#创建一个waiting长度的空列表sortwait存储排序后的待定选手
sortwait=[None]*len(waiting)
for p in waiting:
idx=count[p[1]-minscore]-1
sortwait[idx]=p
②____
#打印待定名单
print("
待定名单(按得分升序):")
print(sortwait)
(3)补位晋级。根据比赛规则补位晋级,若待定名单sortwait中选手补位晋级时最后一名晋级选手有相同票数,则一同晋级。实现以上功能的代码如下,请回答问题。
#从高到低补位晋级
current=18 #已晋级人数
for i in range(len(sortwait)-1,-1,-1):
#若最后一名晋级选手有相同票数,则一同晋级
lastscore=sortwait[i+1][1]
for j in range(i,-1,-1):
if :
sortwait[j][2]=True
current+=1
else:
break
①交换加框的两部分代码,该程序功能____(会/不会)发生变化。
②请补全程序代码。____
第1页/共1页
学科网(北京)股份有限公司
$
宁波市2025学年第一学期选考模拟考试
高三技术试卷
考生须知:
1.本卷满分100分,考试时间90分钟
2.答题前,在答题卷指定区域填写学校、班级、姓名、试场号、座位号及准考证号:
3.所有答案必须写在答题卷上,写在试卷上无效;
4.考试结束后,只需上交答题卷。
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求,不选、多选、错选均不得分)
1. 国家反诈中心APP是一款能有效预防诈骗、快速举报诈骗内容的软件。APP内有海量诈骗案例,情景再现事情经过;用户发现诈骗线索时,可快速使用APP的一键举报功能进行举报,同时,APP还支持远程身份账号验证,用户可对可疑网友的真实身份、社交账号和支付账户进行涉诈风险验证,有效降低网络交易风险:当用户收到涉嫌诈骗的电话、短信或者下载高风险APP时,该APP会发出预警劝阻提示。下列关于数据和信息的说法,正确的是( )
A. 诈骗案例“APP炒股”中平台显示的虚假收益金额“5000元”不是数据
B. 剖析APP内的诈骗案例,对诈骗信息真伪性的辨识没有帮助
C. 用户可以观看反诈APP中的诈骗案例体现了信息的共享性
D. 给用户发送诈骗提醒信息不需要通过数据分析
【答案】C
【解析】
【详解】本题考查数据和信息。A选项错误,“5000元”是对虚假收益的符号表示,属于数据范畴。B选项错误,剖析APP内的诈骗案例能帮助用户熟悉诈骗套路,对辨识诈骗信息真伪性有明显帮助。C选项正确,多个用户可通过APP观看同一批诈骗案例,体现了信息可被多人共享的共享性特征。D选项错误,APP发送诈骗提醒需先分析电话、短信特征或APP风险等级等数据,才能精准识别涉诈线索并发出提示。因此,本题选择C选项。
2. 国家反诈中心APP是一款能有效预防诈骗、快速举报诈骗内容的软件。APP内有海量诈骗案例,情景再现事情经过;用户发现诈骗线索时,可快速使用APP的一键举报功能进行举报,同时,APP还支持远程身份账号验证,用户可对可疑网友的真实身份、社交账号和支付账户进行涉诈风险验证,有效降低网络交易风险:当用户收到涉嫌诈骗的电话、短信或者下载高风险APP时,该APP会发出预警劝阻提示。关于信息安全与信息社会责任,下列行为不合适的是( )
A. 收到疑似诈骗短信后,删除短信内容
B. 用户安装陌生贷款APP时,忽略反诈APP弹出的诈骗风险预警继续安装
C. 向陌生网友转账前,使用反诈APP的风险查询功能核验对方账号真实性
D. 发现某可疑钓鱼网站后,通过反诈APP一键举报该网站
【答案】B
【解析】
【详解】本题考查信息安全与信息社会责任的判断能力。选项A中,收到疑似诈骗短信后,删除短信内容是一个合理的安全措施。选项B中,用户在安装陌生贷款APP时,忽略反诈APP弹出的诈骗风险预警继续安装,这种行为忽视了安全警告,增加了被诈骗的风险,是不合适的。选项C中,向陌生网友转账前,使用反诈APP的风险查询功能核验对方账号真实性,是一种负责任的安全行为。选项D中,发现某可疑钓鱼网站后,通过反诈APP一键举报该网站,也是积极的安全行为。因此,选项B的行为是不合适的。故答案为:B。
3. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统功能的说法,不正确的是( )
A. 智能扫码仪可实现药品数据的收集和输入
B. 该系统能实现人证合一的核验
C. 违规购买处方药时,系统弹出警示窗,仅体现了系统的数据输出功能
D. 管理员可通过浏览器查看药品销售情况等数据
【答案】C
【解析】
【详解】本题考查信息系统的功能等相关知识。扫码仪将药品名称、批号、有效期等数据采集并存入系统,属于收集和输入功能,选项A正确;通过身份证感应和人脸识别比对,确实是人证合一验证,选项B正确;弹出警示窗是输出功能,但系统在判断“违规购买处方药”时,需要先根据业务规则进行数据处理与逻辑判断,这不只是输出,还涉及数据处理,选项C错误;管理员可通过浏览器登录系统查看实时数据,选项D正确。因此本题应选C。
4. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统中硬件和网络的说法,正确的是( )
A. 身份证识别器不是该系统的硬件
B. 智能扫码仪属于输出设备
C. 可配置一个警示铃在系统发出警示弹窗时同时发出警示声
D. 入库区和销售区必须搭建在同一局域网内
【答案】C
【解析】
【详解】本题考查信息系统的硬件和网络。身份证识别器是用于读取身份证信息的硬件设备,属于该系统硬件,选项A错误;智能扫码仪是用来采集(输入)药品信息的,属于输入设备,选项B错误;系统可以在软件警示的同时,通过硬件接口控制警示铃发声,选项C正确;两个区域的数据可以通过局域网或广域网传输,不必须在同一局域网,只要网络连通即可,选项D错误。因此本题应选C。
5. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。下列关于该连锁药店智能监管系统中软件的说法,不正确的是( )
A. 监管系统服务器属于系统软件
B. 该软件应根据新的药品监管政策进行更新优化
C. 购药者的身份核验功能需要软件支持
D. 该系统的服务器和销售区终端可使用不同的操作系统
【答案】A
【解析】
【详解】本题考查软件。A选项错误,监管系统服务器是承载软件运行的硬件设备,而系统软件是指控制和协调计算机及外部设备的软件(如操作系统、数据库管理系统等),二者本质不同。B选项正确,新的药品监管政策出台后,软件需通过更新优化适配政策要求,确保监管合规。C选项正确,购药者的身份核验(身份证识别、人脸识别)需依赖相应的识别算法和程序,必须有软件支持才能实现。D选项正确,服务器可使用Linux等服务器级操作系统,销售区终端可使用Windows等桌面级操作系统,不同设备可采用不同操作系统适配各自需求。因此,本题选择A选项。
6. 某连锁药店智能监管系统实现药品从入库到销售全程监管。入库区,智能扫码仪采集药品名称、批号、有效期等数据并保存;销售区,购药者需将身份证放入识别器的感应区并进行人脸识别,保证人证一致才能购买药品;若购药者未提供处方却试图购买处方药时会弹出警示窗;管理员可通过浏览器登录系统查看实时数据。智能识别终端的下列功能中,最能体现人工智能技术应用的是( )
A. 读取购买者出示的身份证号,并把后六位显示在屏幕上
B. 购买者可通过人脸识别自动核验购药者身份信息
C. 接收云端服务器发送的最新药品监管规则
D. 将违规购买记录按固定格式整理后上传至服务器
【答案】B
【解析】
【详解】本题考查人工智能技术的典型应用场景。A选项错误,读取身份证号并显示后六位仅属于数据采集与简单展示操作,未涉及人工智能技术。B选项正确,人脸识别自动核验身份信息属于人工智能中的模式识别技术,需通过算法提取人脸特征并进行比对验证,是人工智能技术的典型应用。C选项错误,接收云端服务器发送的监管规则仅为数据传输操作,不涉及智能处理过程。D选项错误,按固定格式整理违规记录并上传属于常规数据格式化与传输操作,无人工智能技术参与。因此,本题选择B选项。
7. 某BMP图像甲的每个像素颜色均不同,若甲为256*256像素的BMP图像,则图像甲的颜色位深度至少为( )
A. 8位 B. 16位 C. 24位 D. 32位
【答案】B
【解析】
【详解】本题考查BMP图像的颜色位深度计算。图像甲大小为256×256像素,总像素数为65536个,且每个像素颜色均不同,因此需要至少65536种颜色。颜色位深度为n时,可表示2^n种颜色。2^8=256<65536,2^16=65536,满足要求。因此颜色位深度至少为16位。本题选择B选项。
8. 二叉树T的前序遍历序列为A-B-D-C-E-F,中序遍历序列为D-B-A-E-C-F。关于该二叉树T,下列说法不正确的是( )
A. 该二叉树T的根节点为A B. 节点E是节点C的左孩子
C. 该二叉树T的高度为3 D. 叶子节点的个数为4
【答案】D
【解析】
【详解】本题考查二叉树的相关内容。以前序遍历和中序遍历可构建出如图所示二叉树:
该二叉树T的根节点为A,选项A正确;节点E是节点C的左孩子,选项B正确;该二叉树T的高度为3,选项C正确;叶子节点是D、E、F,个数为3,选项D错误。因此本题答案为选项D。
9. 出港集装箱运抵港口到装载上船需经过堆场与装船两个步骤,现有6个集装箱编号为a、b、c、d、e、f,在堆场与装船时都需逐箱叠放在一堆上,如图为集装箱抵港、堆场与装船时的部分堆放情况(堆场时不一定全部堆放完再装船)。若装船的第1个集装箱编号为c,且装船的第3个集装箱编号为b,则装船的第4个集装箱编号不可能是装( )
A. a B. d C. e D. f
【答案】B
【解析】
【详解】本题考查栈的基本操作。由题意可知。若装船的第1个集装箱编号为c,则还有a,b两个集中箱在堆场,由于装船的第3个集装箱编号为b,可知第二个装船的集装箱为d,因此装船的第4个集装箱编号不可能是d。因此,本题选择B。
10. a数组中有n个元素(n为偶数),现要将所有索引为奇数的元素循环右移两位,索引素为偶数的元素不变,如[1,2,3,4,5,6]处理后得到[1,6,3,2,5,4]。实现该功能的Python程序段如下:
n=len(a)
last=a[n-1]
for i in range(① )
②
a[i]=last
则划线处应填入的正确代码为( )
A. ①n-3,0,-2 ②a[i+2]=a[i] B. ①n-1,1,-2 ②a[i-2]=a[i]
C. ①1,n-1,2 ②a[i+2]=a[i] D. 10,n-2,2 ②a[i-2]=a[i]
【答案】A
【解析】
【详解】本题考查数组元素的索引操作及循环移动的实现能力。该程序的功能是将数组中所有索引为奇数的元素循环右移两位,索引为偶数的元素保持不变。选项A和C中,代码a[i+2]=a[i]符合这一逻辑。选项A的循环范围是从n-3到0,步长为-2,这与题目要求的从最后一个奇数索引向前移动的逻辑一致。因此,选项A是正确的。故答案为:A。
11. 有如下Python代码段:
#’a’的ASCII码值是97
arr=['a','d','d','r','e','s','s']
n=len(arr)
for i in range(n-1,0,-1):
for j in range(n-2,n-i-2,-1):
if ord(arr[j])%3>ord(arr[j+1])%3:
arr[j],arr[j+1]=arr[j+1],arr[j]
print(arr)
则运行程序后,arr的值是( )
A. ['e','a','d','d','s','s','r'] B. ['e','s','s','d','d','a','r'] C. ['r','a','d','d','s','s','e'] D. ['r','s','s','d','d','a','e']
【答案】C
【解析】
【详解】本题考查冒泡排序的变式。外层:for i in range(n-1,0,-1),i从n-1到1(即6到1),排序6轮;内层:for j in range(n-2,n-i-2,-1),j从高到低变化(即从后往前排),比较ord(arr[j])%3与ord(arr[j+1])%3,ord(x)%3的值前大于后就交换,所以排序依据是ord(x)%3的值升序排序。字符对应的ASCII码:'a'-97,'d'-100,'r'-114,'e'-101,'s'-115,ord(x)%3后的结果分别是1,1,0,2,1,按照规则排序后的结果是'r','a','d','d','s','s','e',故本题答案为选项C。
12. 有一个数字传送带每秒匀速向左移动1个数字,如第12题图所示。其上方有观察数字传送带的固定窗口,宽度为k(即可以看到k个数字)。操作员需每秒一次记录窗口中的最大值,例如图中的数字每秒记录下来的结果依次为“3 3 5 5 6 7”。现在已知数字传送带的所有数据nums和窗口宽度k,操作员编写了记录每秒窗口最大值的Python代码如下,方框中应填入的正确代码为( )
nums=[1,3,-1,-3,5,3,6,7]
k=int(input()) #输入固定窗口大小k
n=len(nums)
q=[0]*n
head,tail=0,0
ans=[]
#处理前k个元素
for i in range(k):
while head < tail and nums[i] >= nums[q[tail-1]]:
tail-=1
q[tail]=i
tail+=1
ans.append(nums[q[head]])
#处理剩余元素
for i in range(kn):
while head < tail and nums[i] >= nums[q[tail-1]]:
tail-=1
q[tail]=i
tail+=1
#移除超出窗口范围的队列头部元素
print(ans) #若k为3,输出应为[3,3,5,5,6,7]
A.
while tail < head and q[head] <= i-k:
head+=1
ans.append(nums[q[tail]])
B.
while tail < head and q[tail] <= i+k:
tail+=1
ans.append(nums[q[head]])
C
while head < tail and q[tail] <= i-k:
tail+=1
ansappend(nums[q[tail]])
D.
while head < tail and q[head] <= i-k:
head+=1
ans.append(nums[q[head]])
A. A B. B C. C D. D
【答案】D
【解析】
【详解】本题考查滑动窗口最大值的双端队列算法。代码使用双端队列维护当前窗口内可能成为最大值的元素索引。在处理剩余元素时,需要移除超出窗口范围的队列头部元素,即当队列头部索引小于等于当前索引i减去窗口大小k时,头部元素出队。然后记录当前队列头部元素对应的值作为窗口最大值。选项D中,条件head < tail and q[head] <= i-k:确保队列不为空且头部索引在窗口外时移动头部指针,随后将队列头部元素对应的值加入结果列表,符合算法要求。其他选项均存在逻辑错误,如条件判断不当或操作错误指针。因此,本题选择D选项。
二、综合题(本大题共3小题,其中第13小题8分,第14小题9分,第15小题9分,共26分)
13. 空调作为现代家庭的必备家电,从部件加工到组装完成需经过多道工序。每个工序可能有多个不重复的前置工序,且必须完成其所有前置工序后才能开始当前工序,若无前置工序则可直接开始,同一时间只能执行一个工序。现在已知每个工序完成所需的时间(单位:分钟,简称工时),需编写程序模拟这一流程,根据输入的工序信息(包含工序编号、工时及其前置工序列表),计算完成指定编号为m的工序所需的总工时(含所有前置工序用时及当前工序用时)。
(1)如图所示,完成工序2需先完成前置工序0和1,总工时为(3+7+5=15)。则完成工序5的总工时为____。
工序编号
工时
前置工序
0
3
1
1
7
无
2
5
0
3
4
无
4
2
3
5
5
2、4
6
8
无
7
6
6
8
5
5、7
(2)以下是实现上述功能的Python程序,请在划线处填入合适代码。
def cal(hours,pre,m):
need=[m]
i=0
while i<len(need):
if need[i] in pre:
for j in pre[need[i]]:
need.append(j)
①____
total=0
for i in need:
②____
return total
#hours[i]存储工序i的工时
hours=[3,7,5,4,2,5,8,6,5]
#键值对2:[0,1]表示工序2的前置工序为工序0和工序1
pre=[0:[1],2:[0],4:[3],5:[2,4],7:[6],8:[5,7]}
m=int(input("请输入工序编号:"))
total_time=③____
print("完成该工序及其全部前置工序所需总工时为:",total_time)
【答案】 ①. 26 ②. i=i+1或i+=1或其他等价答案 ③. total+=hours[i]或total=total+hours[i]或其他等价答案 ④. cal(hours,pre,m)或其他等价答案
【解析】
【详解】本题考查的是Python综合应用。
(1)根据给定的工序信息,工序5的前置工序为2和4。需要计算完成工序5及其所有前置工序所需的总工时(包括所有间接前置工序)。工序依赖关系及工时如下:工序2的前置工序为0(工时5),工序0的前置工序为1(工时3),工序1无前置(工时7)。 工序4的前置工序为3(工时2),工序3无前置(工时4)。工序5本身工时为5。 所有相关工序(包括间接前置):1、0、2、3、4、5。 工时计算:总工时 = 7 + 3 + 5 + 4 + 2 + 5 = 26。
(2)①处:在while循环中,每次处理完当前工序need[i]后,需要将索引i递增1,以继续遍历need列表的下一个元素。否则,循环将无法前进,导致无限循环。应填入:i += 1;②处:在累加工时的循环中,需要将当前工序编号i对应的工时(从hours列表中获取)加到total中。 应填入:total += hours[i]。③处:主程序中,需要调用cal函数计算总工时,传入参数hours(工时列表)、pre(前置字典)和m(目标工序编号)。 应填入:cal(hours, pre, m)。
14. 某研究小组为监测校园空气质量,在5栋教学楼各设置1个监测点,每个监测点至少布置一个采集点。智能终端连接PM2.5传感器,每隔2小时采集1次PM2.5浓度数据,通过无线网络传输到服务器。服务器分析数据发现超标情况时,会通过智能终端控制执行器触发预警。请回答下列问题:
(1)在搭建该空气质量监测系统时,为了可以让每个监测点都能独立完成“数据采集+数据传输”基础功能,PM2.5传感器与智能终端的配备总数量合理的是____(多选,填字母)。
A.5个PM2.5传感器和5个智能终端
B.5个PM2.5传感器和1个智能终端
C.10个PM2.5传感器和5个智能终端
D.10个PM2.5传感器和1个智能终端
(2)系统设定数据采集的时间间隔为2小时,不能够实现采集时间控制功能的设备是____(单选,填字母:A.传感器/B.智能终端)。
(3)编写智能终端数据传输相关程序时,不需要了解的信息有____(多选,填字母)。
A.与PM2.5传感器连接的智能终端引脚定义
B.服务器的硬盘剩余存储空间
C.服务器的IP地址及通信端口号
D.传感器的生产年份
(4)当服务器判定PM2.5浓度超标后,可通过智能终端控制指示灯发出闪烁预警监测1点位的工作人员,现在服务器端也需要定位是哪个监测点的PM2.5超标,请写出两种预警定位方式。____
(5)将系统中某年度的监测数据导出到文件air_data.x1sx中,如图a所示,部分数据包含序号、监测点编号、月份、日期、时、实测PM2.5浓度。现需按从大到小的顺序输出9月份各监测点PM2.5的平均值,再用柱形图来显示9月份各监测点PM2.5的平均值,如图b显示。
图a 图b
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选,填字母)。
import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("air_data.xlsx")
df1=①____
df2-df1.groupby("监测点编号",as_index=False)["实测PM2.5浓度"].mean()
df2=②____
#按从大到小的顺序输出9月份各监测点PM2.5的平均值,代码略
plt.bar(df2.["监测点编号"],df2["实测PM2.5浓度"]) #绘制柱形图
#设置绘图参数,并显示柱形图,代码略
①②处可选代码有:
A.df[df["月份"]==9]
B.df["月份"==9]
C.df1[df1["月份"]==9]
D.df2.sort_values("实测PM2.5浓度")
E.df2.sort_values("监测点编号",ascending=False)
F.df2.sort_values("实测PM2.5浓度",ascending=False)
【答案】 ①. AC ②. A ③. BD ④. 可参考下列方向:
1.设备唯一标识与位置绑定:比如为每个监测点的智能终端分配唯一的设备硬件ID(如硬件序列号、出厂编号等)、为智能终端分配唯一的IP等
2.数据携带位置信息:比如智能终端在传输PM2.5监测数据时,在数据中额外包含自身的位置信息(如经纬度坐标、预设的区域编码等) ⑤. A ⑥. F
【解析】
【详解】本题考查信息系统搭建与Python数据分析。
(1)每个监测点需独立完成“数据采集+数据传输”,则每个监测点至少配备1个PM2.5传感器和1个智能终端;若每个监测点配备多个采集点(如2个),则传感器数量可增加。选项A(5个传感器+5个智能终端)、C(10个传感器+5个智能终端)符合要求;选项B、D因智能终端数量不足(仅1个),无法实现各监测点独立传输。故选AC。
(2)PM2.5传感器仅负责采集数据,时间控制功能需由智能终端实现(如定时触发采集),因此不能实现采集时间控制的设备是传感器。故选A。
(3)编写智能终端数据传输程序时:需了解与传感器连接的引脚定义(A需了解)、服务器的IP地址及通信端口号(C需了解);无需了解服务器硬盘剩余存储空间(B无需了解)、传感器的生产年份(D无需了解)。故选BD。
(4)预警定位方式示例:1.设备唯一标识与位置绑定:比如为每个监测点的智能终端分配唯一的设备硬件ID(如硬件序列号、出厂编号等)、为智能终端分配唯一的IP等 2.数据携带位置信息:比如智能终端在传输PM2.5监测数据时,在数据中额外包含自身的位置信息(如经纬度坐标、预设的区域编码等)
(5)①需筛选出“月份为9”的数据,故df1=df[df[月份]==9],选A;②需按“实测PM2.5浓度”从大到小排序,故df2=df2.sort_values(实测PM2.5浓度,ascending=False),选F。
15. 某晋级赛有36名选手,将晋级28人。规则如下:1、团队赛,将选手分成6个团队,每队6人。团队之间两两对决,每队各派一名选手进行1V1比拼,高票者晋级,低票者进入待定。晋级人数共计18人;2、进入待定区选手根据比赛得分进行排序,高票者晋级,晋级10名(如有同票选手,同样晋级,最后晋级总人数可能超过28人)。
(1)团队赛。团队A的6名选手初赛票数为(178,159,167,188,193,168),团队B的6名选手初赛票数为(194,166,165,152,186,196),对决时的票数可能会在初赛的基础上上下浮动5票,对决一共进行6次。现在假设团队B获得了安排两队选手对决顺序的资格,该队至少能获得的胜利次数是____次。
(2)待定选手排序。待定的选手数据存放于waiting中,每个选手数据包含选手姓名、选手票数、晋级与否三项数据,如['hd',189,False]表示选手’hd’获得了189票未晋级。下面的代码实现了待定选手数据按选手得票升序排序,运行结果如图所示。请补全程序代码。
待定名单(按得票升序):
[['lm',150,False],['xzy',155,False],['ljy',157,False],
['xtt',160,False],['zxy',174,False],['fh',174,False],
['zj',174,False],['lhh',174,False],['xrr',174,False],
['zyy',175,False],['lj',177,False],['wjy',177,False],
['wxy',177,False],['lxx',182,False],['lyy',185,False],
['syy',191,False],['wyx',192,False],['1xy',192,False]]
#确定所有选手的最高得票maxscore和最低得票minscore,代码略
count=[0]*(maxscore-minscore+1)
for p in waiting:
count[p[1]-minscore]+=1
for i in range(1,len(count)):
count[i]=①____
#创建一个waiting长度的空列表sortwait存储排序后的待定选手
sortwait=[None]*len(waiting)
for p in waiting:
idx=count[p[1]-minscore]-1
sortwait[idx]=p
②____
#打印待定名单
print("
待定名单(按得分升序):")
print(sortwait)
(3)补位晋级。根据比赛规则补位晋级,若待定名单sortwait中选手补位晋级时最后一名晋级选手有相同票数,则一同晋级。实现以上功能的代码如下,请回答问题。
#从高到低补位晋级
current=18 #已晋级人数
for i in range(len(sortwait)-1,-1,-1):
#若最后一名晋级选手有相同票数,则一同晋级
lastscore=sortwait[i+1][1]
for j in range(i,-1,-1):
if :
sortwait[j][2]=True
current+=1
else:
break
①交换加框的两部分代码,该程序功能____(会/不会)发生变化。
②请补全程序代码。____
【答案】 ①. 3 ②. count[i]+count[i-1]或其他等价答案 ③. count[p[1]-minscore]-=1或其他等价答案 ④. 会 ⑤. sortwait[j][1]==lastscore或其他等价答案
【解析】
【详解】本题考查数组的基本操作。
(1)团队A票数为[178, 159, 167, 188, 193, 168],团队B票数为[194, 166, 165, 152, 186, 196]。团队B要保证胜利,需要团队B选手票数减去团队A选手票数大于10。通过最优匹配,团队B最多能保证3场胜利(如团队B的196对团队A的159、194对167、186对168),因此团队B至少能获得3次胜利。
(2)在计数排序代码中,计数排序的核心是通过count数组统计每个数值的出现次数,再通过前缀和确定元素在排序后的位置,最后依次放置元素并更新计数。 ①处需计算前缀和,代码为count[i]+count[i-1]; ②处需在放置元素后将对应计数减 1,保证相同分数元素的正确排序,代码为count[p[1]-minscore] -= 1。
(3)在补位晋级代码中,①交换加框的两部分代码(if current >= 28: break和sortwait[i][2] = True; current += 1)会改变程序功能,因为先晋级后检查可能导致晋级人数超过28;②处在检查相同票数选手时,需要判断选手得票是否与最后一名晋级选手票数相同,因此填sortwait[j][1] == lastscore。
第1页/共1页
学科网(北京)股份有限公司
$