(1)实验室某天09:30前学生进出情况如图a所示,09:00时实验室内的学生数为。
| 学号 | 1010 | 1021 | 3009 | 1010 | 2081 | 3009 | 1021 | 
| 时间 | 08:00 | 08:05 | 08:20 | 08:45 | 08:50 | 08:50 | 09:15 | 
| 行为 | 进 | 进 | 进 | 出 | 进 | 出 | 出 | 
图a
(2)定义如下函数,用于统计在实验室连续停留时间少于5分钟的学生人次。参数b列表中每个元素包含3个数据项,依次为学号、时间(用分钟表示,例如08:05表示为485)和行为(1表示进,-1表示出)。列表b用于存放某天学生进、出实验室的记录,每条进(出)的记录都有一条与之对应的出(进)记录。
def fcount(b):
       
i=cnt=0
while i < len(b)-1:
if b[i+1][1]-b[i][1]<5:
cnt+=1
i+=1
return cnt
①要实现函数功能,方框处需实现对列表b的操作是(单选)。
A.按时间排序;时间相同时,按行为由大到小排序
B.按学号排序;学号相同时,按时间由小到大排序
C.按行为排序;行为相同时,按学号由小到大排序
②若函数fcount(b)的功能修改为统计“学生离开实验室后,8分钟内返回”的情况出现的次数,可将函数中划线处代码修改为:and b[i][1]-b[i-1][1]<8。
(3)仪器预约系统中,学生可在线预约仪器使用时段,系统按预约提交顺序逐个处理,如果预约的使用时段有仪器可用,预约成功,否则失败。
实现预约处理功能的函数如下,其中用到的部分列表函数与方法如图b所示,请在划线处填入合适的代码。
| 函数与方法 | 功能 | 
| 1st.insert(i,x) | 在列表1st中下标为i的位置插入元素x。若i大于等于len(lst),则在1st末尾添加元素x。 | 
图b
""
函数参数data列表存放已按提交顺序排列的预约信息,每个元素包含4个数据项,依次为学号、起始时间、终止时间、是否成功。其中起始、终止时间都用8位数字字符串表示,如“09280830”表示9月28日8点30分,“是否成功”数据项用于存放每个预约的处理结果。
参数m存放实验室仪器台数。
""
def proc(data,m):
a=[]
for i in range(len(data)):
①
pl=0
while pl < len(a)and a[p1][0] < data[i][1]:
pl+=1
if pl > 0:
p2=p1-1
else:
p2=0
while p2 < len(a) and a[p2][0] < data[i][2]:
if②:
flag=False
break
p2+=1
if flag:
for j in range(p1,p2)
a[i][1]+=1
a.insert(p2,[data[i][2],0])
a.insert(p1,[data[i][1],1])
if pl>0:
①
a[p2+1][1]=a[p2][1]-1
data[i][3]=flag
(1)将监测点1的数据导出,存于pHdata.xlsx文件中,如图a所示。现要找出pH均值最高的月份,并统计该月pH大于8的日分布情况,绘制如图b所示的柱形图。实现上述功能的部分Python程序如下,请选择合适的代码填入划线处(单选)。

import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel("pHdata.xlsx")
dfl=df.groupby("月",as_index=False).pH.mean() #分组求平均
df2=①
#将df2首行的月份存入m,代码略
print("pH值最高月份序列为:",m)
df_m= ②
df_ex=df_m[df_m["pH">8] #筛选
df_cnt=③
#重命名pH列名称为"次数",代码略
plt.bar(df_cnt["日"],df_cnt["次数"])
#设置绘图参数,显示如图b所示的柱形图,代码略
程序中①②③处可选的代码有:
A.df[df["月"]==m]
B.df2[df2["月"]==m]
C.df.sort_values("pH",ascending=False) #降序排序
D.df_ex.groupby("日",as_index=False).pH.count() #分组计数
E.dfl.sort_values("pH",ascending=False)
F.df_ex.groupby("时",as_index=False).pH.count()
(2)将7-12月的pH数据存储于列表data中,要求出一个最长连续序列,其中每个pH值均在正常范围内。如果这样的序列有多个,则选择数值总和最小的序列(若仍有多个,选择最早出现的),输出其长度和起始下标。实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
#读入pH数据,按采集的时间顺序存储于列表data中,代码略
max n=start=maxt=0
①
while i < len(data):
if 6<=data[i]<=8:
total=0
k=i
while i < len(data) and 6 <= data[i] <= 8:
total+=data[i]
i+=1
②
if n>maxn:
maxn=n
start=k
maxt=total
elif ③:
start=k
maxt=total
i+=1
#输出最长连续序列的长度maxn和起始下标start,代码略

(1)pH数据从采集到存入数据库的数据流向为(单选)。
A.传感器→服务器→智能终端→数据库
B.传感器→智能终端→服务器→数据库
(2)该系统的数据处理(单选)。
A.全部在服务器端完成
B.全部在智能终端完成
C.部分在智能终端完成,部分在服务器端完成
(3)若连接在智能终端上的5G模块突发故障不能工作,会引发的问题有(多选)
A.无法通过浏览器访问溶解氧历史数据 B.智能终端无法传输pH数据至服务器
C.服务器向智能终端传送控制信号失败 D.服务器向管理员发送警示信息失败
(4)智能终端每小时获取的3个pH数据分别存入y1、y2和y3,将中位数存入m的部分流程图如图所示。图中①处应填入。
(5)现需增加水温监测的功能,在智能终端接入温度传感器后,还需对软件部分作多处修改。请用文字描述其中1处修改建议。
def bsearch(data,key):
i,j=0,len(data)-1
while i<=j:
m=(i+j)//2
for k in range(m-1,m+2):
if i<=k<=j and data[k]==key:
return k
if data[m] < key:
i=m+2
else:
j=m-2
return-1
如果调用函数返回结果不正确,则data可能是( )