(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