深耕专业教研,探索前沿技术
信息技术来源:Z20+名校联盟2026届高三第三次学情诊断

第 13 题

答案与解析

第(1)小题

参考答案

B

题干明确传感器连接在智能终端上,由智能终端采集噪音数据并上传。增设传感器后,需要修改智能终端上读取、采集和上传传感器数据的相关程序。管理员终端用于浏览数据,报警终端用于接收报警信息。

第(2)小题

参考答案

A

选项分析

A

能提高报警准确度。不同位置的噪音情况可能不同,在多个位置采集数据能扩大监测范围,减少单一位置不能反映室内噪音情况造成的漏报或偏差。

B

不能提高报警准确度。增大采集间隔会减少单位时间内的采样次数,更容易错过两次采集之间发生的噪音。

C

不能据此提高报警准确度。减小阈值会使更多记录触发报警,也可能将可接受的声音判为异常,增加误报。

第(3)小题

参考答案
  1. A

  2. D

按本题的排查思路,无线网络设备和服务器属于各自修室共用的环节。其余报警终端均能正常接收报警信息,说明共用的传输、处理环节能够工作,因此优先检查该自修室独有的采集和报警设备。

选项分析

A

可能。该室传感器故障可能导致采集值异常或无法取得噪音数据,使服务器未得到超阈值的数据,从而没有发出报警信息。

B

不符合本题的故障定位。若共用无线网络设备失效,各室的数据上传或报警信息传输都会受到影响,与其余报警终端均正常的条件不符。

C

不符合本题的故障定位。服务器负责处理各室数据并发送报警信息;若服务器整体故障,其余终端的报警接收也会受到影响。

D

可能。即使该室噪音数据已正常上传、服务器已发出报警信息,对应报警终端自身故障仍可能使它无法接收信息。

第(4)小题

参考答案

判断该自修室的传感器是否故障:暂时用其他正常自修室的同类型传感器替换待测传感器,保持原智能终端、连接方式和采集设置不变。施加足以超过报警阈值的测试噪音,并保持至完成一次采集与上报,查看数据及报警是否恢复正常;若恢复正常,再换回原传感器,在相同条件下复测。若故障重现,可判定原传感器存在故障。

替换前后保持测试条件和其他设备不变,异常随原传感器换入而重现,才能把故障定位到该传感器。使用系统已有的正常传感器,符合不新增设备的要求。

第(5)①小题

参考答案
  1. E

  2. C

数据处理过程

df=pd.read_excel("data.xlsx")

读取本月的噪音监测数据,得到 DataFrame df。结合图 a,每行是某自修室在某一时刻的一次采集记录,包含“名称、日期、小时、分钟、噪音值”五列。

dft=df[df.噪音值>40]

只保留噪音值大于 40 的记录,得到报警明细 dft。噪音值等于 40 的记录不满足条件,不计入报警次数。

甲
m=dfr.values[0][0]
print("本月报警次数最多的自修室:",m)

甲处理结果存入 dfr。随后 values[0][0] 取该表第一行第一列的值赋给 m,并输出;这要求甲处理后的第一行第一列能提供题目所求的自修室名称。

乙
plt.bar(dfr.日期,dfr.名称)
plt.show()

乙再次处理数据后,绘图语句以 dfr 的“日期”列为横坐标,以“名称”列为柱高。因此,乙的结果需要保留这两列,并使“名称”列保存题目要求的每日报警次数。

填空分析

甲

题目按噪音值超过 40 的采集记录统计报警次数,dft 已保留这些记录。应先按“名称”分组,对各自修室的报警记录计数,选择 E:

dfr=dft.groupby("名称",as_index=False).噪音值.count()

count() 统计记录数,不是将噪音值相加。聚合后每行对应一个自修室,“噪音值”列的含义变为报警次数;as_index=False 使“名称”保留为普通列。随后 m=dfr.values[0][0] 取第一行第一列,因此还必须把报警次数最多的自修室排到第一行,选择 C:

dfr=dfr.sort_values("噪音值",ascending=False)

排序不会重置原 index,但 values[0][0] 按行列位置取值,仍能取得排序后首行的自修室名称。

E 执行后的表结构如下,N_A、N_B 为各自修室本月报警次数的示意符号。

index 名称 噪音值
0 A N_A
1 B N_B
… … …

第(5)②小题

参考答案
  1. B

  2. F

共用程序分析见第(5)①小题。

填空分析

乙

甲已经使 m 保存本月报警次数最多的自修室名称。要统计该室每天的报警次数,应回到报警明细 dft,先筛选名称为 m 的记录,选择 B:

dfr=dft[dft.名称==m]

若从原始 df 筛选,会把未超过阈值的记录也计入;甲处理后的 dfr 已按自修室汇总,也不再保留逐条记录的日期。接着按“日期”分组,对“名称”列计数,选择 F:

dfr=dfr.groupby("日期",as_index=False).名称.count()

筛选后每行都是该室的一次报警记录,因此统计名称出现的次数,就得到每日报警次数。聚合后的“日期”列作为柱形图横坐标,“名称”列保存次数,作为柱高,与 plt.bar(dfr.日期,dfr.名称) 对应。两条语句的顺序为 B、F。

F 执行后的 DataFrame 结构示意如下。t₁、t₂ 表示该室发生报警的日期,C₁、C₂ 表示相应日期的报警次数,均为示意符号。

index 日期 名称
0 t₁ C₁
1 t₂ C₂
… … …