为鼓励绿色出行,某市推出了优惠方案:乘一次地铁后可以获得一张优惠券,在有效期45分钟内(含)可免费搭乘一次公交车。有效期指乘公交车与乘地铁的开始时刻之差。搭乘公交车时,可以使用优惠券则一定会使用,如果有多张优惠券满足条件,则优先消费获得最早的优惠券。有人用Python编写程序计算出行的费用。他的某次出行过程如图a所示,程序运行结果如图b所示。

请回答下列问题:
(1)请在横线处填入合适的代码。
def Ctime(t):
#自定义函数Ctime功能为将时间转为分钟计存入变量s,代码略。
return s
'''
读取出行记录,存储在列表a中,a[i][0]、a[i][1]、a[i][2]依次存储交通工具类型、票价、乘坐开始时刻。交通工具类型a[i][0]值为0表示地铁,1表示公交车。代码略。
'''
n=len(a)
for i in range(n):
a[i][2]=Ctime(a[i][2])
for i in range(n-1):
for j in range(n-1,i,-1):

a[j],a[j-1]=a[j-1],a[j]
#输出出行记录,代码略。
total=0
head=tail=0
q=[-1]*n
for i in range(n):
if a[i][0]==0:
total+=a[i][1]
q[tail]=a[i][2]q[tail]=a[i][2]
tail+=1
else:
while head<tail and q[head]<a[i][2]-45:
head+=1
if head==tail或q[head]==-1head==tail或q[head]==-1:
total+=a[i][1]
else:
print(a[i][2],“时刻使用了优惠券“)
head+=1head+=1
print(“总共花费为:“,total)
(2)程序中加框处代码有错,请改正。 a[j][2]<a[j-1][2]a[j][2]<a[j-1][2]
(3)该程序主要应用的数据结构类型是 队列队列(选填:队列/栈/链表/二叉树)。
【考点】循环语句.
【答案】q[tail]=a[i][2];head==tail或q[head]==-1;head+=1;a[j][2]<a[j-1][2];队列
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/6/27 10:35:59组卷:3引用:1难度:0.3
相似题
-
1.用VB编写程序:求满足不等式“22+42+62+......+n2<1500”中n的最大值。VB程序如下所示,则横线处应填写的语句为
Dim s As Integer,i As Integer
i=2
s=i*i
Do While s<1500
______
s=s+i*i
Loop
i=i-2
Print i发布:2025/1/2 12:0:1组卷:0引用:1难度:0.5 -
2.执行下面程序段后,变量a的值为( )
For i=1 To 3
For j=1 To i
For k=j To 3
a=a+1
Next k
Next j
Next i发布:2025/1/2 12:0:1组卷:0引用:0难度:0.5 -
3.现有5项工作分给5人完成,每人只能从事一项,每项只能由一人完成。每人完成各项工作效益如图a所示,如何分配工作使总效益值最高?
算法思路:用5位各不相同的5进制数表示一种不同的分配方案,如42301表示A从事4号工作,B从事2号工作……,据此可求出本方案的效益。枚举所有可能的合法方案,求出效益值最大的方案。
小周同学帮忙设计了如下Python程序,运行界面如图b所示,请回答下列问题:
(1)若有3个人完成3项工作的效益值为[[5,7,4],[4,6,3],[6,2,5]],则总效益最大值为
(2)为实现上述功能,请在横线处填入合适的代码发布:2025/1/2 12:0:1组卷:0引用:1难度:0.3