資源簡介 第四章 程序設計基礎 檢測練習一、選擇題1.模擬飛行棋擲骰子操作,實現該功能的Python程序段如下:import randomnum=print("您所擲骰子的點數為:"+str(num))程序劃線處應填入的代碼為( )A.random.randint(1,7) B.random.choice(range(1,6))C.int(random.random( )*6)+1 D.int(random.random()*5)+12.下列Python表達式,值為False的是( )A.14//6<14/6 B."20"<"8" C.len("18%4")<23%5 D.int(2.5)<2.13.有如下Python程序段:from random import randoma=[1]*5i=1while i<=4: a[i]=int(random()*10)+1 if a[i]==a[i-1]//2 or a[i]==a[i-1]*2: i+=1執行該程序段后,數組a的值可能是( )A.[1,2,1,2,1] B.[1,2,4,8,16] C.[2,1,2,1,2,] D.[8,4,2,4,8]4.lst1和lst2都是升序排序的列表,執行如下Python程序段:result=[]i=0#用于遍歷1st1j=0#用于遍歷1st2while i if lst1[i] result.append(lst1[i]) i+=1 else: result.append(lst2[j]) j+=1while i result.append(lst1[i])#② i+=1while j result.append(lst2[j])#③ j+=1下列說法不正確的是( )A.程序段①執行后,result可能與lst1相同 B.程序段①執行后,result可能與lst2相同C.在一次程序運行中,②處代碼和③處代碼可能都被執行 D.程序執行后,列表result中的元素升序排序5.有如下Python程序段:n=int(input())a=[0,0,0,0,0,0,0,0,0,0]c=0while n>0: a[n%10]=a[n%10]+1 if a[n%10]==1: c=c+1 n=n//10print(c)執行上述程序段,若輸出c的值為4,則輸入n的值可能為( )A.1123 B.2373 C.14551 D.200456.運行下列Python程序后的結果為( )colors=["red","yellow","blue"]print(colors[2])A.red B.yellow C.blue D.red yellow7.在Python程序中,關系表達式a==b的運算結果是( )A.整型 B.布爾值 C.浮點型 D.字符串8.有如下Python程序段:a=[3,4,7,9,12,17]i = a[0];j =a[5];tar =20;ans =-1while i <=j: mid=(i + j)//2 tmp=0 for k in range(len(a)): if a[k]>mid: tmp += a[k] - mid if tmp >= tar: ans = mid;i = mid+1 else: j = mid -1執行該程序段后,變量ans的值為( )A.-1 B.6 C.7 D.109.變量a=2;b=3,下列表達式正確的是( )①a+b ②"a"+"b" ③a+"b" ④a*"b" ⑤"a"*"b" ⑥str(a)+"b" ⑦str(a)+str(b)A.①②⑤⑥⑦ B.①②④⑥⑦C.①②④⑤⑦ D.①②③⑥⑦10.下列 Python 程序段的功能:統計出物化技組合成績大于等于270分的人數。# 某次測試七名學生的物理、化學、技術成績被存儲在變量 score 中score={"物理":[87,85,83,90,85,88,91],"化學":[91,92,85,90,89,84,92],"技術":[97,89,93,95,93,87,94]}count=0km=["物理","化學","技術"]for i in range(7):sum=0for j in km:__________if sum>=270:count+=1print("成績大于等于 270 分的人數",count)為實現上述功能,劃線處正確的 Python 表達式是( )A.sum+=score[i][j] B.sum+=score[j][i] C.sum+=score[j] D.sum+=score[i]11.下列表達式中,結果為True的是( )A.len(["hello"])==5B.not (4/2**3 <= 1)C.3 >= 4 or not (3==2 and 3<=2)D.11%2 != 0 and False12.某Python程序如下:s=″0923HangzhouYayunhui″; t=″″for i in range(len(s)):j=s[i]if not j>=″a″ or j>″z″:t=″″t=j+tprint(t)程序運行后,輸出的內容是( )A.ayunhui B.Yayunhui C.iuhnuya D.iuhnuyaY13.某Python程序如下:item={"競技類":["鐵人三項","電子競技","霹靂舞"],"球類":["足球","籃球","乒乓球"],"對抗性":["拳擊","跆拳道","卡巴迪","擊劍"],"水上":["跳水","龍舟","帆船"]}print(item["對抗性"][2][::-1])執行該程序段后,輸出的結果是( )A.跆拳道 B.道拳跆 C.卡巴迪 D.迪巴卡14.有如下Python程序段:from PIL import Imageimg=Image.open(″logo.jpg″)i=0while i<=2:img.rotate(i*90)#rotate():逆時針旋轉圖片,參數為旋轉角度i+=1img.show()圖logo.jpg原圖如下圖所示,運行該程序段后,圖像顯示為( )A. B. C. D.15.下列Python表達式的返回值為4的是( )①16/len(″ab″)**2 ②abs(round(-1.7)*2)%8③chr(ord(″0″)+4) ④int(str(1010+90)[1:4])//25A.①② B.①③ C.②④ D.③④16.如下Python程序運行結束時,變量i和s的值分別是( )i=0s=0while i<5: i+=1 s=s+iprint("i=",i,"s=",s)A.i=5 s=10 B.i=4 s=10 C.i=5 s=15 D.i=4 s=1517.在Python當中,可以使用( )語句退出循環。A.continue B.break C.goto D.quilt18.在Python程序設計語言當中,雙分支語句通過使用( )實現。A.if B.if...else C.if...elif...else D.case19.順序結構是最常用最簡單的程序結構,其語句執行順序是( )A.自上而下 B.自下而上 C.由內到外 D.由外到內20.在Python程序設計語言當中,如果x=12.357,執行語句print("%.2f"%x),則輸出結果為( )A.12.357 B.12.35 C.12.36 D.12.4二、填空題21.判斷變量a是否能被4整除,書寫成Python語言表達式為 。22.小申根據如圖1所示的七月份氣象數據,編寫程序繪制如圖2所示的七月份日平均風速異常情況檢測可視化圖形。小申編寫的程序如下所示,請將程序填寫完整。import pandas as pd import matplotlib. pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] df=pd.read_csv('七月氣象數據.csv',encoding='ansi') plt.title('2022年7月日平均風速異常情況檢測') plt.boxplot( ) plt.show()23.小申編寫了run.py文件用于實現登錄模塊的業務邏輯。請協助小申把左側內容拖動至右側對應的虛線框中,將程序編寫完整。(1)處對應的字母是(2)處對應的字母是24.小申選用了Flask模塊作為服務器端的服務框架。若如圖交互界面中“提交”按鈕的請求目標為”/create”,請在服務器端主控程序中與之關聯的路由函數的橫線處填空。@app. route(" ", methods = ('GET', ‘POST') )25.某Python程序代碼如下:list1=[2,3,4,5,6]m1=1m2=2for n in list1: if n%3==0: m1*=nprint (m1-m2)程序運行后,輸出的結果為三、判斷題26.自定義函數的參數是必不可少的。( )27.高級語言通用性好,可讀性強,便于修改維護,所以它是一種自然語言。( )28.NAME、name、Name、NaMe是不同的變量。( )29.在Python語言中,表達式(2>4)and(8>9)的結果是True。( )30.不能用for 、in、if等關鍵字作為變量名。( )四、操作題31.某工程的A項目有n個任務組(編號為0~n-1),供料商每小時只提供1份原料,各組按到達時刻(到達時刻各不相同)陸續加入領料隊列,領取1份原料后到隊列末尾重新等待,直至領完所需原料,離開隊列。若多組同時入隊,則到達時刻早的優先入隊。編寫程序模擬領料過程,先篩選出屬于A項目的任務組,再計算每個任務組完成領料的時刻(時間單位:小時),請回答下列問題:任務組別 到達時刻 原料需求量第0組 0 3第1組 1 2第2組 2 1圖a時刻 領料隊列 輪到領料的組別0 0 01 0,1 02 1,0,2 13 0,2,1 04 ▲5 1 1注:領料隊列中數字代表任務組編號圖b(1)某項目任務組信息如圖a所示,部分領料過程如圖b所示,結合題意,第4時刻的領料隊列是 (單選,填字母:A.2,1,0/B.2,1/C.2,0,1)。(2)定義如下filte(task,st)函數。def filte(task,st): i=0;j=0;n=len(task)-1 while j<=n: if task[j][0]==st: task[i]= task[j] i+=1 j+=1 return i若task的值是[['A',0,3],['B',1,3],['B',2,6],['A',3,4],['A',4,5]],st的值是"A",執行語句m=filte(task,st)后,m的值是 。(3)編寫程序模擬任務組領料過程,輸出每個任務組完成領料的時刻,部分Python程序如下,請在劃線處填入合適的代碼。def proc(task,st): m=filte(task,st) for i in range(m): task[i].append(-1) order=[0]*m i=0; ct = 0;t = 0 while i < m or t < m: if i < m and task[i][1] <=ct: if i==t: ① task[p][3]=i else: task[i][3]=task[p][3] task[p][3]=i p=i i+=1 if i>t: ② task[k][2] = task[k][2] -1 if task[k][2]=0: order[k]=ct ③ t+=1 else: p=task[p][3] ct+=1 return order```所有任務組數據存入task列表,task[i]包含3項,task[i][0]為該任務組項目名稱,task[i][1]為該任務組到達時刻,task[i][2]為該任務組原料需求量,數據按到達時刻升序排列,代碼略```st="A"print(proc(task,st)) #輸出該項目中每個任務組完成領料的時刻32.小溫為蘆丁雞飼養箱搭建了溫度監測系統。該系統中已選擇的硬件有IoT模塊、智能終端、溫度傳感器、執行器(溫度控制器)、服務器等。服務器通過無線網絡與智能終端相連接,智能終端連接傳感器和執行器。用戶通過瀏覽器查看數據庫中的數據。請回答下列問題:(1)若使用瀏覽器查詢系統的歷史數據,需向 發送查詢指令(單選,填字母:A.智能終端/B.服務器/C.傳感器)。(2)下列功能需在智能終端程序中實現的有 (多選,填字母:A.采集溫度傳感上的數據/B.傳輸數據到服務器/C.發送指令到執行器/D.分析歷史數據)。(注:全部選對的得2分,選對但不全的得1分,不選或有選錯的得0分)(3)小溫基于Flask Web框架編寫服務器端的程序,實現在瀏覽器的地址欄中輸入http://192.168.0.10:5050/query返回查詢結果的功能。能實現上述功能的部分代碼組合是 (單選,填字母:A.①③/B.②④/C.①④/D.②③)。①@app.route('/')def query(): #代碼略②@app.route('/query')def index(): #代碼略③target = '192.168.0.10'app.run(host = target,port = 5050)④target ='192.168.0.10:5050'app.run(host=target)(4)為解決蘆丁雞某段生長期容易缺氧和脫水的問題,可以增設哪些硬件設備來改善飼養箱環境?請寫出能解決其中一項問題的執行器和傳感器,并描述其功能。(5)小溫將系統中10月份溫度控制器開啟和關閉的數據導出,部分數據如圖a所示,分析10月21日至31日溫度控制器每天平均工作時長(單位:分鐘,保留整數位)。圖a 圖b部分Python 程序如下:import pandas as pdimport matplotlib.pyplot as pltdf= pd.read_csv("data.csv")#讀取數據df.insert(3,"時長",")#插入新列“時長”def timedif(t1,t2):#計算并返回t1,t2兩個時間的差值,代碼略for i in df.index:#調用 timedif 函數計算時長 df.at[i,"時長"]=timedif(df.at[i,"關閉"],df.at[i,"開啟"])dfa=df.groupby("① ",as_index=False)["時長"].mean()#分類計算平均值dft = dfa.tail(11)#選取10月21日至31日數據,dft內容如圖b所示Ist=[]for i in ② : lst.append(int(dft.at[i,"時長"]))#將時長轉為整數,存入1stprint(lst)#以列表的形式輸出結果33.求1到100之間能被3整除的數的個數。(1)分析問題,完善程序流程圖,補充程序流程圖中2處缺少的內容。程序流程圖中條件表達式的語法符合Python語言語法要求 ① ②(2)打開“考生文件夾\Colligate\160"文件夾中的文件“個數. py”,按照流程圖的順序,逐條編寫和完善相應的Python語句代碼,保存并調試。34.一個AABB形式的四位數,該數是另一個數的平方,問這個四位數是幾?(1)求一個3位數n十位上的數字a的值,判斷下列表達式中哪一個是正確的( )A、a=n%100 B、a=n-n//100%10 C、a=n%100//10 D、a=n//100(2)當邏輯運算符兩邊表達式的值都為真時,該邏輯表達式才為真,這叫邏輯① 運算,python語言中相對應的邏輯運算符是②(3)打開“考生文件夾\Colligate\138”文件夾中的文件“AABB.py”,對程序進行完善并運行調試,完成后保存文件。35.哥德巴赫猜想提出,任何一個不小于6的偶數都可以表示成兩個素數之和,請編寫程序,輸入任意一個大于等于6的偶數,輸出所有其等于兩個素數之和的式子。例如: 6=3+3; 18=5+13, 18=7+11。打開“考生文件夾\Colligate\142”文件夾中的文件“驗證哥德巴赫py”,對程序進行完善且不改變原程序的結構,在序號處填寫正確的代碼并把序號刪除, 調試完成后保存文件 。參考答案1.C2.C3.A4.C5.D6.C7.B8.B9.B10.B11.C12.D13.D14.B15.C16.C17.B18.B19.A20.C21.a%4==022.df["日平均風速"]23.B A24./create25.1626.錯誤27.錯誤28.正確29.錯誤30.正確31.B 3 p=i k=task[p][3] task[p][3]=task[k][3]32. B ABC D 通過加濕器調節濕度,通過濕度傳感器監測濕度數據。 日期 range(20,31)或dft.index33.s+1 或1+s i+1 或1+i34.C 與 and35.本題為上機題,按題目要求操作。 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫