内容正文:
2026年5月调研测试
高二年级技术学科 试题
考生须知:
1.本卷共12页,满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。)
阅读材料,完成下面小题:
某校实验室预约系统支持各学科实验室统一管理。管理员可在线进行实验室设置、课程安排与时间排布。师生在校内外均可通过手机等终端登录App,完成实名认证后实时查看实验室的空闲时段,并自主选择合适的时间进行预约。系统采用基于历年预约数据训练的AI预测模型,能对师生给予合理的预约建议。
1. 下列关于数据和信息的说法,正确的是( )
A. 系统中数据的表现形式仅为数字 B. 师生预约过程中会不断产生数据
C. 历年数据进行分析后就没有任何价值了 D. 登录系统App页面上呈现的图片就是信息
2. 下列关于该系统安全与防护的做法,不正确的是( )
A. 给所有用户设置相同的数据访问控制权限 B. 给校园网络安装防火墙
C. 对重要数据进行定期备份 D. 及时扫描并修复系统漏洞
3. 下列关于该系统中人工智能的说法,正确的是( )
A. 训练该AI需要前期手工构造知识库 B. 增加训练的数据量,一定能提高预测的正确率
C. 该系统应用了数据驱动的人工智能方法 D. 该AI投入使用可以彻底解决预约的所有问题
4. 下列关于该系统组成与功能的描述,正确的是( )
A. 该校园网络按覆盖范围分类属于广域网
B. 该系统正常运行多年,说明对外部环境没有依赖性
C. 用户必须通过移动通信网络才能登录系统App
D. 该校实验室管理员是系统的用户
5. 下列关于系统硬件和软件的说法,正确的是( )
A. 中央处理器(CPU)由控制器和存储器组成
B. 手机等移动终端设备的“智能性”基于传感器的植入
C. 服务器关机后只读存储器(ROM)中的信息会丢失
D. 用户终端中的软件都是应用软件
6. 该校实验楼共5层,每层有6个实验室,现使用二进制对实验楼按“楼层+教室”进行分别编码,则至少需要的二进制位数为( )
A. 3 B. 4 C. 5 D. 6
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为“3,2,-1,4,0”,则输出s的值为( )
A. 3 B. -3 C. 2 D. -2
8. 某队列队首到队尾的元素依次为甲,乙,丙,丁,戊。元素出队后直接输出或重新入队,若输出元素依次为乙,丙,戊,甲,丁,所需最少重新入队次数为( )
A. 4 B. 3 C. 2 D. 1
9. 一个空栈入栈顺序为“ABCDE”,若出栈的第一个元素为“D”,则出栈的第3个元素不可能是( )
A. A B. B C. C D. E
10. 有如下Python程序段:
n=3
s=[[0 for i in range(n)] for j in range(n)]
for i in range(n):
for j in range(n):
s[i][j]=n*i+j
for i in range(0, n, 2):
for j in range(n//2):
s[i][j], s[i][n-j-1]=s[i][n-j-1], s[i][j]
程序运行后,s[0][2]和s[2][1]的值分别为( )
A. 0和8 B. 0和7 C. 2和8 D. 2和7
11. 有如下Python程序段:
s=input ("请输入字符串:")
res=""; m=-1
1st=[""]*10
for x in s:
if x==1st[m]:
m-=1
else:
m+=1
1st[m]=x
for i in range(m+1):
res+=1st[i]
print(res)
程序段运行后,若输出的值为ear,则可能的输入是( )
A. eabbr22 B. eera33a C. era22ra D. earre33
12. 将两个链表a(甲→乙→丙)和b(丁→戊)按照间隔次序合并为一个新链表,并将结果保存到链表a(甲→丁→乙→戊→丙)中,部分程序如下:
#读取链表a和b,均存储在列表data中,其中ha表示a的头指针,hb表示b的头指针。
p,q=ha,hb
while p!=-1 and q!=-1:
r=data[q][1]
q=r
填入方框处的可选代码有:①data[q][1]=data[p][1] ②data[p][1]=data[q][1] ③data[q][1]=p ④data[p][1]=q ⑤p=data[q][1] ⑥p=data[p][1]
已知链表b的长度不超过链表a,则下列选项中,代码顺序正确的是( )
A. ②③⑥ B. ②③⑤ C. ①④⑥ D. ①④⑤
二、非选择题(本大题共3题,其中第13题8分,第14题9分,第15题9分,共26分)
13. 图书馆有一叠重量不等的图书,如图所示。图书重量按从上往下依次存储在数组a中(单位:千克)。图书管理员小李需要将图书按从上往下的顺序进行搬离,每次最大的搬运重量为k千克(单本书的重量不超过k千克),现要求出小李搬运这批图书需要的最少趟数和各趟情况,并计算单趟最大搬运重量。请回答下列问题:
(1)若a=[2,3,1,4,3,2,6,4,1],小李每趟最多搬运8千克,则最少需要搬运________趟。
(2)实现上述功能的Python代码如下,请在划线处填入合适的代码。
#获取图书重量,从上到下依次存储在数组a中,代码略
k=int (input ("请输入最大搬运重量:")
cnt, st=0, 0
tot, maxtot=0,0
①___________
for i in range(m):
tot+=a[i]
if tot>k:
cnt+=1
print ("第", cnt, "趟搬运的图书编号为:", st, "->", i-1)
if tot-a[i]>maxtot:
maxtot=tot-a[i]
tot=②__________
st=i
③____________
if tot>maxtot:
maxtot=tot
print("第",cnt, "趟搬运的图书编号为:", st, "->", m-1)
print("单趟最大搬运重量为:", maxtot)
14. 某校兴趣小组研究水体富营养化与溶解氧浓度的密切关系:智能终端连接水质、溶解氧等传感器,每小时采集一次水体透明度、磷、氮、溶解氧等数据,智能终端通过IoT模块与Web服务器建立数据通信,并通过氧气泵、自动换水装置等设备实现自动控制,LED屏幕实时更新各项指标数值。请回答下列问题:
(1)LED屏幕实时显示的各项指标数值,其数据流向是 (单选,填字母)
A. 智能终端→传感器→服务器→网络→LED屏 B. 传感器→智能终端→网络→服务器→LED屏
(2)关于该系统功能的说法,正确的有 (多选,填字母)
A. 水体透明度、磷、氮、溶解氧等传感器必须连接同一个智能终端
B. 可以适当增大数据采集的时间间隔,减轻服务器的存储压力
C. 智能终端只能通过无线方式进行数据传输
D. 为保障数据安全,可以采用磁盘阵列的方式进行数据存储
(3)系统设计要求:当检测到水中溶解氧含量低于3mg/L时,氧气泵开始工作;当水中溶解氧含量高于5mg/L,氧气泵停止工作。某天LED 屏实时显示溶解氧含量为2.8mg/L,但氧气泵没有工作。简要说明系统可能造成上述问题的原因:________(写2条可能的原因。注:系统中传感器、执行器和智能终端连接均正常,不会造成上述问题)
(4)对采集到的水体数据导出后保存在“Wdata.xlsx”文件中,如图a所示。统计7月份每日判定为富营养化的测量次数(富营养化判定标准:总磷≥0.1mg/L且总氮≥0.2mg/L),并选择次数最多的5天数据,生成“富营养化每日次数对比图”,如图b所示。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]
df=①____________________
df=df [df.总磷>=0.1]
df=df [df.总氮>=0.2]
df1=②___________________
df1=df1.rename(columns={"总磷": "次数"}) # "总磷"列重命名为"次数"
df2=③___________________
df3=df2.head(5)
plt.bar(④___________________)
#设置图表格式,代码略
plt.show()
程序中①②③④处可选的代码有:
A. pd.read_csv("Wdata.xlsx")
B. pd.read_excel("Wdata.xlsx")
C. df.groupby("日", as_index=False).总磷.count()
D. df. groupby("月", as index=False).总磷.mean()
E. df1.sort_values("次数")
F. df1.sort_values("次数", ascending=False)
G. df3.index, df3.次数
H. df3.日, df3.次数
15. 某餐厅推出套餐优惠活动,凡用户购买一个套餐即可获得一张等额换购券,其使用规则如下:
①获得换购券次日才可使用,在有效期内可以换购优惠菜品(简称惠品),其他如“新品”、“饮料”等无法使用换购券;
②一张换购券仅限使用一次,且只能用于不高于换购券金额的惠品;
③若有多张换购券满足条件,优先使用获得时间最早的换购券。
例如:某用户订单信息如表a所示。“时间(天)”列为订单完成时间,即换购券开始生效的天数。在第1、5和6天购买“套餐”订单(编号1、2、3)分别可以获得金额为18、20、37的三张换购券。
订单编号
类型
金额(元)
时间(天)
订单编号
类型
金额(元)
时间(天)
1
套餐
18
1
5
饮料
20
15
2
套餐
20
5
6
惠品
36
16
3
套餐
37
6
7
惠品
14
18
4
新品
50
7
8
惠品
20
36
表a
假设换购券有效期是30天。按照规则可知,6号订单使用3号订单获得的换购券;7号订单使用最先获得的18元换购券;8号订单在已发放的换购券中仅剩2号,但该券在第36天已失效,8号订单无换购券可用,仍需支付20元。该餐厅的收入为:18+20+37+50+20+0+0+20=165元。据此,请回答下列问题。
(1)如表a所示,若4号订单也是“套餐”订单,金额与时间不变,其他订单数据也不变,换购券未过期都能使用,餐厅收入_________元。
(2)将换购券信息按时间先后顺序放到数组coupon中,现有三张换购券,对应数组为[[18,1],[20,5],[37,6]],每个数组元素包含2个数据项,分别表示换购券金额和换购券获取时间。定义函数delete()查找可使用的换购券,并将该换购券从coupon数组中删除。
def delete(pos, amount):
discount=0
i=pos
while i<len(coupon)
if amount<=coupon[i][0]:
discount=amount
coupon.pop(i) #将数组coupon中下标为的元素删除
i +=1
return discount
请回答以下两个小题:
①初始情况下若pos=0,amount=36,调用delete()函数后,则数组还剩_______个元素。
②若删除加框处代码,则________(选填字母:A.能/B.不能)保证该函数的正常功能。
(3)定义函数sort()实现将订单数据data按时间从小到大的顺序排列。订单数据放在链表data中,链表用Python列表模拟实现,节点各字段含义如表b所示。请在划线处填入合适的代码。
0
订单类型
1
金额
2
时间
3
下一个节点位置
表b
def sort(head,n): #n表示链表原始节点个数
p=data[head][3]
tail=head; dummy=n
data.append([-1,0,-1,head])
while p!=-1:
if data[tail][2]<=data[p][2]:
tail=data[tail][3]
else:
q=dummy
while data[data[q][3]][2]<data[p][2]:
q=data[q][3]
data[tail][3]=data[p][3]
___________________
data[q][3]=p
p=data[tail][3]
return data[dummy][3]
(4)主程序统计了所有未过期换购券都能有效利用时餐厅总收入,请在划线处填入合适的代码。
#输入所有订单数据存入链表data,换购券有效时长用变量expired表示,代码略
#data数据如[["套餐",20,5,2],[ "套餐",18,1,0]……]
h=sort(head,len(data)) #链表data的头指针为head
p=h; income=0; coupon=[]; pos=0
while p!=-1:
income+=data[p][1]
if data[p][0]== "套餐":
coupon.append([data[p][1],data[p][2]]) #在数组coupon 的末尾添加元素
elif data[p][0]== "惠品":
while pos<len(coupon) and①_______________:
pos+=1
if pos<len(coupon) and coupon[pos][1]<data[p][2]:
discount=②_________________
income-= discount
p=data[p][3]
print(income)
第1页/共1页
学科网(北京)股份有限公司
$
2026年5月调研测试
高二年级技术学科 试题
考生须知:
1.本卷共12页,满分100分,考试时间90分钟。
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字。
3.所有答案必须写在答题纸上,写在试卷上无效。
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。)
阅读材料,完成下面小题:
某校实验室预约系统支持各学科实验室统一管理。管理员可在线进行实验室设置、课程安排与时间排布。师生在校内外均可通过手机等终端登录App,完成实名认证后实时查看实验室的空闲时段,并自主选择合适的时间进行预约。系统采用基于历年预约数据训练的AI预测模型,能对师生给予合理的预约建议。
1. 下列关于数据和信息的说法,正确的是( )
A. 系统中数据的表现形式仅为数字 B. 师生预约过程中会不断产生数据
C. 历年数据进行分析后就没有任何价值了 D. 登录系统App页面上呈现的图片就是信息
2. 下列关于该系统安全与防护的做法,不正确的是( )
A. 给所有用户设置相同的数据访问控制权限 B. 给校园网络安装防火墙
C. 对重要数据进行定期备份 D. 及时扫描并修复系统漏洞
3. 下列关于该系统中人工智能的说法,正确的是( )
A. 训练该AI需要前期手工构造知识库 B. 增加训练的数据量,一定能提高预测的正确率
C. 该系统应用了数据驱动的人工智能方法 D. 该AI投入使用可以彻底解决预约的所有问题
4. 下列关于该系统组成与功能的描述,正确的是( )
A. 该校园网络按覆盖范围分类属于广域网
B. 该系统正常运行多年,说明对外部环境没有依赖性
C. 用户必须通过移动通信网络才能登录系统App
D. 该校实验室管理员是系统的用户
5. 下列关于系统硬件和软件的说法,正确的是( )
A. 中央处理器(CPU)由控制器和存储器组成
B. 手机等移动终端设备的“智能性”基于传感器的植入
C. 服务器关机后只读存储器(ROM)中的信息会丢失
D. 用户终端中的软件都是应用软件
6. 该校实验楼共5层,每层有6个实验室,现使用二进制对实验楼按“楼层+教室”进行分别编码,则至少需要的二进制位数为( )
A. 3 B. 4 C. 5 D. 6
【答案】1. B 2. A 3. C 4. D 5. B 6. D
【解析】
【1题详解】
本题考查数据与信息的基本概念。系统中数据的表现形式有多种,包括数字、文字、图片、音频等,并非仅为数字;师生预约时会产生预约人、预约时间等新数据,预约过程中会不断产生数据;分析后的历年数据可用于训练AI预测模型,仍然具备使用价值;App页面呈现的图片是数据,图片承载的内容才是信息。故答案为:B。
【2题详解】
本题考查信息系统安全与防护。不同身份用户的操作权限不同,管理员拥有更高的管理权限,给所有用户设置相同数据访问控制权限,会带来数据泄露、系统被篡改的安全风险,做法不正确;安装防火墙、定期备份重要数据、及时扫描修复系统漏洞都是正确的系统安全防护做法。故答案为:A。
【3题详解】
本题考查人工智能的应用。该AI预测模型是基于历年预约数据训练得到的,属于数据驱动的人工智能方法,不需要前期手工构造知识库;增加训练数据量不一定能提高预测正确率,若数据质量差反而可能影响预测效果;AI只能给出合理预约建议,无法彻底解决预约的所有问题。故答案为:C。
【4题详解】
本题考查信息系统的组成与功能。校园网覆盖范围小,按覆盖范围分类属于局域网,不是广域网;该系统运行需要依赖网络、终端硬件等外部环境,对外部环境存在依赖性;用户可以通过WiFi等网络登录App,不是必须通过移动通信网络;实验室管理员需要使用该系统进行管理操作,属于系统的用户。故答案为:D。
【5题详解】
本题考查计算机硬件与软件的基础知识。中央处理器CPU由控制器和运算器组成,不是控制器和存储器;手机等移动终端的各类智能感知功能都基于传感器的植入,其智能性依赖传感器;只读存储器ROM断电后信息不会丢失,RAM掉电会丢失信息;用户终端中的软件分为系统软件和应用软件,并非都是应用软件。故答案为:B。
【6题详解】
本题考查二进制编码的计算。需要分别对楼层和实验室编码,总共有5个楼层,需要至少能表示5个不同状态,2的3次方等于8,8大于等于5,因此楼层编码需要3位二进制;每层有6个实验室,需要至少表示6个不同状态,2的3次方等于8,8大于等于6,因此实验室编码需要3位二进制,总共需要3加3等于6位二进制。故答案为:D。
7. 某算法的部分流程图如图所示,执行这部分流程,若输入x的值依次为“3,2,-1,4,0”,则输出s的值为( )
A. 3 B. -3 C. 2 D. -2
【答案】B
【解析】
【详解】本题考查算法流程图的逻辑执行。初始s=1,k=-1,按照输入顺序依次计算:
第一次输入x=3,x不等于0,满足判断条件,计算x加k等于2,对2取余结果为0,满足条件,因此s更新为1加3等于4,k变为1,返回循环;
第二次输入x=2,x不等于0满足,计算x加k等于3,对2取余结果不为0,不满足条件,因此s更新为4减2等于2,k保持不变,返回循环;
第三次输入x=-1,x不等于0满足,计算x加k等于0,对2取余结果为0,满足条件,因此s更新为2加-1等于1,k变为-1,返回循环;
第四次输入x=4,x不等于0满足,计算x加k等于3,对2取余结果不为0,不满足条件,因此s更新为1减4等于-3,k保持不变,返回循环;
第五次输入x=0,x不等于0不满足,结束循环输出s,最终s的值为-3,对应第二个选项。故答案为:B。
8. 某队列队首到队尾的元素依次为甲,乙,丙,丁,戊。元素出队后直接输出或重新入队,若输出元素依次为乙,丙,戊,甲,丁,所需最少重新入队次数为( )
A. 4 B. 3 C. 2 D. 1
【答案】C
【解析】
【详解】本题考查队列的先进先出基本操作。队列的核心特性是先进先出,仅能从队首出队,出队后要么输出,要么重新插入队尾,我们按步骤推导:
初始队列(队首→队尾):甲、乙、丙、丁、戊,目标输出:乙、丙、戊、甲、丁。
第一个要输出乙,当前队首是甲,甲不输出,所以甲出队重入队尾,重入次数+1(当前次数=1),队列变为:乙、丙、丁、戊、甲
队首是乙,输出乙;队首变为丙,输出丙,队列变为:丁、戊、甲
第三个要输出戊,当前队首是丁,丁不输出,所以丁出队重入队尾,重入次数+1(当前次数=2),队列变为:戊、甲、丁
队首是戊,输出戊;接着依次输出队首甲、丁,完成输出。
总重入次数最少为2次,故答案为:C。
9. 一个空栈入栈顺序为“ABCDE”,若出栈的第一个元素为“D”,则出栈的第3个元素不可能是( )
A. A B. B C. C D. E
【答案】A
【解析】
【详解】本题考查栈的先进后出操作规则。入栈顺序为ABCDE,第一个出栈元素是D,说明A、B、C、D已经依次入栈,D出栈后栈内剩余元素从栈底到栈顶依次为A、B、C,当前栈顶为C。根据栈先进后出的规则,D出栈后只能先出栈顶的C,或是先将E入栈再出E,无法跳过C出底层元素,若要出栈第三个元素是A,必须让B、C都先于A出栈,此时A只能成为第四个及以后的出栈元素,不可能是第三个;而B、C、E都可以通过合理的进出栈顺序成为第三个出栈元素,例如出栈序列DCBAE的第三个元素是B,出栈序列DECBA的第三个元素是C,出栈序列DCEBA的第三个元素是E,因此只有A不可能。故答案为:A。
10. 有如下Python程序段:
n=3
s=[[0 for i in range(n)] for j in range(n)]
for i in range(n):
for j in range(n):
s[i][j]=n*i+j
for i in range(0, n, 2):
for j in range(n//2):
s[i][j], s[i][n-j-1]=s[i][n-j-1], s[i][j]
程序运行后,s[0][2]和s[2][1]的值分别为( )
A. 0和8 B. 0和7 C. 2和8 D. 2和7
【答案】B
【解析】
【详解】本题考查Python中二维列表的操作、嵌套循环以及元素交换。首先,程序中n赋值为3,第一个双重循环给二维列表s的每个元素赋值,赋值完成后s为[[0, 1, 2], [3, 4, 5], [6, 7, 8]]。接下来的循环,i从0开始步长为2,取值为0和2;n//2结果为1,因此j只取0。分别对i=0和i=2行完成交换操作:对于i=0行,交换s[0][0]和s[0][2],交换后第0行变为[2, 1, 0],因此s[0][2]的值为0;对于i=2行,交换s[2][0]和s[2][2],交换后第2行变为[8, 7, 6],因此s[2][1]的值为7,对应第二个选项。故答案为:B。
11. 有如下Python程序段:
s=input ("请输入字符串:")
res=""; m=-1
1st=[""]*10
for x in s:
if x==1st[m]:
m-=1
else:
m+=1
1st[m]=x
for i in range(m+1):
res+=1st[i]
print(res)
程序段运行后,若输出的值为ear,则可能的输入是( )
A. eabbr22 B. eera33a C. era22ra D. earre33
【答案】A
【解析】
【详解】本题考查Python程序运行逻辑分析。该程序本质是类似栈的相邻相同字符消除操作:初始栈顶指针m=-1,lst存储栈元素,遍历输入字符串每个字符,若当前字符等于栈顶元素,则栈顶指针m减1完成出栈,否则栈顶指针加1,将当前字符存入新栈顶位置,最终输出栈内从下标0到m的所有字符拼接结果。输入第一个选项eabbr22时,执行过程为:e入栈,m变为0;a入栈,m变为1;第一个b入栈,m变为2;第二个b和栈顶b相等,出栈后m变为1;r不等于栈顶的a,入栈后m变为2;第一个2入栈,m变为3;第二个2和栈顶2相等,出栈后m变为2,最终拼接栈内下标0到2的字符得到ear,符合题目要求,其余选项输出都不是ear。故答案为:A。
12. 将两个链表a(甲→乙→丙)和b(丁→戊)按照间隔次序合并为一个新链表,并将结果保存到链表a(甲→丁→乙→戊→丙)中,部分程序如下:
#读取链表a和b,均存储在列表data中,其中ha表示a的头指针,hb表示b的头指针。
p,q=ha,hb
while p!=-1 and q!=-1:
r=data[q][1]
q=r
填入方框处的可选代码有:①data[q][1]=data[p][1] ②data[p][1]=data[q][1] ③data[q][1]=p ④data[p][1]=q ⑤p=data[q][1] ⑥p=data[p][1]
已知链表b的长度不超过链表a,则下列选项中,代码顺序正确的是( )
A. ②③⑥ B. ②③⑤ C. ①④⑥ D. ①④⑤
【答案】D
【解析】
【详解】本题考查单链表的合并操作。我们需要将链表b的节点依次间隔插入到链表a的节点之间,每次将q指向的b链表当前节点插入到p指向的a链表当前节点之后,代码中r已经提前保存了q节点在原b链表中的后继节点。插入过程为:首先将q的后继修改为p原来的后继,对应语句①data[q][1]=data[p][1];接着修改p的后继为q,完成插入操作,对应语句④data[p][1]=q;插入完成后,p需要移动到原p的后继位置,原p的后继现在存储在q的后继中,对应语句⑤p=data[q][1],最后q移动到原q在b中的后继r,完成一轮插入,最终可以得到题目要求的合并结果,正确顺序为①④⑤,对应第四个选项。故答案为:D。
二、非选择题(本大题共3题,其中第13题8分,第14题9分,第15题9分,共26分)
13. 图书馆有一叠重量不等的图书,如图所示。图书重量按从上往下依次存储在数组a中(单位:千克)。图书管理员小李需要将图书按从上往下的顺序进行搬离,每次最大的搬运重量为k千克(单本书的重量不超过k千克),现要求出小李搬运这批图书需要的最少趟数和各趟情况,并计算单趟最大搬运重量。请回答下列问题:
(1)若a=[2,3,1,4,3,2,6,4,1],小李每趟最多搬运8千克,则最少需要搬运________趟。
(2)实现上述功能的Python代码如下,请在划线处填入合适的代码。
#获取图书重量,从上到下依次存储在数组a中,代码略
k=int (input ("请输入最大搬运重量:")
cnt, st=0, 0
tot, maxtot=0,0
①___________
for i in range(m):
tot+=a[i]
if tot>k:
cnt+=1
print ("第", cnt, "趟搬运的图书编号为:", st, "->", i-1)
if tot-a[i]>maxtot:
maxtot=tot-a[i]
tot=②__________
st=i
③____________
if tot>maxtot:
maxtot=tot
print("第",cnt, "趟搬运的图书编号为:", st, "->", m-1)
print("单趟最大搬运重量为:", maxtot)
【答案】(1)4或四 (2) ①. m=len(a) ②. a[i] ③. cnt+=1
【解析】
【详解】本题考查贪心算法应用与Python程序补全能力。
(1)按照题目要求按顺序搬运,每次尽可能多装,采用贪心策略计算:第一趟累加前3本重量2+3+1=6,加上第四本重量后总和为10大于8,第一趟结束;第二趟从第四本开始累加,4+3=7,加上下一本2后总和为9大于8,第二趟结束;第三趟累加2+6=8刚好等于最大重量,第三趟结束;剩余最后两本重量和为5,小于8,组成第四趟,因此最少需要4趟。
(2)①处for循环遍历数组a,m需要先赋值为数组a的长度,因此填m=len(a);②处当前累加重量加上当前书本重量超过搬运上限,当前书本需要放到下一趟,因此tot更新为当前书本的重量a[i];③处循环遍历完所有书本后,最后一趟还未计数,因此需要给趟数cnt加1,填入cnt+=1。
14. 某校兴趣小组研究水体富营养化与溶解氧浓度的密切关系:智能终端连接水质、溶解氧等传感器,每小时采集一次水体透明度、磷、氮、溶解氧等数据,智能终端通过IoT模块与Web服务器建立数据通信,并通过氧气泵、自动换水装置等设备实现自动控制,LED屏幕实时更新各项指标数值。请回答下列问题:
(1)LED屏幕实时显示的各项指标数值,其数据流向是 (单选,填字母)
A. 智能终端→传感器→服务器→网络→LED屏 B. 传感器→智能终端→网络→服务器→LED屏
(2)关于该系统功能的说法,正确的有 (多选,填字母)
A. 水体透明度、磷、氮、溶解氧等传感器必须连接同一个智能终端
B. 可以适当增大数据采集的时间间隔,减轻服务器的存储压力
C. 智能终端只能通过无线方式进行数据传输
D. 为保障数据安全,可以采用磁盘阵列的方式进行数据存储
(3)系统设计要求:当检测到水中溶解氧含量低于3mg/L时,氧气泵开始工作;当水中溶解氧含量高于5mg/L,氧气泵停止工作。某天LED 屏实时显示溶解氧含量为2.8mg/L,但氧气泵没有工作。简要说明系统可能造成上述问题的原因:________(写2条可能的原因。注:系统中传感器、执行器和智能终端连接均正常,不会造成上述问题)
(4)对采集到的水体数据导出后保存在“Wdata.xlsx”文件中,如图a所示。统计7月份每日判定为富营养化的测量次数(富营养化判定标准:总磷≥0.1mg/L且总氮≥0.2mg/L),并选择次数最多的5天数据,生成“富营养化每日次数对比图”,如图b所示。
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]=["SimHei"]
df=①____________________
df=df [df.总磷>=0.1]
df=df [df.总氮>=0.2]
df1=②___________________
df1=df1.rename(columns={"总磷": "次数"}) # "总磷"列重命名为"次数"
df2=③___________________
df3=df2.head(5)
plt.bar(④___________________)
#设置图表格式,代码略
plt.show()
程序中①②③④处可选的代码有:
A. pd.read_csv("Wdata.xlsx")
B. pd.read_excel("Wdata.xlsx")
C. df.groupby("日", as_index=False).总磷.count()
D. df. groupby("月", as index=False).总磷.mean()
E. df1.sort_values("次数")
F. df1.sort_values("次数", ascending=False)
G. df3.index, df3.次数
H. df3.日, df3.次数
【答案】(1)B (2)BD
(3)氧气泵(执行器)故障/阈值设置错误/服务器代码错误 或其他等价答案
(4) ①. B ②. C ③. F ④. H
【解析】
【小问1详解】
本题考查物联网系统的数据流向。数据流向的起点是传感器,传感器负责采集各项水质数据,之后将采集到的数据传输给智能终端,再通过网络传输到Web服务器,最终由服务器将数据输出到LED屏幕进行显示,第一个选项流向起点错误,第二个选项流向正确。故答案为:B。
【小问2详解】
本题考查物联网系统的相关知识。A选项,多个传感器可以分别连接不同的智能终端,不要求必须连接同一个智能终端,该说法错误;B选项,增大数据采集的时间间隔会减少总采集数据量,能够减轻服务器的存储压力,该说法正确;C选项,智能终端既可以用无线方式也可以用有线方式传输数据,该说法错误;D选项,磁盘阵列通过冗余存储可以提升数据安全性,可用于保障该系统的数据安全,该说法正确。故答案为:BD。
【小问3详解】
本题考查物联网控制系统的故障分析。题目已经说明传感器、执行器和智能终端连接正常,故障可从执行器硬件、控制设置、指令传输等方向分析。故答案为:氧气泵本身硬件故障;氧气泵启动阈值设置错误(或控制程序逻辑错误、控制指令网络传输故障等任意两条合理答案即可)。
【小问4详解】
本题考查Python中pandas数据处理与matplotlib绘图。①处需要读取xlsx格式的Excel文件,pandas读取Excel文件使用pd.read_excel方法,因此选B;②处需要按日期分组,统计每日符合富营养化标准的测量次数,按“日”分组后计数总磷列即可得到每日次数,因此选C;③处需要按次数降序排序,才能取出次数最多的前5天,因此选按次数降序排序的F;④处绘制柱形图,x轴为日期“日”,y轴为对应次数,因此传入参数为df3的日列和次数列,选H。故答案为:①B ②C ③F ④H。
15. 某餐厅推出套餐优惠活动,凡用户购买一个套餐即可获得一张等额换购券,其使用规则如下:
①获得换购券次日才可使用,在有效期内可以换购优惠菜品(简称惠品),其他如“新品”、“饮料”等无法使用换购券;
②一张换购券仅限使用一次,且只能用于不高于换购券金额的惠品;
③若有多张换购券满足条件,优先使用获得时间最早的换购券。
例如:某用户订单信息如表a所示。“时间(天)”列为订单完成时间,即换购券开始生效的天数。在第1、5和6天购买“套餐”订单(编号1、2、3)分别可以获得金额为18、20、37的三张换购券。
订单编号
类型
金额(元)
时间(天)
订单编号
类型
金额(元)
时间(天)
1
套餐
18
1
5
饮料
20
15
2
套餐
20
5
6
惠品
36
16
3
套餐
37
6
7
惠品
14
18
4
新品
50
7
8
惠品
20
36
表a
假设换购券有效期是30天。按照规则可知,6号订单使用3号订单获得的换购券;7号订单使用最先获得的18元换购券;8号订单在已发放的换购券中仅剩2号,但该券在第36天已失效,8号订单无换购券可用,仍需支付20元。该餐厅的收入为:18+20+37+50+20+0+0+20=165元。据此,请回答下列问题。
(1)如表a所示,若4号订单也是“套餐”订单,金额与时间不变,其他订单数据也不变,换购券未过期都能使用,餐厅收入_________元。
(2)将换购券信息按时间先后顺序放到数组coupon中,现有三张换购券,对应数组为[[18,1],[20,5],[37,6]],每个数组元素包含2个数据项,分别表示换购券金额和换购券获取时间。定义函数delete()查找可使用的换购券,并将该换购券从coupon数组中删除。
def delete(pos, amount):
discount=0
i=pos
while i<len(coupon)
if amount<=coupon[i][0]:
discount=amount
coupon.pop(i) #将数组coupon中下标为的元素删除
i +=1
return discount
请回答以下两个小题:
①初始情况下若pos=0,amount=36,调用delete()函数后,则数组还剩_______个元素。
②若删除加框处代码,则________(选填字母:A.能/B.不能)保证该函数的正常功能。
(3)定义函数sort()实现将订单数据data按时间从小到大的顺序排列。订单数据放在链表data中,链表用Python列表模拟实现,节点各字段含义如表b所示。请在划线处填入合适的代码。
0
订单类型
1
金额
2
时间
3
下一个节点位置
表b
def sort(head,n): #n表示链表原始节点个数
p=data[head][3]
tail=head; dummy=n
data.append([-1,0,-1,head])
while p!=-1:
if data[tail][2]<=data[p][2]:
tail=data[tail][3]
else:
q=dummy
while data[data[q][3]][2]<data[p][2]:
q=data[q][3]
data[tail][3]=data[p][3]
___________________
data[q][3]=p
p=data[tail][3]
return data[dummy][3]
(4)主程序统计了所有未过期换购券都能有效利用时餐厅总收入,请在划线处填入合适的代码。
#输入所有订单数据存入链表data,换购券有效时长用变量expired表示,代码略
#data数据如[["套餐",20,5,2],[ "套餐",18,1,0]……]
h=sort(head,len(data)) #链表data的头指针为head
p=h; income=0; coupon=[]; pos=0
while p!=-1:
income+=data[p][1]
if data[p][0]== "套餐":
coupon.append([data[p][1],data[p][2]]) #在数组coupon 的末尾添加元素
elif data[p][0]== "惠品":
while pos<len(coupon) and①_______________:
pos+=1
if pos<len(coupon) and coupon[pos][1]<data[p][2]:
discount=②_________________
income-= discount
p=data[p][3]
print(income)
【答案】(1)145 (2) ①. 2 ②. B
(3)data[p][3]=data[q][3]
(4) ①. coupon[pos][1]+expired<data[p][2] ②. delete(pos, data[p][1])
【解析】
【小问1详解】
本题考查换购规则理解与逻辑计算。原总收入为165元,4号订单改为套餐后,自身金额50元依旧计入收入,同时新增一张获取时间为7天、金额50元的换购券,该换购券有效期到37天,满足8号订单(金额20元,时间36天)的使用要求,原本8号订单需要收取20元,现在可以全额抵扣不用收取,因此总收入为165减20等于145元。故答案为:145。
【小问2详解】
本题考查Python代码运行逻辑分析。①初始数组共有3个元素,调用函数时pos为0,amount为36,依次遍历下标0、1,对应换购券金额18、20都小于36,不满足条件,遍历到下标2时,换购券金额37大于等于36,满足条件,删除该元素后跳出循环,因此最终数组剩余2个元素。故答案为:2。②如果删除加框的break代码,找到满足条件的换购券并删除后,循环会继续向后遍历,会错误删除多张符合条件的换购券,不符合一次只用一张换购券的规则,因此不能保证函数正常功能。故答案为:B。
【小问3详解】
本题考查链表插入排序的代码实现。此处需要将当前节点p插入到q节点之后,已经将p节点的后继保存到tail的next,接下来需要将q原本的后继节点作为p的后继,因此填入对应代码。故答案为:data[p][3]=data[q][3]。
【小问4详解】
本题考查程序逻辑分析与代码补全。①此处循环的作用是过滤掉所有已经过期的换购券,过期的判定条件是换购券获取时间加上有效期小于当前订单的时间,符合这个条件说明已经过期,需要pos加1跳过。故答案为:coupon[pos][1]+expired < data[p][2]。②找到符合要求的可用换购券后,需要调用delete函数获得抵扣金额,同时删除该换购券,因此需要将delete函数的返回值赋值给discount。故答案为:delete(pos, data[p][1])。
第1页/共1页
学科网(北京)股份有限公司
$