資源簡(jiǎn)介 2.3 周而復(fù)始的循環(huán)一、選擇題1.有如下VB程序段:s=""For i=1 To 7 Step 2 If i<=1Then k=1 ElseIf i<=2 Then k=2 End If If i<=3 Then k=3 s=s+Str(k)Next ilabel1.Caption=s該程序段運(yùn)行后,標(biāo)簽label1上顯示的內(nèi)容是 ( )A.1234 B.4321 C.2233 D.33332.設(shè)執(zhí)行以下程序段時(shí)依次輸入1、3、5,執(zhí)行結(jié)果為( )Dim a(4) As IntegerDim b(4) As IntegerFor K =0 To 2a(K+1) =Val(InputBox("請(qǐng)輸入數(shù)據(jù):"))b(3-K) =a(K+1)Next KPrint b(K)A.1 B.3 C.5 D.03.下列程序的功能是求1~x之間所有5的倍效之和x=int(input("輸入數(shù)字x:")i=1s=0while i<=x:if ① :s=s+iprint(i,end=",")②print("s=",s)則劃線處應(yīng)填入的語句是( )A.①i%5==0 ②i=i+1B.①i//5==0 ②i=i+1C.①i%5==0 ②i=i+2D.①i%5==0 ②i=i+34.字符串s1中保存了一個(gè)單詞,字符串s2中保存了一句以空格結(jié)尾的句子,字符串s1和s2均由小寫字母組成且s2中各個(gè)單詞之間僅用空格隔開,下列程序能夠統(tǒng)計(jì)單詞s1在句子s2中出現(xiàn)的次數(shù):i=1:j=1:cnt=0Do While j<= Len(s2)If Mid(s1,i,1)<> Mid(s2,j,1)ThenElseDo While i<=lens and j<=lens2If Mid(s1, i, 1) =Mid(s2, j, 1)ThenElseEnd IfLooplf i=len(s1)+1 And Mid(s2,j,1)=""thencnt= cnt+1End Ifi=1End IfLoop方框中的代碼分別是:①i=1:j=j+1 ②i=i+1:j=j+1 ③j=j+1代碼從上到下正確的順序是()A.①②③ B.③②① C.③①② D.②①③5.有如下VB程序段:b=0For a=1 To 10b=a+ba=a+3Next ac=a+b執(zhí)行該程序段后,變量c的值為( )A.15 B.22 C.28 D.326.執(zhí)行如下代碼:c=0num=[1,2,3,4]def fun(num):for i in range(5):c=inum.append(c) # 列 表 添 加 元 素return numprint(fun(num),c)則程序執(zhí)行后輸出( )A.[1,2,3,4,4]4B.[1,2,3,4,5]5C.[1,2,3,4,4]0D.[1,2,3,4,5]07.有如下Python程序段:import jiebastr="熱烈慶祝建黨100周年"fc=jieba.lcut(str)print(fc)for i in fc[::1]:print(i)已知分詞之后的文本輸出fc為:['熱烈慶祝', '建黨', '100', '周年'],則程序運(yùn)行結(jié)束后的結(jié)果是( )A.周年100建黨熱烈慶祝B.熱烈慶祝建黨100周年C.熱烈慶祝建黨周年100D.年周001黨建祝慶烈熱8.下列Python程序段運(yùn)行的結(jié)果是( )。i=0sum=0while i<10:if i%3==0:sum+=ii+=1print("sum=",sum)A.sum=9 B.sum=10 C.sum=18 D.sum=19二、填空題9.運(yùn)行以下VB程序,輸出結(jié)果是_____________。Private Sub Command1_Click()Dim s As Integer, x As Integers = 0x = 20For x = 20 To 1 Step -3s = s + xNext xPrint xEnd Sub10.在使用循環(huán)時(shí),當(dāng)循環(huán)次數(shù)一定時(shí)一般使用__循環(huán),當(dāng)循環(huán)次數(shù)未知時(shí)一般使用_____循環(huán)11.Python語言用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句有______語句和while語句。12.閱讀程序,寫出運(yùn)行結(jié)果a=[0,0,0,0,0,0,0]a[1]= 1a[2]= 1for i in range(3,7):a[i]=a[i-1]+a[i-2]print (a[6])上述程序運(yùn)行后,輸出a[6]的值是______13.下面的程序段運(yùn)行后的結(jié)果為__________s=0for i in range(1,8,3):s=s+iprint(s)14.運(yùn)行下列程序,正確的結(jié)果是_________________s=0for i in range (1 5):s=s+iprint("i=",i,"s=",s)三、判斷題15.While循環(huán)語句的循環(huán)體中必須有改變條件表達(dá)式值的語句,否則會(huì)形成死循環(huán)。 (_____)16.下列程序段中,賦值語句s=s+i被重復(fù)執(zhí)行了4次。s=0For i in range(3,10,2):s=s+i (_____)17.在循環(huán)中continue語句的作用是跳出循環(huán)的執(zhí)行。(_____)18.用戶自定義函數(shù)是用戶自己寫的一段程序.一般包括函數(shù)名、參數(shù)、 返回值、函數(shù)體等四部分.其中,函數(shù)名和參數(shù)是必不可少的部分.(____)四、簡(jiǎn)答題19.定義函數(shù)的基本格式是: ______。20.在“抗擊疫情,‘宅’出精彩”征文活動(dòng)中,每位選手可以提交一篇作品?;顒?dòng)以互評(píng)的形式展開:每位選手對(duì)m篇作品進(jìn)行打分(本人作品回避),方法如下:① 用1-n數(shù)字代表n個(gè)作品,打亂順序后分配給n個(gè)選手。分配方案保存在數(shù)組a中,如圖a存儲(chǔ)了兩組分配方案(n=5)。在第一個(gè)分配方案中把4號(hào)作品分配給1號(hào)參賽者,1號(hào)作品分配給2號(hào)參賽者(選手編號(hào)與序號(hào)錯(cuò)開)……。4 1 5 2 3 a(1)~a(n)中存儲(chǔ)第一個(gè)分配方案2 3 4 5 1 a(n+1)~a(2*n)中存儲(chǔ)第二個(gè)分配方案↑第i列中的作品拿給i號(hào)參賽者打分圖a②分配方案的形成方法: 將1~n之間的隨機(jī)數(shù)字依次放到第1個(gè)位置、第2個(gè)位置……,隨機(jī)數(shù)不能與位置號(hào)相同,并且要防止分配沖突,如前三個(gè)分配序號(hào)是“2 3 4”,那么在第4位上只能放“5”(如放“1”會(huì)導(dǎo)致第5個(gè)位置沒有符合要求的數(shù)字,因此位置n-1需要判斷數(shù)“n”是否已經(jīng)分配,如果未分配,位置n-1放置數(shù)“n”),最終方案“2 3 4 5 1”。③評(píng)m個(gè)作品需要m個(gè)分配方案。方案間要避免同一個(gè)人拿到重復(fù)的作品。如第16題圖a第3行上的數(shù)據(jù)“5 1 2 3 4”不符合要求,因?yàn)闀?huì)使第2號(hào)選手重復(fù)拿到1號(hào)作品。小明依據(jù)上述方法設(shè)計(jì)了VB程序,功能如下:在文本框Text1和Text2分別輸入?yún)①惾藬?shù)和每人打分的作品數(shù)量,單擊“分配”按鈕Command1,在列表框List1中輸出結(jié)果。程序運(yùn)行效果如圖b所示。請(qǐng)回答下列問題:(1)n=5,m=3,a(1)~a(10)中的數(shù)據(jù)如圖a所示,a(11)~a(15)的數(shù)據(jù)可能是 (單選,填字母:A.5 4 3 1 2/B.5 4 1 3 2/C.3 4 5 1 2)(2)請(qǐng)?jiān)趧澗€處填入合適的代碼。Dim n As Integer '總?cè)藬?shù)/總作品數(shù)Dim m As Integer '每人分配篇數(shù)Dim a(1 To 500) As Integer '數(shù)組a大小滿足處理要求Dim c(1 To 100) As Integer '數(shù)組c大小滿足處理要求Private Sub Command1_Click()Dim i As Integer, j As Integer, k As Integern = Val(Text1.Text): m = Val(Text2.Text)Randomizei = 1Do While i <= mFor j = 1 To nc(j) = 0 '本輪分配方案中還沒有數(shù)字j, c(j)=0,否則c(j)=1Next jFor j = 1 To nIf j = n - 1 And c(n) = 0 Then①Elsek = r(n, j)End Ifa((i - 1) * n + j) = k '分配數(shù)字k到當(dāng)前方案的第j個(gè)位置上c(k) = 1Next jIf ② Then i = i + 1Loops = ""For i = 1 To ns = "參賽者" & i & ":"For j = 1 To ms = s + Str(a((j - 1) * n + i))+ ","Next jList1.AddItem ss = ""Next iEnd SubFunction r(x As Integer, y As Integer) As Integer'生成一個(gè)取值在[1,x]之間,可以放在y位置上的隨機(jī)數(shù),滿足條件r<>y andc(r)=0End FunctionFunction check(c As Integer) As Boolean'本輪方案和前面幾次的分配方案比較,如果有人分到了重復(fù)作品,返回FALSEDim p As Integer,f As Booleanf = Truep = 1For i = 1 To c * nIf ③ Thenf = False: Exit ForEnd Ifp = p mod n +1Next icheck = fEnd Function五、操作題21.閱讀下列程序,寫出運(yùn)行結(jié)果。n= int(input("n=")) cnt = 0 while n > 1: cnt = cnt + 1 if n % 2 == 0: n = n / 2 else: n = 3 * n + 1 print(cnt) 程序運(yùn)行后,輸入:8運(yùn)行結(jié)果是:_____________試卷第2頁,共3頁試卷第1頁,共1頁參考答案1.D2.A3.A4.B5.C6.C7.B8.C9.7710.for while11.for12.813.1214.i=4 s=1015.正確16.正確17.錯(cuò)18.錯(cuò)19.def 函數(shù)名(參數(shù)):#函數(shù)說明語句或語句組return 返回值20.(1)B(2)①k= n ②check(i - 1) ③a(i) = a(c * n + p)21.3答案第1頁,共2頁 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫