充值活动已开启,快来参与吧 关闭充值活动
试题
  • 试卷
  • 试题
学段: 学科:
上传图片
或拖拽图片,或截图后Ctrl + V上传图片
图片上传失败(原因:图片不够清晰或未拍摄完整)
(图片大小不超过10M)
今日剩余可使用:0
搜索
清空
当前位置: 高中信息技术 /
  • 1. 某校实验室有多台相同的实验仪器,每台仪器同一时间仅限一位学生使用。现要开发一个仪器预约系统,开发前先对实验室的学生进出记录进行统计分析。请回答下列问题:

    (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