資源簡(jiǎn)介 第二單元 編程計(jì)算 單元測(cè)試一、選擇題1.有如下Python程序:import randoma=[0,0,0,0,0,0]for i in range(6): a[i]=random.randint(1,10)for i in range(0,6): if i%2==0 and a[i]%2==0: a[i]//=2 else: a[i]+=1print(a)執(zhí)行程序后,列表a各元素可能是( )A.1,5,1,11,2,11 B.7,2,8,10,5,9 C.6,9,3,7,8,12 D.3,9,0,8,2,72.有如下Python程序段:dic={1:"2023",2:["杭州亞運(yùn)會(huì)"],3:"心心相融@未來(lái)",4:["Heart to Heart","@Future"]}cnt=0for i in range(3): cnt+=len(dic[i+1])print(cnt)該程序段運(yùn)行后,輸出的結(jié)果是( )A.16 B.12 C.10 D.33.有如下Python程序段:s="2023hz923yy108!"sum=t=0for i in s: if "0"<=i<="9": t=t*10+int(i) else: sum+=t t=0 print(sum)執(zhí)行該程序段后,變量sum的值為( )A.2023 B.2946 C.2131 D.30544.有如下Python程序段:s="PYTHON"ch=""i=0while i n=int(input("請(qǐng)輸入數(shù)字:")) t=(n+1)%6 ch=ch+s[t] i=i+1print(ch)運(yùn)行程序后,依次輸入3、1、4、5、2、6,輸出ch的值是( )A.THONPY B.OTNPHY C.YPNOHT D.TOPHNY5.在程序設(shè)計(jì)當(dāng)中,主要使用( )來(lái)實(shí)現(xiàn)判斷和選擇。A.順序結(jié)構(gòu) B.選擇結(jié)構(gòu) C.循環(huán)結(jié)構(gòu) D.判斷結(jié)構(gòu)6.在Python程序設(shè)計(jì)語(yǔ)言當(dāng)中,能夠?qū)崿F(xiàn)將變量x轉(zhuǎn)化成整型數(shù)據(jù)的函數(shù)是( )A.input() B.int() C.len() D.print()7.Python中的比較運(yùn)算符是( )A.!= B.=< C.= D.=>8.Pyhon中下列哪個(gè)變量命名是非法的( )A.8a B.a(chǎn)8 C. a8 D. 8a9.有如下Python程序段,若輸入的數(shù)據(jù)為“321AqC56”,則輸出的內(nèi)容為( )s=input("請(qǐng)輸入要處理的數(shù)據(jù):")t=0;sum=0for i in s:if "0"<=i<="9":t=t*10+int(i)elif "A"<=i<="Z":sum+=telse:t=0print(sum)A.642 B.321 C.698 D.37710.善于利用代碼復(fù)用的方法,可以( )A.減少代碼書(shū)寫的工作量 B.使程序的結(jié)構(gòu)更加清晰C.提高程序的效率 D.提高數(shù)字化分享的意識(shí)11.小張同學(xué)考慮用代碼復(fù)用的方法提高程序的編寫效率,下列做法可取的是( )A.自己編寫一些函數(shù)或模塊B.所有的算法都使用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)C.別人編寫的代碼不符合自己的習(xí)慣,從來(lái)都不用D.到代碼共享社區(qū)去下載函數(shù)或者模塊12.下列敘述錯(cuò)誤的是( )A.continue 語(yǔ)句的作用是結(jié)束整個(gè)循環(huán)的執(zhí)行B.只能在循環(huán)體內(nèi)使用break語(yǔ)句C.在循環(huán)體內(nèi)使用break 語(yǔ)句或continue語(yǔ)句的作用相同D.從多層循環(huán)嵌套中退出時(shí),只能使用goto語(yǔ)句13.下列循環(huán)語(yǔ)句的循環(huán)體執(zhí)行次數(shù)相同的是( )A.for i in range (10) B.for i in range (1,10) C.for i in range (2,10,2) D.for i in range (10,20)14.下列關(guān)于 for 循環(huán)的說(shuō)法正確的是( )A.for 循環(huán)通常用于循環(huán)次數(shù)未知的情況B.在 for 循環(huán)中,循環(huán)變量也稱為循環(huán)體C.在 for 循環(huán)中,可以用 break 語(yǔ)句跳出循環(huán)體D.在 for 循環(huán)中,循環(huán)體必須相對(duì)關(guān)鍵詞for有縮進(jìn)15.下列選項(xiàng)能表示完全結(jié)束循環(huán)的是( )A.close B.break C.continue D.ESC16.下面的程序用來(lái)輸出九九乘法表,外層循環(huán)一次,內(nèi)層循環(huán)最多執(zhí)行( )次。for i in range( 1,10): for j in range( 1,i+1): print("{0:1} *{1:1} ={2:2} ".format(j,i,j*i),end="") print()A.1 B.10 C.11 D.917.while 循環(huán)的條件表達(dá)式取值為( )時(shí),執(zhí)行循環(huán)體的語(yǔ)句組。A.True B.False C.True或False D.018.如圖所示程序,循環(huán)執(zhí)行的次數(shù)及運(yùn)行結(jié)果是( )n=18S=0for i in range(3,n): if n%i==0: S=S+1print(i,S)A.9 6 B.16 3 C.17 3 D.17 419.某python程序如下,程序運(yùn)行完后,變量k的值是( )s="Good-Luck-2023!"n=0;m=0;k=0for i in range(len(s)):ch=s[i]if ch>="0" and ch<="9":m=m+1elif ch>="a" and ch<="z":n=n+1else:k=k+1A.2 B.3 C.4 D.520.某python程序如下,程序運(yùn)行完后,輸出s2的值是( )s1="today"s2=""for c in s1:s2=c+s2print(s2)A.today B.yadot C.odayt D.tdyoa二、填空題21.寫出運(yùn)行結(jié)果。s=0while s<=30: s=s+10print(s)結(jié)果:22.以下Python程序運(yùn)行結(jié)束后,循環(huán)變量i的值是 。23.下面程序的運(yùn)行結(jié)果為( )24.def fun(n, k): arr = list(range(1, n+1)) index = 0 while arr: temp = arr. pop(0) index += 1 if index == k: #print(temp) index = 0 continue arr.append(temp) if len(arr) == 1: print(arr[0]) breakfun(41,3)輸出:25.刪除①②③,在該處填寫代碼,不要更改、刪除其他代碼,完善程序,實(shí)現(xiàn)功能:輸入 3 個(gè)數(shù),按照從大到小的順序輸出。a=float(input())b=float(input())c=float(input())if b>a: a,① ,aif c>a: a,c=c,aif ② : b,c=c,bprint("從大到小的順序是:", ③ )三、判斷題26.順序結(jié)構(gòu)和分支結(jié)構(gòu)的程序中每一條語(yǔ)句都會(huì)被執(zhí)行,且只執(zhí)行一次。( )27.在信息的編程加工里,算法設(shè)計(jì)是編程的核心。( )28.在for循環(huán)語(yǔ)句中,遍歷結(jié)構(gòu)不可以是字符串。( )29.編程解決問(wèn)題的核心步驟是編寫程序。( )30.下列程序段中,賦值語(yǔ)句 s=s+i 被重復(fù)執(zhí)行了 3 次。( )s=0for i in range(3,10,2): s=s+i四、操作題31.為迎接亞運(yùn)以便更好地接待外賓,蘭蘭在亞運(yùn)會(huì)前苦學(xué)英語(yǔ),在學(xué)習(xí)英語(yǔ)的過(guò)程中他發(fā)現(xiàn)部分英語(yǔ)單詞,正反拼寫都一樣,比如level(水平),pop(流行音樂(lè))等,現(xiàn)在他想在一篇英語(yǔ)文章中統(tǒng)計(jì)有幾個(gè)“回文單詞”,大小寫不影響回文判定,即“Level”也為回文單詞,程序運(yùn)行界面如圖所示。部分程序代碼如下:text=input("請(qǐng)輸入文章:")s=""①for i in range(len(text)): if "a"<=text[i]<="z": s+=text[i] elif "A"<=text[i]<="Z": s+=② else: if ③ : c+=1 print("第",c,"個(gè):",s) s=""print("這篇文章中一共有",c,"個(gè)回文單詞")(1)若輸入的文章為“Chinese radar is at a high level”,程序會(huì)輸出有 個(gè)回文單詞(2)請(qǐng)?jiān)谝陨螾ython程序段劃線①②③處填入正確的代碼。32.Base64編碼是計(jì)算機(jī)中常見(jiàn)的一種編碼方式,規(guī)則是把3個(gè)字節(jié)的數(shù)據(jù)按6位1組分成4組(24÷6=4),然后將每組數(shù)據(jù)分別轉(zhuǎn)換為十進(jìn)制,根據(jù)表1將這些十進(jìn)制數(shù)所對(duì)應(yīng)的字符連接,即為Base64編碼。表1 Base64編碼表以編碼字符串"Web"為例,如題表2所示,字符串"Web"對(duì)應(yīng)的ASCII編碼分別是87,101,98,分別轉(zhuǎn)換為8位二進(jìn)制數(shù),按6位二進(jìn)制數(shù)分組后再轉(zhuǎn)換成十進(jìn)制,查找它們的對(duì)應(yīng)字符,得到字符串"Web"的Base64編碼為“V2Vi”。題表2Base64編碼方法請(qǐng)仔細(xì)閱讀題目和代碼,回答下列問(wèn)題:(1)若某字符串的Base64編碼為“QW55”,則該字符串是( )A."An" B."Any" C."Love"(2)主程序。Base64=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/']#創(chuàng)建Base64編碼表a="Webweb"b=ASCII_to_Base64(a)根據(jù)題目描述,可知執(zhí)行該段程序后,變量b的值為 。(3)自定義函數(shù)to_Byte(ch)能將字符ch對(duì)應(yīng)的ASCII編碼轉(zhuǎn)換成8位二進(jìn)制字符串,例如to_Byte("W")的返回值為"01010111"。請(qǐng)?jiān)趧澗€處填入合適的代碼。def to_Byte(ch): ac=ord(ch)#獲取ch的ASCII編碼值 bc="" for i in range(8): bc=① ac=ac//2 return bc(4)自定義函數(shù)ASCII_to_Base64(a)能將字符串a(chǎn)轉(zhuǎn)換成Base64編碼字符串(為簡(jiǎn)單起見(jiàn),規(guī)定字符串a(chǎn)的長(zhǎng)度為3的整數(shù)倍)。例如,當(dāng)a="Web"時(shí),函數(shù)返回"V2Vi"。def ASCII_to_Base64(a): bite_code="" #用來(lái)存儲(chǔ)二進(jìn)制字符串 for ch in a: bite_code+=to_Byte(ch) n=len(bite_code) ans="" for c in : group=bite_code[c:c+24] for j in range(0,24,6): i=int(② ) ans=ans+Base64[i] return ans已知函數(shù)int(s,k)的作用是將k進(jìn)制字符串s轉(zhuǎn)換成十進(jìn)制整數(shù),例如int("101",2)的值為5,則第②空處應(yīng)該填寫代碼 ;(5)已知上述(4)小題中方框處代碼有錯(cuò)誤,請(qǐng)修改,其正確的代碼應(yīng)該是 。參考答案1.A2.B3.D4.B5.B6.B7.A8.A9.B10.ABCD11.AD12.ABCD13.AD14.CD15.B16.D17.A18.C19.D20.B21.4022.3 6 923.111111……24.3125.b=b c>b a,b,c26.錯(cuò)誤27.正確28.錯(cuò)誤29.錯(cuò)誤30.錯(cuò)誤31.c=0 chr(ord(text[i])+32) s==s[::-1] 232.B "V2Vid2Vi" str(ac%2)+bc group[j:j+6],2 range(0,n,24)或其他等效答案 展開(kāi)更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來(lái)源于二一教育資源庫(kù)