資源簡介 第三章 算法的程序實現 檢測練習一、選擇題1.以下表達式運算結果為True的是( )A.23%200**1/2<-2**4+4*2B."Hz" in "Hangzhou Asian Games"C.abs(int(-4.65))==round(4.65)D.not False and not True or not False2.某python程序如下:s=[3,3,3,6,6,8,11,11,9,4,2,5]r=[]for i in range(1,len(s)-1):if not(s[i-1]s[i]>s[i+1]):if s[i-1]==s[i]:continuej=len(r)-1while j>=0 and s[i]<=s[r[j]]:j-=1if j==len(r)-1 or j==-1:j+=1r=r[:j]+[i]+r[j:]print(r)程序運行后,輸出的結果為( )A.[3,6,10] B.[6,11,2] C.[6,3,10] D.[10,3,6]3.用python算法控制結構描述“如果報名人數超過10人則輸出活動升級,若小于3人則輸出活動取消,否則輸出活動正常舉行”,設t為報名人數,下列選項正確的是( )A. B. C. D.4.使用 Python 程序編程探究平面上圓與圓的位置關系,程序代碼如下:def judge(a,b):dis=(cir[a][0]-cir[b][0])**2+(cir[a][1]-cir[b][1])**2if dis==(cir[a][2]+cir[b][2])**2: return 1return 0#cir存儲"A"、"B"、"C"三個圓的 x,y 坐標及半徑cir={"A":[1,1,1],"B":[4,5,4],"C":[0,2,1]} cnt=judge("A","B")+judge("A","C")+judge("B","C")運行程序后,變量 cnt 的值是()A.3 B.2 C.1 D.05.用python程序處理圖像文件“chenchen.jpg”,該圖像顏色位深度為24bit,圖像如圖所示:程序代碼如下:from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltimg=np.array(Image.open("chenchen.jpg").convert("L"))rows,cols=img.shapefor i in range(rows):for j in range(cols):if():img[i,j]=1else:img[i,j]=0plt.imshow(img,cmap="gray")plt.show()下列說法正確的是( )A.待處理圖像的文件名為“chenchen”B.處理后的圖像像素數將增加C.將加框處語句中的“>”改為“<=”,則處理后的圖像中黑白色將互換D.將加框處語句中128改為188,則處理后圖像中的黑色部分將減少6.已知:food="milkeggbread",feel={1:"love",2:"like",3:"hate"},people=["he","she","it"],則表達式people[2]+feel[2][2:4]+food[1::4]的值是( )A.itkeige B.itteige C.itkemer D.itikeige7.用Python程序對分辨率為500*500的圖像文件white.jpg(如圖所示)進行處理,程序段如下:from PIL import Imageim = Image.open("white.jpg").convert("L")#打開圖像文件,并將其轉換為灰度圖像pix=im.load()#加載圖像像素數據width,height=im.size#獲取圖像寬度值和高度值for x in range(width):for y in range(height):if x<= width//2 and y<= height//2:if x%50 == 0 or y%50 == 0:pix[x,y]=0elif y > height//2:if x == y:pix[x,y]=0im.show()執行上述程序段后,顯示的圖像效果是( )A. B. C. D.8.有如下Python程序段:import randoms1="PROGRESS";s2=""f=[False]*8for i in range(1,5):t=random.randint(0,3)*2+1while f[t]:t=random.randint(0,3)*2+1f[t]=Trues2=s2+s1[t]print(s2)執行該程序段后,顯示的值不可能是( )A.EGRS B.GERS C.SEOR D.RESG9.輸入一個正整數 n 和一個字符 c,輸出一個 n 行由字符 c 組成的等腰三角形如圖二所示。以下代碼組合能夠正確繪制圖形的是( )def san(n,c): for i in range( ①): print( ②)n= ③(input('輸入一個正整數'))c= ④input('輸入一個字符')⑤A. ①n ②' '*(n-1-i),c*(i*2+1) ③int ④不填 ⑤san(n,c)B. ①n ②' '*(n-i),c*(i*2+1) ③float ④int ⑤san(n,c)C. ①n ②c*(i*2+1),' '*(n-1-i) ③int ④不填 ⑤san(c,n)D. ①n ②c*(i*2+1),' '*(n-i) ③float ④float ⑤san(c,n)A.A B.B C.C D.D10.有如下Python程序段:a = [123,32,66,12,54,95,211]p = q = a[0]for x in a[1:]:if x < p:p,q = x,pelif x < q:q = xprint(q)執行該程序段后,輸出的結果是( )A.123 B.32 C.211 D.1211.完全數是指真因子(即除了自身以外的約數)之和等于它本身的自然數。def per_num(x):sum=1#①for i in range(2,x):#②if x % i == 0:#③sum = sum + i#④return x == sumprint(per_num(6))則下列說法正確的是( )A.上述程序段有誤,應將①處語句更改為“sum=0”B.②處語句可以更改為“for i in range(x,2,-1)”C.③處語句的執行次數比④處語句的執行次數多D.函數返回值為False12.現有雞兔同籠,上有11頭,下有28腳。試計算籠中雞、兔各有多少只(設雞有a只,兔有b只)。下列代碼中不能正確計算雞、兔數量的是( )A. B.C. D.13.有如下 Python 程序:print("輸入兩個正整數")n = int(input("輸入正整數 1:"))m = int(input("輸入正整數 2:"))min = 0if m > n:min = nelse:min = mfor i in range(min,0,-1):if n % i == 0 and m % i == 0:print(i)break分別輸入 200、98,程序運行后,輸出結果正確的是( )A.1 B.2 C.3 D.414.列表 a 為某學生一天主要運動消耗熱量的情況,列表 b 為各項運動,為了求出這六項運動一共消耗多少熱量,空白處代碼正確的是( )a={'慢走':95,'自行車':100,'羽毛球':122,'爬樓梯':180,'跳繩':245,'慢跑':221}b=['慢走','自行車','羽毛球','爬樓梯','跳繩','慢跑'] s=0for i in ① :②print('總消耗量為:'+ ③ )A.①b ②s=a[i]+s ③ s B.①b ②s+=a[i] ③ str(s)C.①a ②s=a[i]+s ③ s D.①a ②s+=a[i] ③ str(s)15.有如下 Python 程序:s='134b6aac5a678905'c=1a=[]for i in range(1,len(s)):if s[i]>s[i-1]:c+=1else:a.append(s[i-c:i]) #list.append(x)在列表 list 末尾添加元素 xc=1print(a)程序運行后,輸出的結果正確的是( )A.['134b', '6aac', '5a', '6789']B.['134b', '6aac', '5a', '6789',’05’]C.['134b', '6a', 'ac', '5a', '6789',’05’]D.['134b', '6a', 'ac', '5a', '6789']二、填空題16.以下python程序段執行后,輸出結果為 。m=29if m % 3 != 0:print(m,"不能被3整除")else:print(m, "能被3整除")17.若輸入123,以下Python程序的運行結果為 。x=int(input("輸入一個三位正整數:"))a=x//100b=x//10%10c=x%10y=a+b+cprint(y)18.a=2,b=3,c=1,d=5 a+b>c+d and a**3>=c+d or not c>0 or d<0的值是 。19.以下用于將小時h折算成秒s的Python表達式正確的有( )(多選)①s=h*60**2 ②s=h*(60**2) ③s=h*60*60 ④s=h*60*2 ⑤s=(h*60)***220.已知a=2,b=1,以下Python程序段運行結束后,b的值是 。21.已知a=4,b=2,c=6時,以下Python程序運行結束后,i的值是 。22.以下Python程序運行后,當輸入20時,輸出結果是 。23.寫出該式子的表達式:24.函數的定義使用的關鍵字為 。25.循環控制可能使用 語句和continue語句控制循環的跳轉。三、操作題26.上城小學將在本學期開展趣味運動會,一(10)班的班主任邀請你為他們設計一個Python程序,用于挑選參加集體項目的選手。挑選規則為:當班級有足夠候選人員時,進行隨機挑選,并輸出人員名單;若無足夠人員時,提示“無足夠候選人員參加比賽!”,并規定每個學生最多參加一個集體項目。程序要求用戶按照規范輸入比賽項目及相關人員要求,例如輸入“投籃:8,2”即籃球項目要求男生8人,女生2人。該程序的運行效果如下圖所示:(1)實現挑選集體項目選手的python代碼如下,請在劃線處填入合適代碼。(2)程序加框處代碼有誤,請改正。from random import shuffledef disp(inf):#將輸入的字符串整理為指定格式,當輸入字符串為"跳繩:10,10;投籃:8,2",則將其調整為{"跳繩":[10,10],"投籃":[8,2]}并返回。def player(x,n):for p in range(len(x)):if p>=n:①print(x[p],end=" ")return x[n:]c=[["陳浩琦","男"],["王慧敏","女"],["王子涵","男"],]#班級學生名單ctemp=[[],[]]for② in c:if p[1]=="男":ctemp[0].append(p[0])#append()函數的功能為在列表末尾插入新元素else:ctemp[1].append(p[0])inf=input("請輸入比賽項目及相關人員要求:")s=["男","女"]sj=disp(inf)for t in sj:#變量遍歷字典中的每個鍵if sj[t][0]<=len(ctemp[0])andsj[t][1]<=len(ctemp[1]):print(t+"項目:")for i in③ :print(s[i],end=":")shuffle(ctemp[i])#shuffle用于將序列的所有元素進行隨機排序print()else:print(t+"項目:\n無足夠候選人員參加比賽!")27.一個n位數,如果每一位上的n次冪之和等于它本身,那么這個數我們稱之為自冪數。下列代碼可以實現輸入數字長度n之后,輸出所有n位自冪數,并統計個數。程序運行效果如下圖所示:(1)尋找n位數的Python程序如下,程序使用算法為 (單選,填字母:A.解析算法B.枚舉算法)。(2)請在程序劃線處填入合適的代碼。n=int(input("請輸入你想要找幾位自冪數:"))count=0sum1=0for i in range(1*10**(n-1),1*10**n):a=iwhile a>0:①a=a//10if i==suml:count+=1print(i)②print("n位自冪數一共有"+③ +"個")28.三位一體(綜合評價招生)是指部分高校拿出一定比例的招生名額,實行的面對浙江考生的以高考成績、學校綜合測試成績和學業水平考試成績三種成績,按照一定的規則計算出綜合成績后,擇優錄取考生的一種錄取形式。已知某校的“三位一體”綜合成績計算方法如下:綜合成績=高考成績×850÷750+校測成績+學考折算成績學考折算成績=學考成績之和×30%,其中A等10分,B等9分,C等8分,D等6分,其它等級0分。例如:某考生高考成績630分,校測成績96分,學考成績為“BAAAAABCCA”,學考折算成績為94×30%,則其綜合成績=630×850÷750+96+94×30%。現已知申報某校某專業的學生信息(如圖a所示)存儲在文件“info.xlsx”中,編寫Python程序實現,輸入擬錄取人數,輸出擬錄取學生信息的功能,運行界面如圖b所示。(1)已知某學生的學考成績為“ABACCDAAAB”,則其學考折算成績是(2)計算綜合成績的Python程序段如下,請在劃線處填入合適代碼:import pandas as pddf = pd.read_excel("info.xlsx")def score_xk(s):①for ch in s:if ch == 'A':score+=10elif ch==’B’:score+=9elif ch==’C’:score+=8:score+=6return score*0.3df["綜合成績"]=df["高考成績"]*850/750+df["校測成績"]+②(3)若將第(2)小題中加框處代碼改為else,對程序運行結果 (填:有/無)影響。(4)依據擬錄取人數,輸出擬錄取學生信息cnt = int(input("擬錄取人數:"))print("擬錄取學生信息如下:")df1=______print(df1)為實現輸出如圖b的效果,劃線處可以填寫的語句是 (多選,填字母。注:多選錯選不給分)A.df.sort_values("綜合成績",ascending=False).head(cnt)B.df.sort_values("綜合成績",ascending=True).head(cnt)C.df.sort_values("綜合成績",ascending=False).tail(cnt)D.df.sort_values("綜合成績",ascending=True).tail(cnt)E.df.sort_values("綜合成績",ascending=False)[:cnt]四、簡答題29.先后輸入兩個數,如果前一個數大于后一個數,則交換前后兩個數的值;否則,兩個數保持不變。30.字母轉換題目描述:輸入一個小寫字母,輸出其對應的大寫字母。例如輸入 q[回車] 時,會輸出 Q。輸入輸出樣例:輸入q輸出Q31.高級語言的編譯過程和解釋過程各有什么優勢和不足。32.列舉Python程序設計語言中,IF 語句的三種常見格式。33.蘋果和蟲子問題。你買了一箱n個蘋果,很不幸的是買完時箱子里混進了一條蟲子。蟲子每x小時能吃掉一個蘋果,假設蟲子在吃完一個蘋果之前不會吃另一個,那么經過y小時你還有多少個完整的蘋果?輸入:輸入僅三行,包括n,x和y(均為整數)。輸出:輸出也僅一行,剩下的蘋果個數樣例輸入:1049樣例輸出:7參考答案:1.D2.D3.D4.B5.C6.A7.D8.C9.A10.B11.C12.C13.B14.B15.D16.不能被3整除17.618.False19.①②③20.421.222.2023.(4*a*c-b**2)/(2*a)24.def25.break26. ctemp[i]=player(ctemp[i],sj[t][i]) break p range(len(ctemp))或range(2)27. B sum1=sum1+(a%10)**n sum1=0 str(count)28. 27 score=0 score_xk(df["學考成績"]) 有 AE29.a=int(input("請輸入第一個整數:"))b=int(input("請輸入第二個整數:"))if a-b>0: a,b=b,a print(a,b)else:print(a,b)30.word=input().upper()print(word)31.(1)編譯型語言優點是程序執行速度快,程序執行效率高,同等條件下對系統要求較低。不足之處是跨平臺性差些。(2)解釋型語言優點是不同系統平臺間的兼容性高。不足之處是程序執行效率比較低。32.單分支語句格式:If(條件表達式):語句A雙分支if語句格式:If(條件表達式):語句Aelse:語句Bif...elif...else語句格式:If(條件表達式):語句1elif:語句2...elif:語句Nelse:語句N+133.n=int(input())x=int(input())y=int(input())print(int(n-y/x)) 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫