题库 题目列表 有2组器件共n个,要用一台检测设备检测。每个送检器件...
组合题

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

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

请回答下列问题:

第 1 题 填空

由题意可知,第l5题图中器件ABCD的检测顺序为A-C-D-BACD的等待时长分别为0l0B的等待时长是__________

第 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组数据中能测试出这一问题的是_________(单选,填字母)。

A1stl=[[032][430]]

    lst2=[[112J]

B1stl=[[112]]

    1st2=[[032][430]]

C1stl=[[l12][430]]

    lst2=[[032]]

D1stl=[[430]]

    1st2=[[032][l12]]

第 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组器件的数据,分别存入列表data1data2中。2个列表的每个元素包含3个数据项,分别对应器件的送达时间、检测时长和优先级。data1data2中的数据已分别按送达时间升序排列,代码略

读取优先级等级个数存入m,代码略

data=mergedata1data2

printprocdatam))

题目信息
填空题 高考及会考
-
正确率
0
评论
163
点击