内容正文:
浙江省宁波市慈溪市2025-2026学年高二下期末
技术学科试题
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
阅读下列材料,完成下面小题:
某餐厅具有“智慧就餐系统”,可通过扫二维码或刷人脸等方式识别就餐人员。餐厅配备机器人点菜服务,机器人可引导顾客点餐、推荐菜品等;饮料及水果通过AI结算台的摄像头自动识别并计算金额,将产生的相关数据会发送到服务器。顾客可通过餐厅APP查看本人消费记录和营养分析。
1. 关于该智慧就餐系统中数据的叙述,正确的是( )
A. 系统中的数据形式只有文字 B. 该系统的数据都由机器人采集
C. 顾客点菜过程中不会产生数据 D. 系统的历史数据也具有分析价值
2. 在该系统使用过程中,下列应用不涉及人工智能技术的是( )
A. 扫二维码进行身份识别 B. 刷人脸进行身份识别
C. 机器人与顾客进行对话 D. 摄像头识别水果种类
3. 下列关于该信息系统组成的说法,正确的是( )
A. 该系统中的数据只有点餐数据 B. 该系统的用户只有顾客
C. 该系统中的硬件只有摄像头、机器人 D. 该系统中的软件包括餐厅APP
4. 下列关于该信息系统的说法,正确的是( )
A. 系统在设计时需考虑数字鸿沟问题
B. 该系统不需要服务员,对外部环境没有依赖
C. 将数据发送给服务器的过程中不需要传输介质
D. 顾客只能通过移动通信网络查看餐厅APP中的数据
5. 下列关于信息社会责任和信息系统安全的说法,正确的是( )
A. 餐厅可随意出售顾客信息
B. 数据备份是一种保护数据安全的措施
C. 系统服务器打开防火墙,一定可以保证系统不被病毒侵害
D. 允许顾客无需身份认证就可使用系统,不会影响系统的安全
【答案】1. D 2. A 3. D 4. A 5. B
【解析】
【详解】1.本题考查智慧就餐系统数据相关知识。A选项错误,系统存在人脸图像、菜品图像等多种数据,并非只有文字。B选项错误,摄像头、扫码设备都会采集数据,并非全部由机器人采集。C选项错误,顾客点菜会生成点餐记录,产生新数据。D选项正确,历史消费数据可用于分析顾客偏好、菜品销量,具备分析价值。因此,本题选择D选项。
2.本题考查人工智能应用辨别相关知识。A选项正确,二维码识别只是读取编码信息,不使用人工智能技术。B选项错误,刷脸识别运用计算机视觉AI技术。C选项错误,机器人对话运用自然语言处理AI技术。D选项错误,摄像头识别水果属于图像识别AI技术。因此,本题选择A选项。
3.本题考查信息系统组成相关知识。A选项错误,系统还包含人脸数据、结算数据、营养分析数据等,不只有点餐数据。B选项错误,用户包含顾客、餐厅管理员、后厨人员等,不只有顾客。C选项错误,硬件还有服务器、手机、扫码设备等,不只有摄像头和机器人。D选项正确,餐厅APP是实现查询功能的应用软件,属于系统软件资源。因此,本题选择D选项。
4.本题考查信息系统设计与运行相关知识。A选项正确,设计系统要考虑老年人等不擅长智能设备的人群,兼顾数字鸿沟问题。B选项错误,系统依赖电力、网络等外部环境,也需要人员维护,并非完全不需要服务员。C选项错误,数据传输必须依靠无线网络、网线等传输介质。D选项错误,顾客连接餐厅局域网Wi-Fi也可使用APP,不局限于移动流量。因此,本题选择A选项。
5.本题考查信息安全与信息社会责任相关知识。A选项错误,顾客人脸、消费记录属于隐私信息,餐厅不可随意出售。B选项正确,定期备份数据能够防止数据丢失损坏,是保障数据安全的有效措施。C选项错误,防火墙仅能降低攻击风险,无法百分百杜绝病毒入侵。D选项错误,无身份认证容易出现账号冒用、信息泄露,严重危害系统安全。因此,本题选择B选项。
6. 下列关于大数据的说法,正确的是( )
A. 大数据技术不能处理非结构化数据
B. 大数据技术不需要通信技术的支持
C. 人工智能技术的实现一定不需要大数据
D. 大数据要编码成二进制才能存储在计算机中
【答案】D
【解析】
【详解】本题考查大数据基础概念相关知识。A选项错误,大数据技术可高效处理文本、图像、视频等海量非结构化数据。B选项错误,海量数据采集、传输、共享都依赖通信技术支撑。C选项错误,绝大多数人工智能模型依靠大数据训练才能实现识别、预测等功能。D选项正确,计算机仅能识别二进制,无论何种大数据都需编码为二进制后存储。因此,本题选择D选项。
7. 某未经压缩的位图图像为512*1024像素,16色位图,则该图像的存储容量为( )
A. 0.25MB B. 0.5MB C. 0.75MB D. 1MB
【答案】A
【解析】
【详解】本题考查位图存储容量计算。像素总数512×1024=524288,16色需4位/像素,即0.5字节/像素,总容量524288×0.5=262144字节=256KB=0.25MB。因此,本题选择A选项。
8. 某算法的部分流程图如图所示,若n的值为5,数组元素a[0]至a[n-1]依次存放1,5,7,10,6,执行这部分流程后,输出i的值为( )
A. 1 B. 2 C. 3 D. 4
【答案】B
【解析】
【详解】本题考查流程图模拟数组遍历逻辑相关知识。已知n=5,数组a=[1,5,7,10,6],初始i = n-1 = 4,j = n-2 = 3。
1. j=3≥0成立,判断a[3]=10 > a[4]=6,条件成立,交换a[3]、a[4],数组变为[1,5,7,6,10];i=j=3;j=3-1=2。
2. j=2≥0成立,判断a[2]=7 > a[3]=6,条件成立,交换a[2]、a[3],数组变为[1,5,6,7,10];i=j=2;j=2-1=1。
3. j=1≥0成立,判断a[1]=5 > a[2]=6,条件不成立;j=1-1=0。
4. j=0≥0成立,判断a[0]=1 > a[2]=6,条件不成立;j=0-1=-1。
5. j=-1≥0不成立,跳出循环,输出i=2。
因此,本题选择B选项。
9. 某完全二叉树,其中序遍历结果为DBEAC,则前序遍历的结果为( )
A. ABDEC B. ABEDC C. BDAEC D. BDEAC
【答案】A
【解析】
【详解】本题考查完全二叉树结构确定前序遍历。完全二叉树共5个节点,形状固定:根为A,左子B,右子C,B的左子D、右子E。中序遍历应为D B E A C,与题干DBEAC一致。前序遍历(根-左-右)为A B D E C,即ABDEC。因此,本题选择A选项。
10. 有如下Python程序段:
k=[0]*26; c=" "
for i in range (len(s)):
if "a"<=s[i]<="z":
c=c+s[i]
elif s[i]==' , ':
j=ord(c[0])-ord('a')
k[j]+=1
c=""
若s为"ac, be, ac, ar, ca, bc, cte, ",执行该程序段后,k[2]的值为( )
A. 0 B. 1 C. 2 D. 3
【答案】C
【解析】
【详解】本题考查字符串遍历与字母计数统计。程序功能:提取每段由逗号分隔的子串的首字母,并累加对应计数。s为"ac, be, ac, ar, ca, bc, cte, ",逗号分隔得到单词:ac、be、ac、ar、ca、bc、cte。每遇到逗号时,c中已累积当前单词的字母,取c[0]即首字母,分别对应a、b、a、a、c、b、c,因此字母'c'出现2次,k[2](索引2对应'c')值为2。因此,本题选择C选项。
11. 数组a长度为20,如表所示,其中a[5]~a[14]元素分为前后两部分,前面部分连续若干个3,后面部分连续若干个4。
i
0
1
2
3
4
……
15
16
17
18
19
a[i]
1
2
2
2
2
……
5
5
5
5
5
st=[0]*20; top=-1; i=0
while i<len (a):
if top==-1 or st[top]!=a[i]:
top+=1; st[top]=a[i]
else:
top=top-1
i=i+1
执行该程序段后,栈st[:top+1]中所有元素之和可能为( )
A. 15 B. 10 C. 9 D. 6
【答案】D
【解析】
【详解】 本题考查栈操作与连续相同元素抵消。本题考查栈操作与连续元素抵消。程序遍历数组,当栈空或栈顶不等于当前元素时入栈,否则弹出栈顶,实质是消除相邻成对的相同元素。数组元素分布:1个1(保留1个),4个2(两两抵消剩0个),5个5(两两抵消剩1个),3和4共10个且各自连续,抵消后剩余个数取决于各自个数的奇偶性。由于总数10为偶数,3和4的个数同奇偶,所以剩余可能为0和0(都偶数)或1和1(都奇数)。因此最终栈中元素可能为{1,5}总和6,或{1,5,3,4}总和13。选项中只有6,故选择D选项。
12. 有如下Python程序段:
a=[1, 2, 3, 4]; k=3; i=0; n=len (a)
#给列表b赋值,代码略 ①处
while n>1:
i=(i+k-1) %n
if b[i]!=0:
b[i]=0
else:
for j in range (i+1, n):
a[j-1]=a[j]
b[j-1]=b[j]
n=n-1
执行该程序段后,a[0]的值为1,则①处列表b不可能赋值为( )
A. [0, 0, 0, 0] B. [1, 0, 0, 0] C. [0, 0, 1, 0] D. [0, 0, 0, 1]
【答案】C
【解析】
【详解】本题考查约瑟夫环模拟与条件判断。程序通过循环删除元素,但删除前检查b[i]是否非0,若是则仅置0并继续,否则删除该位置并前移。需模拟四个选项确定哪个导致a[0]≠1。模拟选项A [0,0,0,0]:初始n=4,i=0。循环1:i=(0+2)%4=2,b[2]=0删除位置2(原值3),a变为[1,2,4,4],n=3;循环2:i=(2+2)%3=1,b[1]=0删除位置1(现值为2),a前两位[1,4],n=2;循环3:i=(1+2)%2=1,b[1]=0删除位置1(现4),a[0]=1,n=1,最终a[0]=1,可行。模拟选项B [1,0,0,0]:循环1:i=2,b[2]=0删除位置2,a→[1,2,4,4],n=3;循环2:i=1,b[1]=0删除位置1,a前两位[1,4],n=2;循环3:i=1,b[1]=0删除位置1,a[0]=1,可行。模拟选项C [0,0,1,0]:循环1:i=2,b[2]=1≠0,执行b[2]=0,不删除,n仍为4,a不变;循环2:i=(2+2)%4=0,b[0]=0,删除位置0,将a[1]~a[3]前移,a变为[2,3,4,4],n=3;循环3:i=(0+2)%3=2,b[2]=0(原b[2]已为0),删除位置2(现值为4),a前两位变为[2,3],n=2;循环4:i=(2+2)%2=0,b[0]=0,删除位置0,a[0]=a[1]=3,n=1,最终a[0]=3,不等于1,故不可能。模拟选项D [0,0,0,1]:循环1:i=2,b[2]=0删除位置2,a→[1,2,4,4],b→[0,0,1,1],n=3;循环2:i=1,b[1]=0删除位置1,a前两位[1,4],b前两位[0,1],n=2;循环3:i=1,b[1]=1≠0,置0,n=2;循环4:i=1,b[1]=0删除位置1,a[0]=1,可行。 因此,仅C选项导致a[0]=3,不符合要求。本题选择C选项。
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某线上商店为了促进消费,推出了一项免单活动:从一天内的所有订单中寻找连续若干笔订单的累计消费总金额恰好为s元的订单段,若只有一个符合要求的订单段,则该订单段中所有订单免单;若有多个符合要求的订单段,则选择其中最长的订单段(若最长的长度相等,则选择先出现的)并对其中所有订单免单。若某天订单数据orders=[["X001", 3],["X002", 8],["X003", 2],["X004", 1],["X005", 7],["X006",1],["X00", 2],["X008", 5],["X009", 3],["X010", 3]],orders中每个元素包含两个数据项,第一个数据项表示订单号,第二个数据项表示该笔订单的消费金额;
若s的值为10,则免单的订单号为X003,X004,X005。编写程序,根据一天的订单数据,输出免单的订单号。
(1)按上述orders的值,若s的值为11,则免单的订单号为_________________(订单号间用逗号隔开)
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#获取当天订单数据orders,代码略,格式如题中所述。
s=int (input("请输入消费总金额s:"))
pos={0:-1}; start=end=-1; mx=0
______________
for i in range (len(orders)):
ze=ze+orders[i][1]
if ze not in pos:
pos[ze]=i #orders[0]到orders[i]订单累计消费总金额为ze
____________
if tg in pos:
st=pos[tg]+1
if ____________: #寻找最长的订单段
mx=i-st+1
start=st
end=i
if start==-1:
print ("没有符合条件的订单段! ")
else:
print ("免单的订单号为:")
for i in range (start, end+1):
print (orders[i][0], end=" , ")
【答案】(1)X003,X004,X005,X006
(2) ①. ze=0 ②. tg=ze-s ③. i-st+1>mx或i-pos[tg]>mx
【解析】
【详解】本题考查数组。
(1)当s=11时,订单序列及金额如下:索引0:X001-3, 1:X002-8, 2:X003-2, 3:X004-1, 4:X005-7, 5:X006-1, 6:X007-2, 7:X008-5, 8:X009-3, 9:X010-3。计算所有连续段和为11的情况:[3,8] 长度2;[8,2,1] 长度3;[2,1,7,1] 长度4(索引2~5);[1,7,1,2] 长度4(索引3~6);[1,2,5,3] 长度4(索引5~8);[5,3,3] 长度3。最长长度为4,多个长度4的段中,最先出现的是索引2~5,对应订单号X003,X004,X005,X006。因此第一空填X003,X004,X005,X006。
(2)程序填空详解:①处:变量ze需要初始化为0,用于累加当前前缀和,因此填写ze=0。②处:需要计算差值tg=ze-s,因为ze是当前前缀和,若之前存在前缀和tg,则ze-tg=s,即从tg之后到当前位置的和为s。因此填写tg=ze-s。③处:找到和为s的段后,其长度为i-st+1,需与当前最大长度mx比较,仅当更长时才更新,因为长度相等时保留先出现的段。因此条件应填写i-st+1>mx。
14. 某小区开发了一套智能快递驿站管理系统,用于管理住户的快递收发与取件提醒。该系统由智能快递柜(内置RFID读写器、摄像头、电子锁)、服务器等组成。将包裹放入柜子后,RFID读写器识别包裹标签,智能终端将数据上传至服务器存入数据库。服务器根据住户预留信息发送取件码短信提醒。住户可通过手机短信中的链接,在浏览器中查询自己快递的状态,还可通过刷门禁卡或刷脸取件,系统验证身份并控制柜门打开,同时更新数据库状态。请回答下列问题:
(1)在该系统中,快递包裹从入柜到出柜的过程中,没有涉及到的技术是__________(A.射频识别 / B.图像识别 / C.语音识别)
(2)关于该系统中数据处理与传输的说法,正确的有__________
A. 该系统中住户的个人信息存储在门禁卡中
B. 该系统中通过摄像头采集人脸数据属于传感技术
C. 智能快递柜上的RFID读写器属于该系统的执行器
D. 该系统中服务器与数据库的数据传输是双向的
(3)若某个快递存入快递柜后,快递柜提交数据到服务器的URL为http://192.168.1.12:8080/data?gid=203&dh=9053,则服务器端与该URL关联的路由设置语句是@app.route("__________")
(4)系统正常运行一段时间后,发现已取件的快递包裹仍显示“待取件”,请说明可能造成这一现象的原因:____________________(写出一项)
(5)将2026年第一季度的快递柜收件、取件信息导出到data.xlsx文件中。部分数据如图a所示(操作“1”表示收件,“0”表示取件)。现要找出2026年第一季度快递收件数量最多的快递柜位置,并统计该位置快递柜在第一季度各个月份的快递收件情况,绘制如图b所示的柱形图。
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处。
#导入模块,代码略
df=pd.read_excel ("data.xlsx")
df1=__________________________
df2=df1.groupby ( ).count ()
df2=df2.sortvalues ( ), ignore_index=True)
#参数ignore_index=True表示排序后重置索引
door=df2.at[0, "位置"]
df3=df1[df1.位置= =door]
df3=df3.groupby ("月份").count ()
plt.bar ( )
#设置绘图参数,显示如图b所示的柱形图,代码略
①②③④处可选代码有:
A.df[df.操作= =1]
B.df1[df1["操作"]= =1]
C."位置"
D."位置",as_index=False H.df3.月份,df3.快递单号
E."快递单号",ascending=True
F."快递单号",ascending=False
G.df3.index,df3.快递单号
【答案】(1)C (2)BD
(3)/data (4)网络传输故障:取件成功的指令无法从快递柜/终端上传到服务器,服务器未收到状态变更请求。或摄像头、RFID读写器、门禁读卡模块识别异常,误判取件动作未完成,不发起状态更新。
(5) ①. A ②. D ③. F ④. G
【解析】
【详解】本题考查搭建信息系统和pandas分析。
(1)系统使用了RFID读写器识别标签(射频识别)和摄像头采集人脸(图像识别),未涉及语音识别,答案选C。
(2)A错误,住户个人信息一般存储于服务器数据库而非门禁卡;B正确,摄像头采集人脸数据属于传感技术;C错误,RFID读写器属于输入设备(传感器)而非执行器;D正确,服务器与数据库之间数据读写双向传输。因此选B、D。
1)系统使用了RFID读写器识别包裹标签,属于射频识别技术;使用摄像头采集人脸进行身份验证,属于图像识别技术;整个流程中没有涉及语音识别,因此选择C。
(3)URL为http://192.168.1.12:8080/data?gid=203&dh=9053,其中路径是/data,路由装饰器应匹配路径,因此填写@app.route("/data")。
(4)已取件仍显示待取件,可能原因包括:网络传输故障:取件成功的指令无法从快递柜/终端上传到服务器,服务器未收到状态变更请求。或摄像头、RFID读写器、门禁读卡模块识别异常,误判取件动作未完成,不发起状态更新。
(5)筛选收件记录(操作=1),应使用df[df.操作==1],选A;按位置分组并保留位置作为列,需groupby("位置", as_index=False),选D;按收件数量降序排序以找出最多的位置,使用sort_values("快递单号", ascending=False),选F;绘制柱形图时,df3的索引即为月份,纵坐标为快递单号计数,因此用df3.index, df3.快递单号,选G。
15. 某快递站有n位快递员,编号为0~n-1.快递站将每日待配送的快递分成了三类并制定了如下配送规则:A类快递为加急件,需要优先找到最早结束当前配送任务的快递员进行配送;B类快递为城区普通快递,随机挑选快递员进行配送;C类快递为近郊远距离快递,由当前配送快递数量最少的快递员进行配送。若有多个快递员同时结束配送或配送数量相等的情况下,按快递员编号先后顺序挑选。快递员每送完一个快递都会回到快递站取件,再进行下一个快递的配送。快递站某日收到的快递信息如图所示,所有快递已按到达时间升序排序,配送时长为快递员配送该快递的来回时长。三类快递的配送费用各不相同,现想要统计每位快递员某日赚得的配送费。
类型
到达时间
配送时长
C
08:10
60
A
08:20
40
C
08:30
50
A
08:50
20
(1)若该快递站有3位快递员,编号分别是0、1、2,快递站已收到的快递信息如第15题图a所示,则最后一个快递是由编号____________快递员进行配送
(2)有以下自定义函数insert (i, j),函数的功能是实现在编号为j的快递员队伍中加入索引为i的快递,并计算该快递的开始配送和结束配送时间。
def insert (i, j):
if heads[j]==-1:
heads[j]=i
curtime=trans (lk[i][1])
else:
lk[tails[j]][-1]=i
lk[i][3]=curtime
lk[i][4]=curtime+lk[i][2]
________________________
①该程序段加框处代码有误,以下数据可以测试出错误的是___________
A.lk[i]=[‘A’, ‘08:50’, 40, 0, 0, -1] lk[tail[j]]=[ ‘B’, ‘08:00’, 30, 520, 550, -1]
B.lk[i]=[‘B’, ‘09:10’,10, 0, 0, -1] lk[tail[j]]=[ ‘C’, ‘08:00’, 50, 500, 550, -1]
C.lk[i]=[‘C’, ‘09:00’, 30, 0, 0, -1] lk[tail[j]]=[ ‘A’, ‘08:10’, 20, 500, 520, -1]
②为实现上述功能,应将加框处代码语句修改为___________
A.curtime=trans (lk[i][1])
B.curtime=max (trans (lk[i][1]), lk [tails[j]][4])
C.curtime=min (trans (lk[i][1]), lk [tails[j]][4])
③为实现上述功能,程序划线处语句应填入:_______________________________
(3)实现上述功能的程序如下,请在划线处填入合适的代码。
from random import randint
def trans (time): #转换时间格式
return 60*int (time[0:2])+int (time[-2:])
def count (head):
total=0; p=head
while _____________:
total+=1
p=1k[p][-1]
return total
def search (typek, n): #查找待分配的快递员
if typek= ="B":
return randint (0, n-1)
else:
tj_A=tj_C=0
for j in range (1, n):
if tails [tj_A]= =-1:
return tj_A
elif tails[j]=-1:
return j
else:
if lk[tails[j]][4]<lk[tails[tj_A]][4]:
tj_A=j
if ______________________:
tj_C=j
if typek= ="A":
return tj_A
elif typek= ="C":
return tj_C
,,,
读取到站的快递信息存入列表lk中,列表的每个元素包含3个数据项,如lk=[[‘A’, ‘08:00’, 20],[ ‘C’, ‘08:20’, 60,…],依次为快递类型、到达时间和配送来回总时间;获取快递员数量存储在变量n中,代码略
,,,
dy={‘A’:12, ‘B':15, ‘C’:20} #存储各类型快递的快递费
for k in range (len(1k)):
1k[k]=1k[k]+[0, 0, -1]#将列表[0,0,-1]拼接在1k[k]的末尾,合并成一个新列表heads, tails=[-1]*n, [-1]*n
i=0
while i<len (1k):
tj=search (1k[i][0], n)
insert (i,tj)
i+=1
#计算每位快递员某日所赚的配送费并输出,代码略
【答案】(1)1 (2) ①. C ②. B ③. tails[j]=i
(3) ①. p!=-1 ②. count (heads[j])<count (heads[tjC])
【解析】
【详解】本题考查链表。
(1)模拟配送过程:快递员编号0、1、2初始均空闲,各自结束时间视为最早。快递1(C类,到达08:10,时长60):C类找当前配送数量最少的快递员,初始三人数均为0,按编号升序选0号,开始时间取到达08:10(490分钟),结束09:10(550分钟)。快递2(A类,08:20,时长40):A类找最早结束的快递员,当前0号结束09:10(550),此处0号正忙,1号和2号空闲,按编号选1号,开始08:20,结束09:00(540)。快递3(C类,08:30,时长50):C类找数量最少,此时0号有1件,1号有1件,2号0件,选2号,开始08:30,结束09:20(560)。快递4(A类,08:50,时长20):A类找最早结束,当前0号结束09:10(550),1号结束09:00(540),2号结束09:20(560),最早是1号(540),因此最后一件由1号配送。
(2)①加框处代码为curtime=lk[tails[j]][4],直接将队尾结束时间赋给开始时间,忽略了新快递到达时间可能晚于队尾结束时间(即快递员空闲后等待新快递到达)。需要测试出该错误,必须有一个新快递的到达时间大于队尾结束时间,使实际开始时间应为到达时间而非队尾结束时间。选项C中:新快递lk[i]为C类,到达09:00(540分钟),队尾快递lk[tail[j]]为A类,结束08:40(520分钟),若错误代码则开始时间取520(08:40),但快递09:00才到达,不能提前开始,所以错误明显。选项A中新快递到达08:50(530),队尾结束09:10(550),此时到达小于结束,应取队尾结束,错误代码取队尾结束反而正确,故不能测出错误。选项B新快递到达09:10(550),队尾结束09:10(550),相等,错误代码取550也是正确,不能测出。因此选C。②正确开始时间应为到达时间与队尾结束时间的较大值,因为若到达晚于队尾结束,快递员需等待;若到达早于队尾结束,则需等当前任务完成。因此用max,选B。③插入节点后需更新该快递员队伍的尾指针为新节点,即tails[j] = i。
(3)①count函数遍历链表统计节点数,循环条件为当前节点指针p不为-1,即p != -1。②search函数中,对于C类要选当前配送数量最少的快递员,用count(heads[j])获取快递员j的当前任务数,与当前候选tj_C比较,若更少则更新。因此条件为count(heads[j]) < count(heads[tj_C])。
第1页/共1页
学科网(北京)股份有限公司
$
浙江省宁波市慈溪市2025-2026学年高二下期末
技术学科试题
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
阅读下列材料,完成下面小题:
某餐厅具有“智慧就餐系统”,可通过扫二维码或刷人脸等方式识别就餐人员。餐厅配备机器人点菜服务,机器人可引导顾客点餐、推荐菜品等;饮料及水果通过AI结算台的摄像头自动识别并计算金额,将产生的相关数据会发送到服务器。顾客可通过餐厅APP查看本人消费记录和营养分析。
1. 关于该智慧就餐系统中数据的叙述,正确的是( )
A. 系统中的数据形式只有文字 B. 该系统的数据都由机器人采集
C. 顾客点菜过程中不会产生数据 D. 系统的历史数据也具有分析价值
2. 在该系统使用过程中,下列应用不涉及人工智能技术的是( )
A. 扫二维码进行身份识别 B. 刷人脸进行身份识别
C. 机器人与顾客进行对话 D. 摄像头识别水果种类
3. 下列关于该信息系统组成的说法,正确的是( )
A. 该系统中的数据只有点餐数据 B. 该系统的用户只有顾客
C. 该系统中的硬件只有摄像头、机器人 D. 该系统中的软件包括餐厅APP
4. 下列关于该信息系统的说法,正确的是( )
A. 系统在设计时需考虑数字鸿沟问题
B. 该系统不需要服务员,对外部环境没有依赖
C. 将数据发送给服务器的过程中不需要传输介质
D. 顾客只能通过移动通信网络查看餐厅APP中的数据
5. 下列关于信息社会责任和信息系统安全的说法,正确的是( )
A. 餐厅可随意出售顾客信息
B. 数据备份是一种保护数据安全的措施
C. 系统服务器打开防火墙,一定可以保证系统不被病毒侵害
D. 允许顾客无需身份认证就可使用系统,不会影响系统的安全
6. 下列关于大数据的说法,正确的是( )
A. 大数据技术不能处理非结构化数据
B. 大数据技术不需要通信技术的支持
C. 人工智能技术的实现一定不需要大数据
D. 大数据要编码成二进制才能存储在计算机中
7. 某未经压缩的位图图像为512*1024像素,16色位图,则该图像的存储容量为( )
A. 0.25MB B. 0.5MB C. 0.75MB D. 1MB
8. 某算法的部分流程图如图所示,若n的值为5,数组元素a[0]至a[n-1]依次存放1,5,7,10,6,执行这部分流程后,输出i的值为( )
A. 1 B. 2 C. 3 D. 4
9. 某完全二叉树,其中序遍历结果为DBEAC,则前序遍历的结果为( )
A. ABDEC B. ABEDC C. BDAEC D. BDEAC
10. 有如下Python程序段:
k=[0]*26; c=" "
for i in range (len(s)):
if "a"<=s[i]<="z":
c=c+s[i]
elif s[i]==' , ':
j=ord(c[0])-ord('a')
k[j]+=1
c=""
若s为"ac, be, ac, ar, ca, bc, cte, ",执行该程序段后,k[2]的值为( )
A. 0 B. 1 C. 2 D. 3
11. 数组a长度为20,如表所示,其中a[5]~a[14]元素分为前后两部分,前面部分连续若干个3,后面部分连续若干个4。
i
0
1
2
3
4
……
15
16
17
18
19
a[i]
1
2
2
2
2
……
5
5
5
5
5
st=[0]*20; top=-1; i=0
while i<len (a):
if top==-1 or st[top]!=a[i]:
top+=1; st[top]=a[i]
else:
top=top-1
i=i+1
执行该程序段后,栈st[:top+1]中所有元素之和可能为( )
A. 15 B. 10 C. 9 D. 6
12. 有如下Python程序段:
a=[1, 2, 3, 4]; k=3; i=0; n=len (a)
#给列表b赋值,代码略 ①处
while n>1:
i=(i+k-1) %n
if b[i]!=0:
b[i]=0
else:
for j in range (i+1, n):
a[j-1]=a[j]
b[j-1]=b[j]
n=n-1
执行该程序段后,a[0]的值为1,则①处列表b不可能赋值为( )
A. [0, 0, 0, 0] B. [1, 0, 0, 0] C. [0, 0, 1, 0] D. [0, 0, 0, 1]
二、非选择题(本大题共3小题,其中第13小题7分,第14小题10分,第15小题9分,共26分)
13. 某线上商店为了促进消费,推出了一项免单活动:从一天内的所有订单中寻找连续若干笔订单的累计消费总金额恰好为s元的订单段,若只有一个符合要求的订单段,则该订单段中所有订单免单;若有多个符合要求的订单段,则选择其中最长的订单段(若最长的长度相等,则选择先出现的)并对其中所有订单免单。若某天订单数据orders=[["X001", 3],["X002", 8],["X003", 2],["X004", 1],["X005", 7],["X006",1],["X00", 2],["X008", 5],["X009", 3],["X010", 3]],orders中每个元素包含两个数据项,第一个数据项表示订单号,第二个数据项表示该笔订单的消费金额;
若s的值为10,则免单的订单号为X003,X004,X005。编写程序,根据一天的订单数据,输出免单的订单号。
(1)按上述orders的值,若s的值为11,则免单的订单号为_________________(订单号间用逗号隔开)
(2)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#获取当天订单数据orders,代码略,格式如题中所述。
s=int (input("请输入消费总金额s:"))
pos={0:-1}; start=end=-1; mx=0
______________
for i in range (len(orders)):
ze=ze+orders[i][1]
if ze not in pos:
pos[ze]=i #orders[0]到orders[i]订单累计消费总金额为ze
____________
if tg in pos:
st=pos[tg]+1
if ____________: #寻找最长的订单段
mx=i-st+1
start=st
end=i
if start==-1:
print ("没有符合条件的订单段! ")
else:
print ("免单的订单号为:")
for i in range (start, end+1):
print (orders[i][0], end=" , ")
14. 某小区开发了一套智能快递驿站管理系统,用于管理住户的快递收发与取件提醒。该系统由智能快递柜(内置RFID读写器、摄像头、电子锁)、服务器等组成。将包裹放入柜子后,RFID读写器识别包裹标签,智能终端将数据上传至服务器存入数据库。服务器根据住户预留信息发送取件码短信提醒。住户可通过手机短信中的链接,在浏览器中查询自己快递的状态,还可通过刷门禁卡或刷脸取件,系统验证身份并控制柜门打开,同时更新数据库状态。请回答下列问题:
(1)在该系统中,快递包裹从入柜到出柜的过程中,没有涉及到的技术是__________(A.射频识别 / B.图像识别 / C.语音识别)
(2)关于该系统中数据处理与传输的说法,正确的有__________
A. 该系统中住户的个人信息存储在门禁卡中
B. 该系统中通过摄像头采集人脸数据属于传感技术
C. 智能快递柜上的RFID读写器属于该系统的执行器
D. 该系统中服务器与数据库的数据传输是双向的
(3)若某个快递存入快递柜后,快递柜提交数据到服务器的URL为http://192.168.1.12:8080/data?gid=203&dh=9053,则服务器端与该URL关联的路由设置语句是@app.route("__________")
(4)系统正常运行一段时间后,发现已取件的快递包裹仍显示“待取件”,请说明可能造成这一现象的原因:____________________(写出一项)
(5)将2026年第一季度的快递柜收件、取件信息导出到data.xlsx文件中。部分数据如图a所示(操作“1”表示收件,“0”表示取件)。现要找出2026年第一季度快递收件数量最多的快递柜位置,并统计该位置快递柜在第一季度各个月份的快递收件情况,绘制如图b所示的柱形图。
实现上述功能的部分Python程序如下,请选择合适的代码填入划线处。
#导入模块,代码略
df=pd.read_excel ("data.xlsx")
df1=__________________________
df2=df1.groupby ( ).count ()
df2=df2.sortvalues ( ), ignore_index=True)
#参数ignore_index=True表示排序后重置索引
door=df2.at[0, "位置"]
df3=df1[df1.位置= =door]
df3=df3.groupby ("月份").count ()
plt.bar ( )
#设置绘图参数,显示如图b所示的柱形图,代码略
①②③④处可选代码有:
A.df[df.操作= =1]
B.df1[df1["操作"]= =1]
C."位置"
D."位置",as_index=False H.df3.月份,df3.快递单号
E."快递单号",ascending=True
F."快递单号",ascending=False
G.df3.index,df3.快递单号
15. 某快递站有n位快递员,编号为0~n-1.快递站将每日待配送的快递分成了三类并制定了如下配送规则:A类快递为加急件,需要优先找到最早结束当前配送任务的快递员进行配送;B类快递为城区普通快递,随机挑选快递员进行配送;C类快递为近郊远距离快递,由当前配送快递数量最少的快递员进行配送。若有多个快递员同时结束配送或配送数量相等的情况下,按快递员编号先后顺序挑选。快递员每送完一个快递都会回到快递站取件,再进行下一个快递的配送。快递站某日收到的快递信息如图所示,所有快递已按到达时间升序排序,配送时长为快递员配送该快递的来回时长。三类快递的配送费用各不相同,现想要统计每位快递员某日赚得的配送费。
类型
到达时间
配送时长
C
08:10
60
A
08:20
40
C
08:30
50
A
08:50
20
(1)若该快递站有3位快递员,编号分别是0、1、2,快递站已收到的快递信息如第15题图a所示,则最后一个快递是由编号____________快递员进行配送
(2)有以下自定义函数insert (i, j),函数的功能是实现在编号为j的快递员队伍中加入索引为i的快递,并计算该快递的开始配送和结束配送时间。
def insert (i, j):
if heads[j]==-1:
heads[j]=i
curtime=trans (lk[i][1])
else:
lk[tails[j]][-1]=i
lk[i][3]=curtime
lk[i][4]=curtime+lk[i][2]
________________________
①该程序段加框处代码有误,以下数据可以测试出错误的是___________
A.lk[i]=[‘A’, ‘08:50’, 40, 0, 0, -1] lk[tail[j]]=[ ‘B’, ‘08:00’, 30, 520, 550, -1]
B.lk[i]=[‘B’, ‘09:10’,10, 0, 0, -1] lk[tail[j]]=[ ‘C’, ‘08:00’, 50, 500, 550, -1]
C.lk[i]=[‘C’, ‘09:00’, 30, 0, 0, -1] lk[tail[j]]=[ ‘A’, ‘08:10’, 20, 500, 520, -1]
②为实现上述功能,应将加框处代码语句修改为___________
A.curtime=trans (lk[i][1])
B.curtime=max (trans (lk[i][1]), lk [tails[j]][4])
C.curtime=min (trans (lk[i][1]), lk [tails[j]][4])
③为实现上述功能,程序划线处语句应填入:_______________________________
(3)实现上述功能的程序如下,请在划线处填入合适的代码。
from random import randint
def trans (time): #转换时间格式
return 60*int (time[0:2])+int (time[-2:])
def count (head):
total=0; p=head
while _____________:
total+=1
p=1k[p][-1]
return total
def search (typek, n): #查找待分配的快递员
if typek= ="B":
return randint (0, n-1)
else:
tj_A=tj_C=0
for j in range (1, n):
if tails [tj_A]= =-1:
return tj_A
elif tails[j]=-1:
return j
else:
if lk[tails[j]][4]<lk[tails[tj_A]][4]:
tj_A=j
if ______________________:
tj_C=j
if typek= ="A":
return tj_A
elif typek= ="C":
return tj_C
,,,
读取到站的快递信息存入列表lk中,列表的每个元素包含3个数据项,如lk=[[‘A’, ‘08:00’, 20],[ ‘C’, ‘08:20’, 60,…],依次为快递类型、到达时间和配送来回总时间;获取快递员数量存储在变量n中,代码略
,,,
dy={‘A’:12, ‘B':15, ‘C’:20} #存储各类型快递的快递费
for k in range (len(1k)):
1k[k]=1k[k]+[0, 0, -1]#将列表[0,0,-1]拼接在1k[k]的末尾,合并成一个新列表heads, tails=[-1]*n, [-1]*n
i=0
while i<len (1k):
tj=search (1k[i][0], n)
insert (i,tj)
i+=1
#计算每位快递员某日所赚的配送费并输出,代码略
第1页/共1页
学科网(北京)股份有限公司
$