為鼓勵綠色出行,某市推出了優(yōu)惠方案:乘一次地鐵后可以獲得一張優(yōu)惠券,在有效期45分鐘內(nèi)(含)可免費(fèi)搭乘一次公交車。有效期指乘公交車與乘地鐵的開始時(shí)刻之差。搭乘公交車時(shí),可以使用優(yōu)惠券則一定會使用,如果有多張優(yōu)惠券滿足條件,則優(yōu)先消費(fèi)獲得最早的優(yōu)惠券。有人用Python編寫程序計(jì)算出行的費(fèi)用。他的某次出行過程如圖a所示,程序運(yùn)行結(jié)果如圖b所示。
請回答下列問題:
(1)請?jiān)跈M線處填入合適的代碼。
def Ctime(t):
#自定義函數(shù)Ctime功能為將時(shí)間轉(zhuǎn)為分鐘計(jì)存入變量s,代碼略。
return s
'''
讀取出行記錄,存儲在列表a中,a[i][0]、a[i][1]、a[i][2]依次存儲交通工具類型、票價(jià)、乘坐開始時(shí)刻。交通工具類型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],“時(shí)刻使用了優(yōu)惠券“)
head+=1head+=1
print(“總共花費(fèi)為:“,total)
(2)程序中加框處代碼有錯(cuò),請改正。 a[j][2]<a[j-1][2]a[j][2]<a[j-1][2]
(3)該程序主要應(yīng)用的數(shù)據(jù)結(jié)構(gòu)類型是 隊(duì)列隊(duì)列(選填:隊(duì)列/棧/鏈表/二叉樹)。
【考點(diǎn)】循環(huán)語句.
【答案】q[tail]=a[i][2];head==tail或q[head]==-1;head+=1;a[j][2]<a[j-1][2];隊(duì)列
【解答】
【點(diǎn)評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復(fù)制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:3引用:1難度:0.3
相似題
-
1.如下 Python 程序段:
n=int(input(“請輸入正整數(shù)n:”)) s=“”
while n>0:t=n%2 s=s+str(t) n=n//2
print(s)
該部分程序段運(yùn)行時(shí),輸入的值為“12”,則輸出的結(jié)果是( )發(fā)布:2024/12/20 10:30:1組卷:0引用:2難度:0.5 -
2.有如下Python 程序段:
執(zhí)行完以上程序段后,輸出的內(nèi)容為( ?。?/h2>發(fā)布:2024/12/19 18:0:2組卷:1引用:4難度:0.4 -
3.有如下程序段:
Dim s(1 To 81)As Integer,i As Integer,j As Integer,c As Integer,temp As Integer
c=0:s(1)=0
For i=1 To 9
For j=1 To i
temp=s(j*i)
s(j*i)=j*i
If temp<>s(j*i) And s(j*i) Mod 9=0 Then c=c+1
Next j
Next i
該程序段運(yùn)行后,變量 C 的值為( ?。?/h2>發(fā)布:2024/12/20 19:0:1組卷:0引用:2難度:0.5
把好題分享給你的好友吧~~