【正文】
for i in range (1,6), i的范圍是從1到5,不包括6。故本題選D選項二、程序填空31.錯誤1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,沒取到23,故應(yīng)改為: range(1,24)錯誤2:縮進(jìn)錯誤,y=35x、if 4*x+2*y==94:是for語句中的語句塊,應(yīng)縮進(jìn)。print(兔子有%s只,雞有%s只%(x,y))是if語句中的語句塊,應(yīng)縮進(jìn)?!驹斀狻勘绢}考查的是Python調(diào)試。本題程序錯誤如下:錯誤1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,沒取到23,故應(yīng)改為: range(1,24)錯誤2:縮進(jìn)錯誤,y=35x、if 4*x+2*y==94:是for語句中的語句塊,應(yīng)縮進(jìn)。print(兔子有%s只,雞有%s只%(x,y))是if語句中的語句塊,應(yīng)縮進(jìn)。調(diào)試完最終輸出:兔子有12只,雞有23只。32.字符串 字符串 我的鏡像世界通行密碼是153 轉(zhuǎn)換為字符串 連接字符串 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①who=39。我的39。,可知變量who的數(shù)據(jù)類型字符串。②number=39。15339。 ,類似number的數(shù)據(jù)類型也為字符串。③print( who+destination+code+action+str(number)),是將變量字符串拼接后輸出,故print語句輸出的結(jié)果是我的鏡像世界通行密碼是153。④str(number)的作用是轉(zhuǎn)換為字符串。⑤“+”在程序中的作用是連接字符串。33.C D B D C 【詳解】本題主要考查Python程序調(diào)試。①Python程序for循環(huán)格式是:for 變量 in range( ),故程序中①處應(yīng)填寫in,選C選項。②程序中x%4的作用是計算x除以4的余數(shù),選D選項。③colors=[red, green, blue, yellow],依次循環(huán)從colors中取顏色,故執(zhí)行此程序,繪制出圓形的總顏色數(shù)是4,故本題選B選項。④x的范圍是從0到99,故執(zhí)行此程序,繪制出圓形的總個數(shù)是100個,選D選項。⑤此程序?qū)儆诔绦蛟O(shè)計結(jié)構(gòu)中的循環(huán)結(jié)構(gòu),選C選項。34.①a(i)=Asc(tmp)64或a(i)=Asc(tmp)Asc(A)+1 ②i–m+1To i–m+k ③t=(c(i)–1) Mod 26+1 【詳解】本題考查乘法運算規(guī)則的理解以及轉(zhuǎn)置矩陣中行列數(shù)據(jù)的讀取。(1)根據(jù)算法描述,圖中(1)處的值為155+141+02+09=89。(2)程序先隨機(jī)生成數(shù)組b,其下標(biāo)為1到kk,并以行列的形式顯示在列表框list2中(即為轉(zhuǎn)置矩陣),然后讀取大寫字符串s中的每個字符,并將每個字符轉(zhuǎn)換成相應(yīng)字母表中的位置存儲在數(shù)組a中。代碼①處為字符轉(zhuǎn)成相應(yīng)的字母表中位置值,下方代碼將a(i)輸出在列表框listl中,故此處應(yīng)獲取a(i)的值。根據(jù)題干描述“字符A~Z對應(yīng)數(shù)值1~26”,此處為將tmp獲取的字符通過Asc函數(shù)進(jìn)行轉(zhuǎn)換,語句為“a(i)=Asc(tmp)64”,還可以是“a(i)=Asc(tmp)Asc(″A″)+1”。代碼②處為循環(huán)變量j的取值范圍,根據(jù)乘法規(guī)則,變量j的范圍是每一段中的1到k之間的值,需要獲取每一段的起始位置下標(biāo),結(jié)合上文得到的m值,可得循環(huán)變量的范圍是“im+1 To im十k”。代碼③處是將計算結(jié)果c(i)按原長度轉(zhuǎn)換成相應(yīng)大寫字符,計算結(jié)果要求除以26取余,若直接寫成c(i)Mod 26,則導(dǎo)致數(shù)值26的結(jié)果為0,因此需要先減1,Mod后再加1這樣的處理技巧,因此答案為“(c(i)1)Mod 26+1”。35.i%j==0 t=i t=t//10 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①此處是處理從2開始到i開方加1,若能整除i則表明i不是素數(shù),否則直到循環(huán)結(jié)束,表明i是素數(shù),故此處填i%j==0。②若i是素數(shù),則將變量i賦給變量t,并通過while循環(huán)將t的每一位取出來并加到summ中,故此處填t=i。③同理此處取出個位數(shù)后,更新t的值繼續(xù)循環(huán),故此處填t=t//10。36.xingzuo[“小紅”] xingzuo[“小蘭”]=“水瓶座” xingzuo[“小貝”]=“雙子座” del xingzuo 【詳解】本題主要考查字典數(shù)據(jù)類型。①字典數(shù)據(jù)類型,可以通過檢索字典的鍵值得到對應(yīng)的值,即xingzuo[“小紅”]=‘處女座’,故第一空填xingzuo[“小紅”]。②將“小蘭”同學(xué)的星座修改為“水瓶座”,可以通過語句xingzuo[“小蘭”]=“水瓶座”。③同理添加小貝的信息為,xingzuo[“小貝”]=“雙子座”。④刪除該字典的表達(dá)式是del xingzuo。37.m%n r r=m%n n gcd(a,b) 【詳解】本題主要考查Python程序設(shè)計。①首先對m和n求余得到r,判斷r是否為0,故此處填m%n。②如果r為0則結(jié)束,否則更新m的值為n,n的值為r。③此處用更新后的m和n繼續(xù)求r,繼續(xù)判斷,故填r=m%n。④循環(huán)結(jié)束后當(dāng)r=0時,n即為最大公約數(shù),故填n。⑤輸入a、b的值,使用函數(shù)gcd求a和b的最大公約數(shù),故填gcd(a,b)。38.參考答案1:for i in range(2,101): j=2 while j=i: if i%j==0: break j+=1 if ji: continue else: print(i,end= )參考答:2:for i in range(2,101): for j in range(2,i): if(i%j==0): break else:print(i)【詳解】本題考查是Python語言編程解決問題。break 語句可以立即終止當(dāng)前循環(huán)的執(zhí)行,跳出當(dāng)前所在的循環(huán)結(jié)構(gòu)。無論是 while 循環(huán)還是 for 循環(huán),只要執(zhí)行 break 語句,就會直接結(jié)束當(dāng)前正在執(zhí)行的循環(huán)體。這就好比在操場上跑步,原計劃跑 10 圈,可是當(dāng)跑到第 2 圈的時候,突然想起有急事要辦,于是果斷停止跑步并離開操場,這就相當(dāng)于使用了 break 語句提前終止了循環(huán)。答案中代碼的實現(xiàn)過程見下圖:參考答案1:參考答案2:39.layer = int(input(請輸入需要打印的層數(shù):))for x in range(1,layer+1): for y in range (1,x+1): print(*, end=) print()【詳解】本題主要考查Python循環(huán)結(jié)構(gòu)。Python for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串。range可以生成一個整數(shù)列表,列表范圍根據(jù)接收的layer來確定。外層循環(huán)用于確定輸出行數(shù),內(nèi)層循環(huán)用于控制每行符號個數(shù)?!军c睛】40.34 chick_num 【詳解】本題主要考查Python程序的執(zhí)行。①公雞數(shù)量的范圍120,for cock_num in range(1,21)表示變量cock_num的范圍是120,故此處填21。②母雞的數(shù)量可能為133,同理,故此處填34。③此處是按順序使用print()函數(shù)輸出公雞數(shù)量、母雞數(shù)量、小雞數(shù)量,故此處填chick_nu