题型:综合题 题类: 难易度:困难
浙江百校2023年9月高三信息技术起点调研测试卷
编号登记:为n位体检者设置体检编号1~n。
体检呼叫:体检项目处空闲时呼叫下一个体检者(编号小的优先),若多个项目同时呼叫,体 检者到优先级小的项目处体检。仅考虑常规体检项目,各个项目的优先级及体检时间如表1所示:
前去体检:各个体检项目之间相互独立,互不影响;病人排队体检和体检完毕到下一科室之 间没有时间延迟。
deflst(n):
que=[]
que.append(temp)
return que
若加框处语句改为:
则执行语句lst(4),que的生成结果 (选填:是/否)相同。
Python部分程序如下 , 请在划线处填入合适的代码。
n=10
head=0
que=lst(n)
tail=10
dis=[['B超', 12],[ '心电图' , 5],['抽血', 2],['尿常规' , 2],['C14检测', 2],['胸透' , 2], ['一般常规(身高体重血压)', 1]]
t=[-1]*7 #t记录各个项目当前体检的开始时间
f=[-1]*7 #f记录各个项目当前体检人员编号
def jh(num):
global tail #global能够实现在自定义函数中改变公共变量tail
p=head
while p<tail:
if que[p][0]not in fand num not in que[p][1]: #p体检者等待中且未体检num项目
que[p][1].append(num)
t[num]=time
if len(que[p][1])==7:
temp=que[p]
for i in range(p , tail-1):
que[i]=que[i+1]
que[tail-1]=temp
tail-=1
break
p=p+1
time=0
while tail! =head:
i=0
while i<7:
if t[i]==-1:
jh(i)
elif :
t[i]=-1
f[i]=-1
i-=1
i+=1
time+=1
print('体检完成顺序:')
for i in range( ): #按体检完成顺序输出体检者及其的体检项目顺序
item= que[i][1]
s= ' '
for j in item:
s+=dis[j][0]+'→'
print('编号%d:%s'%(que[i][0], s[:-1]))
摸牌规则:
A.当某花色牌不足3张,则记录摸到的牌,继续摸下一张牌
B.当某花色的牌超过3张时,若摸到的卡牌点数大于本花色中已有卡牌点数的最小值,则替换本花色中点数最小的卡牌,否则,弃置摸到的牌。继续下一-张摸牌
C.当所有花色的牌均为3张时结束摸牌。然后按花色编号从小到大展示摸到的卡牌
例如:在某次摸牌后的卡牌如下表所示:
花色 |
黑桃 |
红桃 |
梅花 |
方块 |
||||||||
序号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
点数 |
7 |
5 |
12 |
11 |
3 |
8 |
7 |
5 |
8 |
5 |
3 |
1)当下一次摸到“黑桃4”的牌时,4小于已摸到的[7,5,12],弃置摸到的牌,继续摸牌
2)当摸到“红桃9”的牌时,9大于已摸到的[11,3,8]的最小值3,红桃更新为[11,9,8],继续摸牌
3)当摸到“梅花9”的牌时,梅花点数更新为[7,5,9],达到所有花色的牌均为3张的目标,结束摸牌。
模拟此过程编写VB程序,程序运行界面如下图,单击“展示摸到的卡牌”按钮开始摸牌,满足条件时,在列表框中展示摸到的卡牌。
试题篮