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
0:
if ik=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))
2023 年 1 月浙江省普通高校招生选考科目考试
技术试题参考答案
第一部分信息技术(共 50 分)
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分)
题号 1
答案 D
2
A
3
C
4
B
5
D
6
B
7
B
8
C
9
B
10
A
11
C
12
D
二、非选择题(本大题共 3 小题,其中第 13 小题 8 分,第 14 小题 9 分,第 15 小题 9 分,
共 26 分)
13.(1)A(1 分)
(2)A(1 分)
(3)/toserv(2 分)
(4)BD(2 分)