為鼓勵綠色出行,某市推出了優(yōu)惠方案:乘一次地鐵后可以獲得一張優(yōu)惠券,在有效期45分鐘內(nèi)(含)可免費(fèi)搭乘一次公交車。有效期指乘公交車與乘地鐵的開始時刻之差。搭乘公交車時,可以使用優(yōu)惠券則一定會使用,如果有多張優(yōu)惠券滿足條件,則優(yōu)先消費(fèi)獲得最早的優(yōu)惠券。有人用Python編寫程序計算出行的費(fèi)用。他的某次出行過程如圖a所示,程序運(yùn)行結(jié)果如圖b所示。
請回答下列問題:
(1)請在橫線處填入合適的代碼。
def Ctime(t):
#自定義函數(shù)Ctime功能為將時間轉(zhuǎn)為分鐘計存入變量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],“時刻使用了優(yōu)惠券“)
head+=1head+=1
print(“總共花費(fèi)為:“,total)
(2)程序中加框處代碼有錯,請改正。 a[j][2]<a[j-1][2]a[j][2]<a[j-1][2]
(3)該程序主要應(yīng)用的數(shù)據(jù)結(jié)構(gòu)類型是 隊列隊列(選填:隊列/棧/鏈表/二叉樹)。
【考點(diǎn)】循環(huán)語句.
【答案】q[tail]=a[i][2];head==tail或q[head]==-1;head+=1;a[j][2]<a[j-1][2];隊列
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:3引用:1難度:0.3
相似題
-
1.用VB編寫程序:求滿足不等式“22+42+62+......+n2<1500”中n的最大值。VB程序如下所示,則橫線處應(yīng)填寫的語句為
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發(fā)布:2025/1/2 12:0:1組卷:0引用:1難度:0.5 -
2.執(zhí)行下面程序段后,變量a的值為( ?。?br />For i=1 To 3
For j=1 To i
For k=j To 3
a=a+1
Next k
Next j
Next i發(fā)布:2025/1/2 12:0:1組卷:0引用:0難度:0.5 -
3.現(xiàn)有5項工作分給5人完成,每人只能從事一項,每項只能由一人完成。每人完成各項工作效益如圖a所示,如何分配工作使總效益值最高?
算法思路:用5位各不相同的5進(jìn)制數(shù)表示一種不同的分配方案,如42301表示A從事4號工作,B從事2號工作……,據(jù)此可求出本方案的效益。枚舉所有可能的合法方案,求出效益值最大的方案。
小周同學(xué)幫忙設(shè)計了如下Python程序,運(yùn)行界面如圖b所示,請回答下列問題:
(1)若有3個人完成3項工作的效益值為[[5,7,4],[4,6,3],[6,2,5]],則總效益最大值為
(2)為實現(xiàn)上述功能,請在橫線處填入合適的代碼發(fā)布:2025/1/2 12:0:1組卷:0引用:1難度:0.3
相關(guān)試卷