学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.40
所属科目:高中信息技术

有2组器件共n个,要用一台检测设备检测。每个送检器件的信息包含送达时间、检测时长和优先级。优先级有m(l<m<6)个等级。由高到低分别用0-m-l的整数表示。每个机器件的送达时间各不相同,已送达的器件按照各优先级通道分别排队,先到达先入队,设备每次检测都从当前各非空队列中,选取优先级最高的队列的队首器件出队进行检测。(同一时刻出现入队和出队时,先处理入队。)

编写程序模拟检测过程,先合并2组器件的数据,然后计算所有器件的平均等待时长,其中每个器件等待时长为其开始检测的时间与送达时间的时间差。(时间单位均为秒)


请回答下列问题:
(l)由题意可知,图中器件A、B、C、D的检测顺序为A-C-D-B,A、C、D的等待时长分别为0、l、0,B的等待时长是__________

(2)定义如下merge(1stl,lst2)函数,参数lstl和lst2的每个元素由送达时间、检测时长和优先级3项构成,1stl和lst2均已按送达时间升序排列。函数功能是将lst2中的元素合并到1stl中,并将1stl按送达时间升序排列,函数返回1stl。
def merge(1stl,Ist2)
i=len(lstl)-l
j=len(lst2)-1
for t in range(len(lst2)):
             1stl.append([0,0,0])             #为1stl追加一个元素[0,0,0]
             k=len(1stl)-1
while j>=0:
             if i>=0 and 1stl[i][0]>lst2[j][0]:
                         1stl[k]=1stl[i]
                         i-=l
            else:
                         1stl[k]=lst2[j]
                         j-=l
            k-=1
return 1stl
①调用merge(1stl,lst2)函数,若1stl为([0,3,2],[1,1,2],[12,2,2]],1st2为[2,l,1],[4,3,0],[1l,3,2]],则while语句中循环体的执行次数是___________
②若函数中while语句的条件“j>=0”误写为“k>=0”,会导致某些情况下无法得到符合函数功能的结果。调用merge(1stl,lst2)函数,下列4组数据中能测试出这一问题的是_________(单选,填字母)。
A.1stl=[[0,3,2],[4,3,0]]
lst2=[[1,1,2J]
B.1stl=[[1,1,2]]
1st2=[[0,3,2],[4,3,0]]
C.1stl=[[l,1,2],[4,3,0]]
lst2=[[0,3,2]]
D.1stl=[[4,3,0]]
1st2=[[0,3,2],[l,1,2]]
(3)实现模拟检测过程并计算平均等待时长的部分Python程序如下,请在划线处填入合适的代码。
def proc(data,m):
n=len(data)
queinfo=[]
for i in range(m):
                  queinfo append([-l,-1])       #queinfo追加一个元素[-l,-1]
for i in range(n):
                 data[i].append(-1)             #data]追加一个元素-1
curtime=0
waitnum=0
i=0
_________
while i<n or waitnum>0:
                 if i<n and datalill0]<=curtime:
                                 k=data[i][2]
                                 if queinfo[k][0]==-l:
                                               queinfo[k][0]=i
                                 else:
                       ___________
                                               data[p][3]=i
                                 queinfo[k][1]=i
                                 waitnum+=l
                                 i+=l
                  elif waitnum>0:
                                k=0
                              while queinfo[k][0]= =-1:
                                           k+=l
                                p=queinfo[k][0]
                                total +=curtime-data[p][0]
                                curtime+=data[p][1]
               _________
                                waitnum-=1
                 else:
                           curtime=data[i][0]
return total/n
读取2组器件的数据,分别存入列表data1和data2中。2个列表的每个元素包含3个数据项,分别对应器件的送达时间、检测时长和优先级。data1和data2中的数据已分别按送达时间升序排列,代码略
读取优先级等级个数存入m,代码略

data=merge(data1,data2)
print(proc(data,m))
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交