内容正文:
台州市2026届高三第二次教学质量评估试题
技术
2026.04
第一部分 信息技术(共50分)
一、选择题(本大题共12题,每题2分,共24分。在每题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
某医院上线一套问诊系统,患者可通过APP填写个人信息、症状和上传历史病历图片。系统根据症状智能分诊,推荐合适的科室,并对数据加密存储。就诊时,医生根据系统中患者的信息和历史病历作出初诊。阅读下列材料,完成下面小题:
1. 关于该系统中的数据与信息,下列说法正确的是( )
A. 该系统中数据的表现形式是单一的
B. 历史病历数据可为医生诊断提供依据
C. 就诊过程不会产生新的数据
D. 同一病历数据经解释后产生的信息都是相同的
2. 下列能有效提升该系统安全的措施是( )
A. 对所有用户设置相同的访问权限
B. 允许患者通过APP查看其他患者信息
C. 对患者信息加密存储并定期进行安全审计
D. 定期对患者历史病历数据进行删除
某学校教室安装了智能照明系统,系统根据光线传感器和人体红外传感器采集的环境光线数据和人员活动数据,自动调节照明设备亮度。传感器采集的数据通过智能终端上传至服务器,服务器对数据进行处理并生成能耗分析报表。阅读下列材料,完成下面小题:
3. 下列关于该信息系统组成的说法,正确的是( )
A. 照明设备属于该系统的硬件 B. 该系统服务器无需安装软件
C. 学生不是该系统的用户 D. 该系统的运行不需要网络支持
4. 下列关于该系统功能与应用的描述,正确的是( )
A. 该系统对外部环境不存在依赖
B. 该系统没有数据输出功能
C. 自动调节照明亮度属于人工智能技术的应用
D. 生成能耗报表的过程涉及数据处理
5. 下列行为符合信息安全与信息社会责任的是( )
A. 可以随意公开系统中的数据 B. 系统设计应考虑学生隐私保护
C. 在互联网空间中分享能耗分析报表 D. 非上课时间关闭服务器防火墙
6. 某校共有3栋教学楼,每栋教学楼有24间教室,每间教室放置1个智能终端,每个智能终端最多连接4个传感器。若使用二进制对每个传感器进行编码,二进制的前几位表示传感器所在位置,其余位表示传感器,则所需的二进制位数最少是( )
A. 7 B. 8 C. 9 D. 10
7. 某校组织学生进行“试题整理”活动,每天提交一次,一周累计总积分(K)超过35,即达标。每日积分(S)依据完成的题数(P)和时间(T)进行核算:18:00前完成,每题得1.2;超过20:00完成,每题得0.8,其余时间每题计1,同时,每日积分上限为12,超出部分不计入周总积分。判断某学生一周积分是否达标的部分流程图如图所示,表达式为:①K>35?②T<18:00?③S>12?④T>20:00?,则(1)-(4)处表达式序号依次为( )
A. ②④③① B. ④②③① C. ③②④① D. ①②③④
8. 栈s的初始为空,经过一系列入栈、出栈操作,元素入栈的顺序是“功”“成”“马”“到”,若出栈的顺序是“马” “到” “成”“功”,则栈s 的最小长度为( )
A. 1 B. 2 C. 3 D. 4
9. 某二叉树的中序遍历序列为XY。若增加一个叶子节点Z,则新二叉树的中序遍历结果不可能的是( )
A. ZXY B. XZY C. XYZ D. YXZ
10. 定义如下函数:
def f(n):
if n <= 2:
return 1
elif n ==3:
return 2
else:
return (n-1)*(f (n-1)+f (n-2))
执行语句x=f(5)后,x的值为( )
A. 24 B. 28 C. 44 D. 70
11. 定义如下函数:
def search(a, key):
i = 0; j = len(a)-1
while i <= j:
m = (i+j)//2
if a[m] ==key:
break
elif a[m] > key:
j = m-1
else:
i = m+1
return i == j
列表a中有1023个互不相同的整数且按升序排列,若调用该函数返回值为True,则列表a中符合key的元素个数为( )
A. 128 B. 256 C. 512 D. 1023
12. 有如下 Python 程序段:
from random import randint
a = [3, 1, 6, 8, 12, 14, 20, 9, 10, 11]
n, total = len (a), 0
for i in range (n-1, -1, -2):
t = i-randint (0, i//2)*2
if a[t] % 2 == 0:
total += 1
else:
total-= 1
a[i], a[t] = a[t], a[i]
执行该程序段后,total的值为( )
A. -1 B. 1 C. 3 D. 5
二、非选择题(本大题共3题,其中第13题10分,第14题7分,第15题9分,共26分)
13. 某校学生宿舍安装智能用电监控系统,每个宿舍放置一个智能终端,电流传感器监测宿舍用电功率,每60秒采集一次数据,并由智能终端通过无线通信方式将数据传输至服务器,存储在数据库中。服务器实时处理数据,当监测到某个宿舍用电功率超过阈值则向管理员发送警报,并向智能终端发送控制指令,由继电器模块控制电源通断。
(1)关于该系统中硬件连接的说法,正确的是________(单选)。
A. 一个智能终端只能连接一个电流传感器
B. 一个智能终端可以同时连接电流传感器和继电器模块
(2)关于该系统数据传输与存储的说法,正确的有________(单选)
A. 智能终端只能通过Wi-Fi方式将数据上传至服务器
B. 传感器采集的数据先经过智能终端,再上传到服务器
C. 管理员接收到的警报信息是由智能终端发送的
(3)为了降低该系统数据传输的网络负荷,下列做法可行的是________(多选)
A. 设置传感器每30秒采集一次数据
B. 增加宿舍的电流传感器数量
C. 智能终端将与之连接的多个传感器所采集数据统一打包压缩后再上传至服务器
D. 智能终端对传集器采集数据进行判断,若与上一次数据不同则上传至服务器
(4)智能终端上的程序具有如下功能:当网络异常时,将数据暂存到本地(缓存上限为500条),当网络恢复正常时,先上传缓存数据,再上传当前数据。部分Python程序如下,请在程序中划线处填入合适的代码。
buffer =[] #缓存数据列表
while True:
power = read_power() #采集数据
if network_ok(): #网络正常
for p in buffer:
upload (p) #上传缓存数据
#消除缓存数据,代码略
________
else: #网络异常
if________
#删除缓存列表中最早存入的数据元素,代码略
#将当前数据power添加到缓存数据列表buffer的末尾,代码略
#延时60秒,代码略
(5)系统运行时,管理员频繁收到某个宿舍用电功率超过阈值的警报,经核查,该宿舍并未使用大功率电器。简要说明可能造成上述问题的原因。
14. 智能用电监控系统采集了某校部分学生宿舍3月份用电功率数据,系统每60秒记录一次用电功率数据(单位:W) ,用电功率超过2000W时系统发送警报。将第1周的用电功率数据导出,存于"data. xlsx"文件中,部分数据如图a所示。现要对这些数据进行分析,请回答下列问题:
(1)统计本周引发警报次数最多的宿舍,并绘制该宿舍本周每天引发警报次数的折线图,如图b所示。
实现上述功能的程序代码如下,请选择合适的代码填入划线处。
import pandas as pd
import matplotlib. pyplot as plt
plt. rcParams[' font. sans-serif'] = ['SimHei'] #用来正常显示中文标签
df = pd. read_excel ("data. xlsx") #读取文件
dfl=①________
df2=df1. groupby("宿舍号", as_index=True). count () #分组计数
#重命名df2中“功率”列名称为“次数”,代码略
df3 =②________
m= df3. index[0] #获取宿舍号,如502
print("警报次数最多的宿舍号为: ",m)
df4 = df1[df1["宿舍号"]==m]
rq=[]
for i in df4. index:
rq. append (str(df4. at[i,"时间"])[8:10]+"日")
df4. insert (2, "日", rq) #插入一列,列名“日”,值为列表rq
df5 =③________
plt. plot (df5. index, df5. values)
#设置绘图参数,显示如图b所示的折线图,代码略
程序中①②③处可选的代码有:
A.df["功率"]>2000
B. df[df["功率"]>2000]
C. df2. sort_values("功率", ascending = False) #降序排序
D. df2. sort_values("次数", ascending = False) #降序排序
E. df4. groupby("日", as_index=False). count () #分组计数
F. df4. groupby ("日", as_index=True)["宿舍号"].count() #分组计数
(2)将某宿舍一周的用电功率数据(按时间顺序)存储于列表data中,要求找出最长的连续子序列,该序列中任意两个相邻数差的绝对值不超过50,如果这样的序列有多个,则选择数值总和最小的序列(若仍有多个,选择最早出现的),输出其长度和起始下标。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读入功率数据,按时间顺序存储于列表data中,如data-[713.66, 521.43,…],代码略
n= len (data)
mlen = 1
st = 0
i = 0
s= data[0]
while i<n:
j = i
while①________:
j += 1
t = j-i+1
if t > 1:
total = 0
for k in data[i:j+1]:
total += k
if t > mlen or (t == mlen and total < s):
mlen = t
s = total
②________
i = j+1
print("最长平缓变化序列长度:",mlen,"起始下标:",st)
15. 某工厂需采购一批材料,为实现总费用最低,需计划每日采购量。为了制定合理的每日采购量,工厂综合考虑材料的每日消耗量、市场每日的价格波动、库存量等因素,通过分析历史数据和市场趋势,先预测未来n天材料单价,再根据工厂每日固定消耗x单位的材料和仓库容量v(v≥x)来模拟每天的采购量。例如:预测未来3天该材料的单价分别为“5,6,4”(单位:元),现工厂每日消耗1个单位的材料,仓库容量为5个单位,则模拟采购计划量的过程如下:
第1天(单价5元):计划以当日单价采购6个单位材料,其中1个单位材料用于当日工厂生产,5个单位材料临时存入仓库。
第2天(单价6元):当日单价高于仓库中的材料单价5元,消耗库存中1个单位的材料用于当日生产。再以当日 6 元单价计划采购1个单位材料临时存入仓库。
第3天(单价 4元):当日单价低于仓库中单价5元和6元的材料,计划以当日单价采购6个单位材料,其中1个单位材料用于当日工厂生产,5个单位材料用于替换仓库中原有的材料。
3天后,退还仓库中剩余的5个单位的材料,因此,材料的单价分别为“5,6,4”的计划采购量为“2,0,1”。
请回答以下问题
(1)若已知某工厂每日消耗2个单位的材料,仓库容量为8个单位,连续4天的原材料单价为“6,4,5,3” (单位:元) ,计划采购量为___________。
(2)定义如下use (a, head, x)函数,a链表每个元素包含三个数据项,依次为第几天、剩余数量、指针,链表已按材料单价升序,head为头指针,x为消耗量。函数功能是查找单价最低的材料用于消耗,并返回剩余材料的头指针。
def use (a, head, x):
y=x
while head !=-1 and a[head] [1] <= y:
y -= a[head] [1]
head = a[head] [2]
a[head] [1]-= y
return head
回答下面两小题
①若a=[[0,5,-1],[1,5,2],[2,1,-1],head=1,x=1 执行这个函数,返回值为____________。
②若函数里的语句head=a[head][2]写成了head=a[head][3],在使用测试数据测试时,程序一定会出现错误提示。这个说法对吗?_________(选填,对/错)
(3)编写Python程序如下,请在划线处填入合适的代码。
"""天数、最大库存、每日固定消耗保存在变量n、v、x,每天对应的单价按时间顺序保存在列表price中, price[0]=1000其中1000大于每天实际单价, price[i]为第i天原材料的单价(i=1, 2,…,n),代码略"""
buy = [0]*len(price)
a = [[0, v,-1]]
head, buy [0] = 0, v
for i in range (1, len(price)):
rep = 0
q, p = -1, head
while①________
q=p
p= a[p][2]
while p !=-1:
②_______
buy[a[p] [0]] -= a[p] [1]
p= a[p][2]
a. append ([i, rep+x,-1]) #为a追加一个元素
buy[i] = rep+x
if q != -1:
a[q][2] = len(a)-1
else:
③________
head = use (a, head, x)
#退还仓库里剩余的材料,代码略
total = 0
for i in range (1, len(price)):
total += buy[i]*price[i]
print("第"+str(i)+"天的采购量为:", buy[i])
print("采购的最小费用为", total)
第1页/共1页
学科网(北京)股份有限公司
$
台州市2026届高三第二次教学质量评估试题
技术
2026.04
第一部分 信息技术(共50分)
一、选择题(本大题共12题,每题2分,共24分。在每题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
某医院上线一套问诊系统,患者可通过APP填写个人信息、症状和上传历史病历图片。系统根据症状智能分诊,推荐合适的科室,并对数据加密存储。就诊时,医生根据系统中患者的信息和历史病历作出初诊。阅读下列材料,完成下面小题:
1. 关于该系统中的数据与信息,下列说法正确的是( )
A. 该系统中数据的表现形式是单一的
B. 历史病历数据可为医生诊断提供依据
C. 就诊过程不会产生新的数据
D. 同一病历数据经解释后产生的信息都是相同的
2. 下列能有效提升该系统安全的措施是( )
A. 对所有用户设置相同的访问权限
B. 允许患者通过APP查看其他患者信息
C. 对患者信息加密存储并定期进行安全审计
D. 定期对患者历史病历数据进行删除
【答案】1. B 2. C
【解析】
【1题详解】
本题考查数据与信息。A选项错误,该系统中存在文字、图片等多种数据表现形式,并非单一。B选项正确,历史病历数据能够为医生诊断病情提供重要参考依据。C选项错误,就诊过程中医生的诊断记录、处方等都会产生新的数据。D选项错误,同一病历数据经不同人解释后产生的信息可能存在差异。因此,本题选择B选项。
【2题详解】
本题考查信息系统安全。A选项错误,对所有用户设置相同访问权限会降低系统安全性,无法做到权限管控。B选项错误,允许患者查看其他患者信息会泄露隐私,存在极大安全隐患。C选项正确,对患者信息加密存储并定期安全审计能够有效提升系统安全性。D选项错误,定期删除患者历史病历数据不利于诊疗且并非安全措施。因此,本题选择C选项。
某学校教室安装了智能照明系统,系统根据光线传感器和人体红外传感器采集的环境光线数据和人员活动数据,自动调节照明设备亮度。传感器采集的数据通过智能终端上传至服务器,服务器对数据进行处理并生成能耗分析报表。阅读下列材料,完成下面小题:
3. 下列关于该信息系统组成的说法,正确的是( )
A. 照明设备属于该系统的硬件 B. 该系统服务器无需安装软件
C. 学生不是该系统的用户 D. 该系统的运行不需要网络支持
4. 下列关于该系统功能与应用的描述,正确的是( )
A. 该系统对外部环境不存在依赖
B. 该系统没有数据输出功能
C. 自动调节照明亮度属于人工智能技术的应用
D. 生成能耗报表的过程涉及数据处理
5. 下列行为符合信息安全与信息社会责任的是( )
A. 可以随意公开系统中的数据 B. 系统设计应考虑学生隐私保护
C. 在互联网空间中分享能耗分析报表 D. 非上课时间关闭服务器防火墙
6. 某校共有3栋教学楼,每栋教学楼有24间教室,每间教室放置1个智能终端,每个智能终端最多连接4个传感器。若使用二进制对每个传感器进行编码,二进制的前几位表示传感器所在位置,其余位表示传感器,则所需的二进制位数最少是( )
A. 7 B. 8 C. 9 D. 10
【答案】3. A 4. D 5. B 6. C
【解析】
【3题详解】
本题考查信息系统的组成。信息系统的硬件是系统中所有物理设备的统称,照明设备属于该智能照明系统的硬件,该选项正确;服务器需要处理存储数据,必须安装操作系统和对应业务软件,该选项错误;学生是教室照明服务的使用者,属于该系统的用户,该选项错误;传感器数据需要上传到服务器,系统运行必须依赖网络支持,该选项错误。故答案为:A。
【4题详解】
本题考查信息系统的功能与应用。该系统需要采集外部环境的光线和人员活动数据,对外部环境存在依赖,该选项错误;系统输出亮度调节控制信号、输出能耗分析报表,具备数据输出功能,该选项错误;自动调节亮度是基于预设规则的传感控制,不属于人工智能技术的应用,该选项错误;生成能耗报表需要对原始采集数据进行统计、整理加工,过程涉及数据处理,该选项正确。故答案为:D。
【5题详解】
本题考查信息安全与信息社会责任。随意公开系统数据会带来信息泄露风险,不符合要求,该选项错误;系统设计阶段就考虑学生隐私保护,符合信息安全规范与信息社会责任要求,该选项正确;能耗分析报表属于学校内部管理数据,随意在互联网分享存在信息安全风险,不符合要求,该选项错误;关闭服务器防火墙会使服务器失去安全防护,极易遭受网络攻击,不符合信息安全要求,该选项错误。故答案为:B。
【6题详解】
本题考查二进制编码的计算。首先计算位置部分所需二进制位数:一共3栋教学楼,需要满足2^n >=3,最少需要2位;每栋楼有24间教室,需要满足2^n>=24,最少需要5位,位置部分共需要2+5=7位。再计算传感器编号所需位数:每个终端最多连接4个传感器,需要满足2^n >=4,最少需要2位。总二进制位数最少为7+2=9位。故答案为:C。
7. 某校组织学生进行“试题整理”活动,每天提交一次,一周累计总积分(K)超过35,即达标。每日积分(S)依据完成的题数(P)和时间(T)进行核算:18:00前完成,每题得1.2;超过20:00完成,每题得0.8,其余时间每题计1,同时,每日积分上限为12,超出部分不计入周总积分。判断某学生一周积分是否达标的部分流程图如图所示,表达式为:①K>35?②T<18:00?③S>12?④T>20:00?,则(1)-(4)处表达式序号依次为( )
A. ②④③① B. ④②③① C. ③②④① D. ①②③④
【答案】A
【解析】
【详解】本题考查流程图逻辑与条件判断。根据题意,每日积分S的核算规则为:18:00前完成(T<18:00)每题1.2,超过20:00完成(T>20:00)每题0.8,其余时间每题1.0,且每日积分上限12(S>12时取12),最终判断周总积分K>35是否达标。分析流程:(1)处对应18:00前的判断,即②T<18:00?;(2)处对应超过20:00的判断,即④T>20:00?;(3)处对应每日积分上限的判断,即③S>12?;(4)处对应周总积分是否达标的判断,即①K>35?。因此,(1)-(4)处表达式序号依次为②④③①,本题选择A选项。
8. 栈s的初始为空,经过一系列入栈、出栈操作,元素入栈的顺序是“功”“成”“马”“到”,若出栈的顺序是“马” “到” “成”“功”,则栈s 的最小长度为( )
A. 1 B. 2 C. 3 D. 4
【答案】C
【解析】
【详解】本题考查栈的基本性质与进出栈操作规则。我们按照给定入栈顺序和出栈顺序逐步模拟操作过程:按入栈顺序依次将“功”“成”“马”入栈,此时栈中共有3个元素,栈长度为3; 第一个出栈元素为“马”,出栈后栈长度变为2;将下一个元素“到”入栈,此时栈中共有3个元素,栈长度回到3;依次出栈“到”“成”“功”,栈长度逐步降为0。整个过程中栈的最大长度为3,因此满足该出栈顺序的栈最小长度为3。故答案为:C。
9. 某二叉树的中序遍历序列为XY。若增加一个叶子节点Z,则新二叉树的中序遍历结果不可能的是( )
A. ZXY B. XZY C. XYZ D. YXZ
【答案】D
【解析】
【详解】本题考查二叉树的中序遍历规则。原二叉树仅包含X、Y两个节点,中序遍历为XY,原二叉树仅有两种合法结构:①X为根节点,Y是X的右子节点;②Y为根节点,X是Y的左子节点。Z是新增的叶子节点,逐一分析可能性:ZXY:在结构②中将Z作为X的左叶子节点插入,中序遍历结果为ZXY,该结果可能;XZY:在结构②中将Z作为X的右叶子节点插入,中序遍历结果为XZY,该结果可能;XYZ:在结构①中将Z作为Y的右叶子节点插入,中序遍历结果为XYZ,该结果可能;YXZ:原二叉树中序为XY,X始终在Y之前,若要得到YXZ,Y需要出现在X之前,与原二叉树的性质矛盾,该结果不可能。故答案为:D。
10. 定义如下函数:
def f(n):
if n <= 2:
return 1
elif n ==3:
return 2
else:
return (n-1)*(f (n-1)+f (n-2))
执行语句x=f(5)后,x的值为( )
A. 24 B. 28 C. 44 D. 70
【答案】C
【解析】
【详解】本题考查Python递归函数的执行逻辑。逐步计算f(5):f(1)=1,f(2)=1,f(3)=2,f(4)=(4-1)*(f(3)+f(2))=3*(2+1)=9,f(5)=(5-1)*(f(4)+f(3))=4*(9+2)=44,因此,本题选择C选项。
11. 定义如下函数:
def search(a, key):
i = 0; j = len(a)-1
while i <= j:
m = (i+j)//2
if a[m] ==key:
break
elif a[m] > key:
j = m-1
else:
i = m+1
return i == j
列表a中有1023个互不相同的整数且按升序排列,若调用该函数返回值为True,则列表a中符合key的元素个数为( )
A. 128 B. 256 C. 512 D. 1023
【答案】C
【解析】
【详解】本题考查二分查找算法的执行逻辑与返回值判断。列表a有1023个互不相同的升序整数,长度为2^10-1,其二分查找判定树为高度10的满二叉树。函数search中,当找到key且此时i==j(即区间长度为1)时返回True,这对应于判定树中的叶子节点。满二叉树叶子节点数为2^(10-1)=512,因此使函数返回True的key有512个。因此,本题选择C选项。
12. 有如下 Python 程序段:
from random import randint
a = [3, 1, 6, 8, 12, 14, 20, 9, 10, 11]
n, total = len (a), 0
for i in range (n-1, -1, -2):
t = i-randint (0, i//2)*2
if a[t] % 2 == 0:
total += 1
else:
total-= 1
a[i], a[t] = a[t], a[i]
执行该程序段后,total的值为( )
A. -1 B. 1 C. 3 D. 5
【答案】A
【解析】
【详解】本题考查Python程序执行逻辑与随机函数的特性分析。程序中列表a长度为10,循环range(n-1, -1, -2)生成的i取值为9,7,5,3,1,共5次循环,所有i均为奇数索引;由t = i-randint (0, i//2)*2可知,减去的部分是偶数,因此t的奇偶性和i保持一致,交换操作仅在奇数索引之间进行,不会改变奇数索引位置上奇偶元素的总个数;统计原列表奇数索引位置的元素,共有2个偶数、3个奇数,结合规则:偶数使total加1,奇数使total减1,最终可得total = 2×1 + 3×(-1) = -1。故答案为:A。
二、非选择题(本大题共3题,其中第13题10分,第14题7分,第15题9分,共26分)
13. 某校学生宿舍安装智能用电监控系统,每个宿舍放置一个智能终端,电流传感器监测宿舍用电功率,每60秒采集一次数据,并由智能终端通过无线通信方式将数据传输至服务器,存储在数据库中。服务器实时处理数据,当监测到某个宿舍用电功率超过阈值则向管理员发送警报,并向智能终端发送控制指令,由继电器模块控制电源通断。
(1)关于该系统中硬件连接的说法,正确的是________(单选)。
A. 一个智能终端只能连接一个电流传感器
B. 一个智能终端可以同时连接电流传感器和继电器模块
(2)关于该系统数据传输与存储的说法,正确的有________(单选)
A. 智能终端只能通过Wi-Fi方式将数据上传至服务器
B. 传感器采集的数据先经过智能终端,再上传到服务器
C. 管理员接收到的警报信息是由智能终端发送的
(3)为了降低该系统数据传输的网络负荷,下列做法可行的是________(多选)
A. 设置传感器每30秒采集一次数据
B. 增加宿舍的电流传感器数量
C. 智能终端将与之连接的多个传感器所采集数据统一打包压缩后再上传至服务器
D. 智能终端对传集器采集数据进行判断,若与上一次数据不同则上传至服务器
(4)智能终端上的程序具有如下功能:当网络异常时,将数据暂存到本地(缓存上限为500条),当网络恢复正常时,先上传缓存数据,再上传当前数据。部分Python程序如下,请在程序中划线处填入合适的代码。
buffer =[] #缓存数据列表
while True:
power = read_power() #采集数据
if network_ok(): #网络正常
for p in buffer:
upload (p) #上传缓存数据
#消除缓存数据,代码略
________
else: #网络异常
if________
#删除缓存列表中最早存入的数据元素,代码略
#将当前数据power添加到缓存数据列表buffer的末尾,代码略
#延时60秒,代码略
(5)系统运行时,管理员频繁收到某个宿舍用电功率超过阈值的警报,经核查,该宿舍并未使用大功率电器。简要说明可能造成上述问题的原因。
【答案】(1)B (2)B (3)CD
(4) ①. upload(power) ②. len(buffer)== 500或len(buffer)>=500
(5)①电流传感器故障,读数偏大;②智能终端发生故障,导致误判;③电网电压波动导致功率瞬时超标。其他合理的答案(任写两条)
【解析】
【小问1详解】
本题考查物联网系统的硬件连接知识。智能终端可扩展多个IO接口,能够同时连接不同功能的外设,既可以连接采集数据的电流传感器,也可以连接执行控制的继电器模块,同时一个智能终端也可以连接多个电流传感器,因此第一个选项错误,第二个选项正确。故答案为:B。
【小问2详解】
本题考查物联网系统的数据传输流程。智能终端的无线通信方式不只有Wi-Fi,还可以使用蜂窝网络、NB-IoT等方式,第一个选项错误;根据题干描述,传感器采集的数据先传给智能终端,再由智能终端上传到服务器,第二个选项正确;警报是服务器检测到超阈值后发送给管理员,不是智能终端发送,第三个选项错误。故答案为:B。
【小问3详解】
本题考查物联网数据传输的优化方法。提高采集频率会增加数据总量,增大网络负荷,第一个选项错误;增加传感器数量也会提升需要传输的数据总量,增大网络负荷,第二个选项错误;多传感器数据打包压缩可以减小传输体积,降低负荷,第三个选项正确;仅上传变化的数据可以减少冗余传输,降低负荷,第四个选项正确。故答案为:CD。
【小问4详解】
本题考查物联网缓存逻辑与Python程序设计。根据需求,网络正常时上传完所有缓存数据后,需要上传当前采集的最新功率数据,因此第一处填upload(power);网络异常时缓存上限为500条,只有缓存长度达到/超过上限才需要删除最早数据,因此第二处判断条件为len(buffer)>=500(或len(buffer)==500)。
【小问5详解】
本题考查物联网系统的故障分析能力。未使用大功率电器却频繁报警,一般是采集、参数或环境原因导致,合理即可。故答案为:①电流传感器故障,采集读数偏大;②电网电压波动导致瞬时功率超标(其他合理答案如阈值设置偏低、终端数据传输错误等也可,任写两条即可)。
14. 智能用电监控系统采集了某校部分学生宿舍3月份用电功率数据,系统每60秒记录一次用电功率数据(单位:W) ,用电功率超过2000W时系统发送警报。将第1周的用电功率数据导出,存于"data. xlsx"文件中,部分数据如图a所示。现要对这些数据进行分析,请回答下列问题:
(1)统计本周引发警报次数最多的宿舍,并绘制该宿舍本周每天引发警报次数的折线图,如图b所示。
实现上述功能的程序代码如下,请选择合适的代码填入划线处。
import pandas as pd
import matplotlib. pyplot as plt
plt. rcParams[' font. sans-serif'] = ['SimHei'] #用来正常显示中文标签
df = pd. read_excel ("data. xlsx") #读取文件
dfl=①________
df2=df1. groupby("宿舍号", as_index=True). count () #分组计数
#重命名df2中“功率”列名称为“次数”,代码略
df3 =②________
m= df3. index[0] #获取宿舍号,如502
print("警报次数最多的宿舍号为: ",m)
df4 = df1[df1["宿舍号"]==m]
rq=[]
for i in df4. index:
rq. append (str(df4. at[i,"时间"])[8:10]+"日")
df4. insert (2, "日", rq) #插入一列,列名“日”,值为列表rq
df5 =③________
plt. plot (df5. index, df5. values)
#设置绘图参数,显示如图b所示的折线图,代码略
程序中①②③处可选的代码有:
A.df["功率"]>2000
B. df[df["功率"]>2000]
C. df2. sort_values("功率", ascending = False) #降序排序
D. df2. sort_values("次数", ascending = False) #降序排序
E. df4. groupby("日", as_index=False). count () #分组计数
F. df4. groupby ("日", as_index=True)["宿舍号"].count() #分组计数
(2)将某宿舍一周的用电功率数据(按时间顺序)存储于列表data中,要求找出最长的连续子序列,该序列中任意两个相邻数差的绝对值不超过50,如果这样的序列有多个,则选择数值总和最小的序列(若仍有多个,选择最早出现的),输出其长度和起始下标。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读入功率数据,按时间顺序存储于列表data中,如data-[713.66, 521.43,…],代码略
n= len (data)
mlen = 1
st = 0
i = 0
s= data[0]
while i<n:
j = i
while①________:
j += 1
t = j-i+1
if t > 1:
total = 0
for k in data[i:j+1]:
total += k
if t > mlen or (t == mlen and total < s):
mlen = t
s = total
②________
i = j+1
print("最长平缓变化序列长度:",mlen,"起始下标:",st)
【答案】(1) ①. B ②. D ③. F
(2) ①. j<n-1 and abs(data[j+1]-data[j])<=50 ②. st = i
【解析】
【小问1详解】
①:我们需要先筛选出功率超过2000W(即触发警报)的所有记录,因此需要用布尔筛选得到子集,df[df["功率"]>2000]符合要求,选B。 ②:已经将df2的功率列重命名为次数,现在需要按警报次数降序排序,让次数最多的宿舍排在第一位,因此按次数降序排序,选D。 ③:后续绘图用df5.index作为x轴(日期)、df5.values作为y轴(次数),因此需要将分组的日设为索引,分组计数得到每日次数,df4.groupby ("日", as_index=True)["宿舍号"].count()符合要求,选F。
【小问2详解】
①:内层循环的作用是从当前起点i开始,向后扩展连续符合条件的子序列,循环条件是:还没到列表末尾j+1 < n,且下一个数和当前j位置数的差绝对值不超过50,因此填j<n-1 and abs(data[j+1]-data[j])<=50。 ②:当找到更长的序列,或者同长度但总和更小的序列时,除了更新长度mlen、总和s,还需要更新最长序列的起始下标st,当前序列的起始是i,因此填st = i。
15. 某工厂需采购一批材料,为实现总费用最低,需计划每日采购量。为了制定合理的每日采购量,工厂综合考虑材料的每日消耗量、市场每日的价格波动、库存量等因素,通过分析历史数据和市场趋势,先预测未来n天材料单价,再根据工厂每日固定消耗x单位的材料和仓库容量v(v≥x)来模拟每天的采购量。例如:预测未来3天该材料的单价分别为“5,6,4”(单位:元),现工厂每日消耗1个单位的材料,仓库容量为5个单位,则模拟采购计划量的过程如下:
第1天(单价5元):计划以当日单价采购6个单位材料,其中1个单位材料用于当日工厂生产,5个单位材料临时存入仓库。
第2天(单价6元):当日单价高于仓库中的材料单价5元,消耗库存中1个单位的材料用于当日生产。再以当日 6 元单价计划采购1个单位材料临时存入仓库。
第3天(单价 4元):当日单价低于仓库中单价5元和6元的材料,计划以当日单价采购6个单位材料,其中1个单位材料用于当日工厂生产,5个单位材料用于替换仓库中原有的材料。
3天后,退还仓库中剩余的5个单位的材料,因此,材料的单价分别为“5,6,4”的计划采购量为“2,0,1”。
请回答以下问题
(1)若已知某工厂每日消耗2个单位的材料,仓库容量为8个单位,连续4天的原材料单价为“6,4,5,3” (单位:元) ,计划采购量为___________。
(2)定义如下use (a, head, x)函数,a链表每个元素包含三个数据项,依次为第几天、剩余数量、指针,链表已按材料单价升序,head为头指针,x为消耗量。函数功能是查找单价最低的材料用于消耗,并返回剩余材料的头指针。
def use (a, head, x):
y=x
while head !=-1 and a[head] [1] <= y:
y -= a[head] [1]
head = a[head] [2]
a[head] [1]-= y
return head
回答下面两小题
①若a=[[0,5,-1],[1,5,2],[2,1,-1],head=1,x=1 执行这个函数,返回值为____________。
②若函数里的语句head=a[head][2]写成了head=a[head][3],在使用测试数据测试时,程序一定会出现错误提示。这个说法对吗?_________(选填,对/错)
(3)编写Python程序如下,请在划线处填入合适的代码。
"""天数、最大库存、每日固定消耗保存在变量n、v、x,每天对应的单价按时间顺序保存在列表price中, price[0]=1000其中1000大于每天实际单价, price[i]为第i天原材料的单价(i=1, 2,…,n),代码略"""
buy = [0]*len(price)
a = [[0, v,-1]]
head, buy [0] = 0, v
for i in range (1, len(price)):
rep = 0
q, p = -1, head
while①________
q=p
p= a[p][2]
while p !=-1:
②_______
buy[a[p] [0]] -= a[p] [1]
p= a[p][2]
a. append ([i, rep+x,-1]) #为a追加一个元素
buy[i] = rep+x
if q != -1:
a[q][2] = len(a)-1
else:
③________
head = use (a, head, x)
#退还仓库里剩余的材料,代码略
total = 0
for i in range (1, len(price)):
total += buy[i]*price[i]
print("第"+str(i)+"天的采购量为:", buy[i])
print("采购的最小费用为", total)
【答案】(1)2,4,0,2
(2) ①. 1 ②. 错
(3) ①. p!=-1 and price[a[p] [o]] <= price[i] ②. rep += a[p][1] ③. head=len(a)-1
【解析】
【详解】本题考查贪心算法的应用、Python链表操作与代码逻辑分析能力。
(1)第1天(单价6):初始无库存,采购2+8=10,消耗2,剩余8入仓库;8个全部被第2天替换,最终采购量10-8=2。第2天(单价4):全部8个原有库存被替换,采购8+2=10,消耗2,剩余8入仓库;后续被用掉2个(第3天)、替换6个(第4天),最终采购量10-6=4。第3天(单价5):无库存需要替换,消耗2个原有库存,采购2填满仓库;2个全部入库存后被第4天替换,最终采购量2-2=0。第4天(单价3):全部8个原有库存被替换,采购8+2=10,消耗2,剩余8入仓库;结束后退还8个库存,最终采购量10-8=2。 最终结果为2,4,0,2。
(2)① 代入代码执行: 初始y=1,head=1,判断循环条件head!=-1 and a[head][1]<=y→a[1][1]=5 ≤ 1不成立,循环不执行,直接执行a[head][1]-=y后返回head,返回值为1。② 说法判断: 修改后只有当循环执行时,才会执行head=a[head][3],若循环不执行(如①的场景),该语句不会运行,不会触发索引越界错误,因此说法错误。
(3)①第一个循环功能是遍历升序链表,找到第一个单价大于当日单价的节点,因此循环条件为p != -1 and price[a[p][0]] <= price[i];②第二个循环遍历所有需要替换的节点,累加需要替换的总数量,因此填入rep += a[p][1];③若q=-1说明所有原节点都需要替换,新追加的节点成为链表新头,因此填入head = len(a) - 1。
第1页/共1页
学科网(北京)股份有限公司
$