資源簡介 中小學教育資源及組卷應用平臺4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習學校:___________姓名:___________班級:___________考號:___________一、選擇題1.下面的程序段運行后的結果為()s=0foriinrange(1,6,2):s=s+iprint(s)A.15B.10C.12D.92.下面的程序運行后的輸出結果為()n=1foriinrange(0,5):n=niprint(n)A.120B.24C.0D.253.有以下程序段:forvaluein[1,2,3]:print(value)print("no")程序運行后輸出的結果為:()A.1no2no3noB.123noC.1"no"2"no"3"no"D.123"no"4.有如下VB程序段:Fori=1To1000a=Int(Rnd100+1)b=Int(Rnd100+1)x=a+by=a-bc=Sqr(x)d=Sqr(y)Nexti調試時出現如圖所示的錯誤提示,產生此錯誤的語句是()A.a=Int(Rnd100+1)B.y=a–bC.c=Sqr(x)D.d=Sqr(y)5.有如下程序段:Fori=1ToLen(Text1.Text)c=Mid(Text1.Text,i,1)Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)s=s+cNexti若文本框Text1的內容為“Number2468!”執行程序后,變量s的值為()A.NUMBER3579!B.NUMBER2468!C.number3579!D.number2468!21世紀教育網版權所有6.有如下VB程序段:s=Text1.TextFori=1ToLen(s)ch=Mid(s,i,1)Ifch>="A"Andch<="Z"Thent=t+chIfch>="a"Andch<="z"Thench=Chr(Asc(ch)-32)t=t+chElseIfch>="0"Andch<="9"Thent=ch+tEndIfNextiText2.Text=t已知'A'的ASCI碼為65,'a'的ASCI碼為97.程序運行后,在文本框Textl中輸人“Text2.text=”Abc1234“”(外括號不包括),則在Text2中顯示的內容是(A.TEXT2.TEXTABC1234B.43212TexttextABCC.43212TEXTTEXTABCD.TEXTTEXTABC432127.有如下程序段:DimiAsInteger,tAsInteger,sAsIntegers=0:t=0Fori=0To10IfiMod5=0thens=s+1t=t+iNextiText1.Text=Str(s)執行該程序段后,變量s和t的值分別是()A.355B.315C.215D.2558.編寫VB程序,計算斐波那契數列中第n項(n>=3)的值,并在標簽Label2中輸出結果。(斐波那契數列是指這樣的數列:1,1,2,3,5,8,13…。即:第1項和第2項的值均為1,從第3項開始,每一項的值是它前面兩項之和),主要代碼如下:21教育網n=Val(Text1.Text)f1=1:f2=1Fork=3Tonf=f1+f2①②NextkLabel2.Caption="斐波那契數列第"+Str(n)+"項的值為"+Str(f)代碼中①②兩處分別應為()A.①f2=f1②f1=fB.①f1=f2②f2=fC.①f1=f②f2=f1D.①f2=f②f1=f29.有如下VisualBasic程序段:PrivateSubCommand1_Click()Dima(1To10)AsInteger,iAsInteger,kAsIntegerwww.21-cn-jy.coma(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11k=0Fori=2To9If(a(i)-a(i-1))(a(i+1)-a(i))<0Thenk=k+1NextiText1.Text=Str(k)EndSub該程序段運行后后,文本框Text1中顯示的內容是()A.6B.7C.8D.910.有如下VB程序段:Fori=1To6a(i)=Int(Rnd20)+1:b(i)=iNextiFori=1To5Forj=i+1To6Ifa(b(i))>a(b(j))Thent=b(j):b(j)=b(i):b(i)=tEndIfNextjNextii=1:j=6:s="":Key=Val(Text1.Text)DoWhilei<=jm=(i+j)\2IfKey=a(b(m))ThenExitDoIfKey<a(b(m))Thenj=m-1Elsei=m+121cnjy.coms=s+Str(m)LoopText2.Text=s在文本框Text1中輸入10,運行以上程序段后,文本框Text2中顯示的內容為354,則a數組中a(1)到a(6)各元素的值可能的是()A.11,6,4,13,18,15B.4,5,8,19,10,17C.2,11,7,6,3,18D.9,2,11,21,5,1611.數組a中存儲著某市2010年到2019年的GDP數值,編寫VB程序,實現找出相鄰兩年GDP變化最大(即相鄰兩年GDP差值最大)的年份區間。若有多個符合要求的年份區間,只輸出距今最近的年份區間。部分代碼如下所示DimiAsInteger,imaxAsInteger①Fori=3To10IfAbs(a(i)-a(i-1))>=②Thenimax=iwww-2-1-cnjy-comNextiText1.Text="GDP變化最大的年份區間是"+Str(imax+2008)+"-"+Str(imax+2009)21cnjycom劃線處①、②應填入的代碼為()A.①imax=1②Abs(a(i-1)-a(i-2))B.①imax=1②Abs(a(imax)-a(imax-1))【版權所有:21教育】C.①imax=2②Abs(a(i-1)-a(i-2))D.①imax=2②Abs(a(imax)-a(imax-1))21教育名師原創作品12.有如下VB程序段:s="cbafedgh"m=3:c="":n=Len(s)Fori=1Tonj=(i-1)Mod3+1Ifm>nThenExitFor'退出For循環c=c+Mid(s,m-j+1,1)IfjMod3=0Thenm=m+3NextiIfi<nThenc=Mid(s,i,n-i+1)+c執行該程序段后,變量c的值是()A.abcdefB.abcdefghC.ghabcdefD.hgabcdef13.下面的程序段運行后的結果為()s=1foriinrange(1,6,2):s=s+iprint(s)A.15B.10C.12D.914.下列有關for循環語句說法正確的是()。A.for循環變量in列表后面必須加冒號B.For循環所包含的語句是不以縮進為標志的。C.列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數D.For循環所包含的語句是以縮進為標志的。15.有如下VB程序段,執行該程序段后,a(1)到a(6)各元素的值可能為( )RandomizeFori=1To6a(i)=Int(Rnd21)2+11IfIMod2=1Thena(i)=a(i)+2ElseIfa(i)a(i)=a(i一1)EndIfNextiA.13,15,25,37,23,54B.16,44,23,51,22,22C.19,37,23,45,53,53D.13,37,11,45,33,5116.小明想用數據移位思想將一段長度為n的序列a(n),以t位置為分界,把前t-1個數和后n-t+1個數調換前后順序,但保持每段中數據的相對位置不變。例如一段長度為6的序列1、2、3、4、5、6。t=4時,數組a中元素順序變成4、5、6、1、2、3.實現上述功能的代碼如下,下列①、②處填寫正確的是( )t=Val(Text1.Text):m=2Fori=t-1To1Step-1k=a(i)Forj=iTon-1①Nextj②n=n-1NextiA.①a(j+1)=a(j)②a(j+1)=kB.①a(j)=a(j+1)②a(j+1)=kC.①a(j+1)=a(j)②a(j)=kD.①a(j)=a(j+1)②a(j)=k17.字符串數組a中a(1)到a(6)的原始數據為57,3,24,34,6,120,為了對該數組進行排序操作,編寫了以下VB程序。21·cn·jy·comi=2DoWhilei<=6Forj=6Toi+2Step-2Ifa(j)>a(j-2)Thent=a(j):a(j)=a(j-2):a(j-2)=tNextji=i+2Loop則程序運行之后,數組元素a(1)和a(2)的值分別是( )A.63B.57120C.12057D.63418.有如下VB程序段:s=Text1.Text:n=Len(s):Count=0Fori=1Ton\2IfMid(s,i,1)<>Mid(s,n-i+1,1)ThenCount=Count+1EndIfNexti若在文本框Text1中輸入字符串“200good2”,則Count的值為( )A.3B.1C.6D.7二、填空題19.下面的程序段運行后的結果為__________s=0foriinrange(1,8,3):s=s+iprint(s)20.運行下列程序,正確的結果是_________________s=0foriinrange(15):s=s+iprint("i=",i,"s=",s)三、操作題21.給定兩個十進制整數X和Y(X<=Y),求出從X到Y的所有整數中出現“1”的個數。例如:X=6,Y=15時,6,7,8,9,10,11,12,13,14,15,出現了7個“1”。小明編寫了一個VB程序,功能如下:在文本框Text1中輸入整數X,在文本框Text2中輸入整數Y,單擊“統計”按鈕Command1后,在列表框List1中顯示X到Y,并在標簽Label3中顯示從X到Y的所有整數中出現“1”的個數。程序運行界面如圖所示,請在劃線處填入合適代碼。(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.屬性名/B.事件名/C.方法名/D.對象)2·1·c·n·j·y(2)為了實現上述功能,請在劃線處填入合適的代碼。PrivateSubCommand1_Click()DimxAsInteger,yAsInteger,tAsIntegerDimiAsInteger,nAsInteger,countAsIntegerx=Val(Text1.Text)y=Val(Text2.Text)count=0Fori=xToyList1.AddItemStr(i)n=iDoWhilen>0IfnMod10=1Thencount=count+1EndIf____LoopNextiLabel3.Caption="X到Y之間1的個數有"+____+"個"EndSub(3)如果刪除加框處代碼,并運行程序,在文本框Text1中輸入“40”,在文本框Text2中輸入“10”,單擊“統計”按鈕,則標簽框Label3顯示X到Y之間1的個數有____個。21·世紀教育網22.編寫一個VB程序,實現如下功能:輸入s位數字構成的數字字符串(第1位數字不為0),移除k(0y.com】算法分析:要使得到的5位數字最小,首先需保證能取到5個數字,且首位應盡量小,那么取首位數的范圍應保證余下有4個數字,即在前4位中選最小非0的數字。【出處:21教育名師】程序運行時,在文本框Text1中輸入一個數字字符串,在文本框Text2中輸入要移除的數字個數,單擊“運行”按鈕CmdRun后,在標簽Labell顯示得到的最小新數,程序運行界面如圖b所示。21cnjycom(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在FormLoad事件處理過程中添加語句為_________(單選,填字母:A.Form1.Text="刪數"\B.Form1.Caption="刪數"\C.Form1.AddItem"刪數")(2)實現上述功能的VB程序代碼如下,請在劃線處填入合適的代碼。PrivateSubCmdRun_Click()DimNumAsString,New_numAsString'Num為輸入的數字字符串DimiAsInteger,jAsInteger,mAsInteger,DimAsInteger,sAsInteger,kAsIntegerDima(30)AsString,b(30)AsIntegerNum=Text1.Text:s=Len(Num)k=Val(Text2.Text)'k為刪除數字個數Fori=1Tosa(i)=Mid(Num,i,1)Nextij=1m=1n=①_________Fori=m+lTon'取第一個非零最小數字IfThenm=I'加框處程序代碼有誤,請改正Nextib(j)=mDoWhile②________'取其他最小數字m=m+1n=n+1Fori=m+1TonIfa(i)<a(m)Thenm=iNextij=j+1:b(j)=mLoopFori=m+1Tos'最后直接取的數字j=j+1:b(j)=iNextiForj=1Tos-k'輸出最小數New_num=③________NextjLabell.Caption=New_numEndSub(3)加框處程序代碼有誤,請改正。____________________________23.編寫程序,實現以下功能:計算s=1+2/5+3/10+……i/i^2+1的值,n由鍵盤輸入,計算結果s保留3位小數。【來源:21·世紀·教育·網】PrivateSubCommand1_Click()Dimnasinteger,iasinteger,sasdoublen=val(inputbox("請輸入n的值"))s=0:i=1dowhile①②i=i+1Loops=③PrintsEndSub(1)實現該程序功能的主體算法結構是____________________。(2)現有如下VB程序,請完善劃線處①、②內容,完成上述功能。①_____________________________②_____________________________2-1-c-n-j-y(3)劃線處③能使變量s的值四舍五入精確到小數點后第3位小數,以下可以實現的語句是()。A.Int(s100)/100B.Int(s1000)/1000C.Int(s100+0.5)/100D.Int((s1000+0.5))/1000四、判斷題24.循環結構表示程序反復執行某個或某些操作,只有用戶干預才能終止循環。(_______)21世紀教育網www.21cnjy.com精品試卷·第2頁(共2頁)21世紀教育網(www.21cnjy.com)中小學教育資源及組卷應用平臺4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習學校:___________姓名:___________班級:___________考號:___________一、選擇題1.下面的程序段運行后的結果為()s=0foriinrange(1,6,2):s=s+iprint(s)A.15B.10C.12D.9【答案】D【解析】【詳解】本題考查的是Python循環語句。range(1,6,2)生成的是1,3,5的整數,故s=0+1+3+5=9。選項D正確。2.下面的程序運行后的輸出結果為()n=1foriinrange(0,5):n=niprint(n)A.120B.24C.0D.25【答案】C【解析】【詳解】本題考查的知識點是Python的列表函數。python中range()函數可創建一個整數列表,一般用在for循環中。range(0,5)等價于列表[0,1,2,3,4],故程序結果為101234=0,故選項C正確。www-2-1-cnjy-com3.有以下程序段:forvaluein[1,2,3]:print(value)print("no")程序運行后輸出的結果為:()A.1no2no3noB.123noC.1"no"2"no"3"no"D.123"no"【答案】A【解析】【分析】【詳解】本題考查程序執行的相關知識點每一次for循環里面都執行一遍print(value)和print("no")。故本題選A選項4.有如下VB程序段:Fori=1To1000a=Int(Rnd100+1)b=Int(Rnd100+1)x=a+by=a-bc=Sqr(x)d=Sqr(y)Nexti調試時出現如圖所示的錯誤提示,產生此錯誤的語句是()A.a=Int(Rnd100+1)B.y=a–bC.c=Sqr(x)D.d=Sqr(y)【答案】D【解析】【詳解】本題考查VB相關知識。無效的過程調用或參數是指函數或者過程的參數有誤,代碼中涉及函數sqr和Int,a=Int(Rnd100+1),b=Int(Rnd100+1),這兩條代碼沒有問題,y=a-b,會出現y<0,導致Sqr(y)參數有誤,sqr為平方根函數,參數必須大于0,小于0則代碼會出錯。故產生錯誤語句是d=Sqr(y),本題選D。5.有如下程序段:Fori=1ToLen(Text1.Text)c=Mid(Text1.Text,i,1)Ifc>="0"Andc<="9"Thenc=Chr(Asc(c)+1)Ifc>="A"Andc<="Z"Thenc=Chr(Asc(c)+32)s=s+cNexti若文本框Text1的內容為“Number2468!”執行程序后,變量s的值為()A.NUMBER3579!B.NUMBER2468!C.number3579!D.number2468!【答案】C【解析】【詳解】本題考查VB程序段。若文本框Text1的內容為“Number2468!”,根據代碼fori=1tolen(text1.text),c=Mid(Text1.Text,i,1),Ifc>=“0”Andc<=“9”Thenc=Chr(Asc(c)+1),若取出的字符c是數字,則往后推移一個數字。Ifc>=“A”Andc<=“Z”Thenc=Chr(Asc(c)+32),如果取出的字符c是大寫字母,則變為小寫字母。其余字符不變。故可知本題選C。6.有如下VB程序段:s=Text1.TextFori=1ToLen(s)ch=Mid(s,i,1)Ifch>="A"Andch<="Z"Thent=t+chIfch>="a"Andch<="z"Thench=Chr(Asc(ch)-32)t=t+chElseIfch>="0"Andch<="9"Thent=ch+tEndIfNextiText2.Text=t已知'A'的ASCI碼為65,'a'的ASCI碼為97.程序運行后,在文本框Textl中輸人“Text2.text=”Abc1234“”(外括號不包括),則在Text2中顯示的內容是(A.TEXT2.TEXTABC1234B.43212TexttextABCC.43212TEXTTEXTABCD.TEXTTEXTABC43212【答案】C【解析】【詳解】本題考查VB程序段。根據判斷條件Ifch>=“A”Andch<=“Z”Thent=t+ch,大寫字母直接順序疊加,又Ifch>=“a”Andch<=“z”Thench=Chr(Asc(ch)-32)t=t+ch,可知,小寫字母轉換為大寫字母后疊加。再看Ifch>=“0”Andch<=“9”Thent=ch+t,可知數字采取倒序疊加,故最后結果數字在前,全都是大寫字母,故選C。2·1·c·n·j·y7.有如下程序段:DimiAsInteger,tAsInteger,sAsIntegers=0:t=0Fori=0To10IfiMod5=0thens=s+1t=t+iNextiText1.Text=Str(s)執行該程序段后,變量s和t的值分別是()A.355B.315C.215D.255【答案】A【解析】【詳解】本題主要考查VB程序的執行。for循環中,變量i的范圍是從0-10,當i是5的倍數時(i=0,5,10),變量s遞增,故s=s+1執行了3次,每次循環都執行t=t+i,故程序結束時t=0+1+2+3+4+5+6+7+8+9+10=55,所以執行該程序段后,變量s和t的值分別是355,故本題選A選項。8.編寫VB程序,計算斐波那契數列中第n項(n>=3)的值,并在標簽Label2中輸出結果。(斐波那契數列是指這樣的數列:1,1,2,3,5,8,13…。即:第1項和第2項的值均為1,從第3項開始,每一項的值是它前面兩項之和),主要代碼如下:n=Val(Text1.Text)f1=1:f2=1Fork=3Tonf=f1+f2①②NextkLabel2.Caption="斐波那契數列第"+Str(n)+"項的值為"+Str(f)代碼中①②兩處分別應為()A.①f2=f1②f1=fB.①f1=f2②f2=fC.①f1=f②f2=f1D.①f2=f②f1=f2【答案】B【解析】【詳解】本題主要考查VB程序的執行。f=f1+f2,接下來應該將f2的值賦給f1,將f的值賦給f2,故代碼中①②兩處分別應為①f1=f2②f2=f,故本題選B選項。9.有如下VisualBasic程序段:PrivateSubCommand1_Click()Dima(1To10)AsInteger,iAsInteger,kAsInteger21·世紀教育網a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11k=0Fori=2To9If(a(i)-a(i-1))(a(i+1)-a(i))<0Thenk=k+1NextiText1.Text=Str(k)EndSub該程序段運行后后,文本框Text1中顯示的內容是()A.6B.7C.8D.9【答案】A【解析】【詳解】本題考查VB程序段。在FOR循環中,If(a(i)-a(i-1))(a(i+1)-a(i))<0成立時共有六種情況,分別是i=2,3,5,6,7,9。故本題選A。10.有如下VB程序段:Fori=1To6a(i)=Int(Rnd20)+1:b(i)=iNextiFori=1To5Forj=i+1To6Ifa(b(i))>a(b(j))Thent=b(j):b(j)=b(i):b(i)=tEndIfNextjNextii=1:j=6:s="":Key=Val(Text1.Text)DoWhilei<=jm=(i+j)\2IfKey=a(b(m))ThenExitDoIfKey<a(b(m))Thenj=m-1Elsei=m+121世紀教育網版權所有s=s+Str(m)LoopText2.Text=s在文本框Text1中輸入10,運行以上程序段后,文本框Text2中顯示的內容為354,則a數組中a(1)到a(6)各元素的值可能的是()A.11,6,4,13,18,15B.4,5,8,19,10,17C.2,11,7,6,3,18D.9,2,11,21,5,16【答案】A【解析】【詳解】本題主要考查VB程序的執行。rnd()函數隨機生成[0,1)之間的數,故a(i)是隨機生成[1,21)的整數,第二個嵌套for循環實現a數組升序,i=1,j=6,s="",key=10,while循環實現折半查找,第一遍循環,m=(1+6)/2=3,顯然a(3)<10,i=m+1=4;s=3,第二遍循環,m=(4+6)/2=5,根據文本框Text2中顯示的內容為354,所以判斷key10,故本題選A選項。11.數組a中存儲著某市2010年到2019年的GDP數值,編寫VB程序,實現找出相鄰兩年GDP變化最大(即相鄰兩年GDP差值最大)的年份區間。若有多個符合要求的年份區間,只輸出距今最近的年份區間。部分代碼如下所示DimiAsInteger,imaxAsInteger①Fori=3To10IfAbs(a(i)-a(i-1))>=②Thenimax=i【出處:21教育名師】NextiText1.Text="GDP變化最大的年份區間是"+Str(imax+2008)+"-"+Str(imax+2009)【版權所有:21教育】劃線處①、②應填入的代碼為()A.①imax=1②Abs(a(i-1)-a(i-2))B.①imax=1②Abs(a(imax)-a(imax-1))21教育名師原創作品C.①imax=2②Abs(a(i-1)-a(i-2))D.①imax=2②Abs(a(imax)-a(imax-1))【答案】D【解析】【詳解】本題主要考查VB程序的執行。abs()是求絕對值函數,i的初值為3,a(i)-a(i-1)=a(3)-a(2),這個區間應該首先與a(2)-a(1)進行比較,故imax=2,第二空填Abs(a(imax)-a(imax-1)),故本題選D選項。21教育網12.有如下VB程序段:s="cbafedgh"m=3:c="":n=Len(s)Fori=1Tonj=(i-1)Mod3+1Ifm>nThenExitFor'退出For循環c=c+Mid(s,m-j+1,1)IfjMod3=0Thenm=m+3NextiIfi<nThenc=Mid(s,i,n-i+1)+c執行該程序段后,變量c的值是()A.abcdefB.abcdefghC.ghabcdefD.hgabcdef【答案】C【解析】【分析】【詳解】本題考查執行VB程序相關的知識點第一次循環m-j+1=3,截取s中的a賦值給c第二次循環i=2,j=2,m-j+1=2,c=ab第三次循環i=3,j=3,m-j+1=1,c=abc,m=6第四次循環i=4,j=1,m-j+1=6,c=abcd第五次循環i=5,j=2,m-j+1=5,c=abcde第六次循環i=6,j=3,m-j+1=4,c=abcdef,m=9第七次循環i=7,j=1,退出循環c=ghabcdef故本題選C13.下面的程序段運行后的結果為()s=1foriinrange(1,6,2):s=s+iprint(s)A.15B.10C.12D.9【答案】B【解析】【詳解】本題主要考查程序的運行。for循環中,變量i的變化是1,3,5,7,當i=7時退出循環,此時s的值為,s=1+1+3+5=10,故本題選B選項。14.下列有關for循環語句說法正確的是()。A.for循環變量in列表后面必須加冒號B.For循環所包含的語句是不以縮進為標志的。C.列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數D.For循環所包含的語句是以縮進為標志的。【答案】ACD【解析】【詳解】本題主要考查Python的for循環語句。for循環變量in列表后面必須加冒號、列表的幾種表達方式有直接羅列,先定義后使用和使用range()函數、For循環所包含的語句是以縮進為標志的。故本題選ACD選項。15.有如下VB程序段,執行該程序段后,a(1)到a(6)各元素的值可能為( )RandomizeFori=1To6a(i)=Int(Rnd21)2+11IfIMod2=1Thena(i)=a(i)+2ElseIfa(i)a(i)=a(i一1)EndIfNextiA.13,15,25,37,23,54B.16,44,23,51,22,22C.19,37,23,45,53,53D.13,37,11,45,33,51【答案】C【解析】【詳解】本題考查VB程序段。根據a(i)=Int(Rnd21)2+11,a數組是[11,51]之間的奇數,并且一定執行a(i)=a(i)+2,那么a數組是[13,53]之間的奇數,故本題選C。www.21-cn-jy.com16.小明想用數據移位思想將一段長度為n的序列a(n),以t位置為分界,把前t-1個數和后n-t+1個數調換前后順序,但保持每段中數據的相對位置不變。例如一段長度為6的序列1、2、3、4、5、6。t=4時,數組a中元素順序變成4、5、6、1、2、3.實現上述功能的代碼如下,下列①、②處填寫正確的是( )t=Val(Text1.Text):m=2Fori=t-1To1Step-1k=a(i)Forj=iTon-1①Nextj②n=n-1NextiA.①a(j+1)=a(j)②a(j+1)=kB.①a(j)=a(j+1)②a(j+1)=kC.①a(j+1)=a(j)②a(j)=kD.①a(j)=a(j+1)②a(j)=k【答案】D【解析】【詳解】本題考查VB程序段。實現數據移位的效果,根據題目中代碼,可做如下解釋。假設t=4,則第一次移位后,數組變為1,2,4,5,6,3。第二次移位數據變為1,4,5,6,2,3。第三次移位得到結果4,5,6,1,2,3。在根據選項將代碼填入,可得到選項D為正確選項。21cnjycom17.字符串數組a中a(1)到a(6)的原始數據為57,3,24,34,6,120,為了對該數組進行排序操作,編寫了以下VB程序。21cnjycomi=2DoWhilei<=6Forj=6Toi+2Step-2Ifa(j)>a(j-2)Thent=a(j):a(j)=a(j-2):a(j-2)=tNextji=i+2Loop則程序運行之后,數組元素a(1)和a(2)的值分別是( )A.63B.57120C.12057D.634【答案】B【解析】【詳解】本題考查排序算法。i=2,j=6to4,經過交換,a(1)到a(6)數據變為57,120,24,3,6,34。i=4,j=6to6,經過交換,a(1)到a(6)數據變為57,120,24,34,6,3。故數組元素a(1)和a(2)的值分別是57和120,故本題選B。18.有如下VB程序段:s=Text1.Text:n=Len(s):Count=0Fori=1Ton\2IfMid(s,i,1)<>Mid(s,n-i+1,1)ThenCount=Count+1EndIfNexti若在文本框Text1中輸入字符串“200good2”,則Count的值為( )A.3B.1C.6D.7【答案】A【解析】【詳解】本題考查VB程序段。若在文本框Text1中輸入字符串“200good2”,根據IfMid(s,i,1)<>Mid(s,n-i+1,1)ThenCount=Count+1,可知統計字符串前后對應位置不相等字符個數,故本題選A。21·cn·jy·com二、填空題19.下面的程序段運行后的結果為__________s=0foriinrange(1,8,3):s=s+iprint(s)【答案】12【解析】【詳解】本題考查的知識點是Python的循環函數。range()函數可創建一個整數列表,一般用在for循環中。range(1,8,3)等同于整數列表[1,4,7],故該程序結果為=0+1+4+7=12。【來源:21cnjy.com】20.運行下列程序,正確的結果是_________________s=0foriinrange(15):s=s+iprint("i=",i,"s=",s)【答案】i=4s=10【解析】【詳解】本題主要考查程序的運行。for循環中i的變化范圍是從1~4,循環結束時i=4,s=0+1+2+3+4=10。三、操作題21.給定兩個十進制整數X和Y(X<=Y),求出從X到Y的所有整數中出現“1”的個數。例如:X=6,Y=15時,6,7,8,9,10,11,12,13,14,15,出現了7個“1”。小明編寫了一個VB程序,功能如下:在文本框Text1中輸入整數X,在文本框Text2中輸入整數Y,單擊“統計”按鈕Command1后,在列表框List1中顯示X到Y,并在標簽Label3中顯示從X到Y的所有整數中出現“1”的個數。程序運行界面如圖所示,請在劃線處填入合適代碼。(1)下列程序段中句List1.AddItem中的AddItem是___(填字母:A.屬性名/B.事件名/C.方法名/D.對象)(2)為了實現上述功能,請在劃線處填入合適的代碼。PrivateSubCommand1_Click()DimxAsInteger,yAsInteger,tAsIntegerDimiAsInteger,nAsInteger,countAsIntegerx=Val(Text1.Text)y=Val(Text2.Text)count=0Fori=xToyList1.AddItemStr(i)n=iDoWhilen>0IfnMod10=1Thencount=count+1EndIf____LoopNextiLabel3.Caption="X到Y之間1的個數有"+____+"個"EndSub(3)如果刪除加框處代碼,并運行程序,在文本框Text1中輸入“40”,在文本框Text2中輸入“10”,單擊“統計”按鈕,則標簽框Label3顯示X到Y之間1的個數有____個。【來源:21·世紀·教育·網】【答案】Cn=n\10str(count)0【解析】【詳解】本題考查VB綜合能力。(1)List1.AddItem中的AddItem是方法名。(2)代碼第一空,根據dowhilen>0,以及IfnMod10=1Thencount=count+1EndIf,可以判斷,需要將n中的每一個數字取出判斷,故代碼第一空填入n=n\10。(3)代碼第二空,X到Y之間1的個數有count個,注意數據類型,故填入str(count)。(4)如果刪除加框處代碼,若出現x>y,則fori=xtoy的for循環不會執行,所以在文本框Text1中輸入“40”,在文本框Text2中輸入“10”時,Label3顯示X到Y之間1的個數有0個。22.編寫一個VB程序,實現如下功能:輸入s位數字構成的數字字符串(第1位數字不為0),移除k(0算法分析:要使得到的5位數字最小,首先需保證能取到5個數字,且首位應盡量小,那么取首位數的范圍應保證余下有4個數字,即在前4位中選最小非0的數字。程序運行時,在文本框Text1中輸入一個數字字符串,在文本框Text2中輸入要移除的數字個數,單擊“運行”按鈕CmdRun后,在標簽Labell顯示得到的最小新數,程序運行界面如圖b所示。(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在FormLoad事件處理過程中添加語句為_________(單選,填字母:A.Form1.Text="刪數"\B.Form1.Caption="刪數"\C.Form1.AddItem"刪數")(2)實現上述功能的VB程序代碼如下,請在劃線處填入合適的代碼。PrivateSubCmdRun_Click()DimNumAsString,New_numAsString'Num為輸入的數字字符串DimiAsInteger,jAsInteger,mAsInteger,DimAsInteger,sAsInteger,kAsIntegerDima(30)AsString,b(30)AsIntegerNum=Text1.Text:s=Len(Num)k=Val(Text2.Text)'k為刪除數字個數Fori=1Tosa(i)=Mid(Num,i,1)Nextij=1m=1n=①_________Fori=m+lTon'取第一個非零最小數字IfThenm=I'加框處程序代碼有誤,請改正Nextib(j)=mDoWhile②________'取其他最小數字m=m+1n=n+1Fori=m+1TonIfa(i)<a(m)Thenm=iNextij=j+1:b(j)=mLoopFori=m+1Tos'最后直接取的數字j=j+1:b(j)=iNextiForj=1Tos-k'輸出最小數New_num=③________NextjLabell.Caption=New_numEndSub(3)加框處程序代碼有誤,請改正。____________________________【答案】B①k+1或其他可行答案②j<k或j<>k或m<n或m<>n或其他可行答案③New_num+a(b(j))或其他可行答案a(i)<a(m)Anda(i)<>"0"或其他可行答案21cnjy.com【解析】【詳解】本題考查VB綜合能力。(1)程序運行時,若要在名為Form1的窗體標題上顯示“刪數”,可以在FormLoad事件處理過程中添加語句為Form1.Caption=“刪數”。(2)n為最多能從前多少位取出第一個數字,故n=k+1。(2)剩余的數字數量要滿足取出的數量,故填入m<>n。(3)將結果顯示,是一個結果變量疊加過程,故填入New_num+a(b(j))。(5)找最小的并且不能為零,故填入a(i)Anda(i)<>“0”。23.編寫程序,實現以下功能:計算s=1+2/5+3/10+……i/i^2+1的值,n由鍵盤輸入,計算結果s保留3位小數。PrivateSubCommand1_Click()Dimnasinteger,iasinteger,sasdoublen=val(inputbox("請輸入n的值"))s=0:i=1dowhile①②i=i+1Loops=③PrintsEndSub(1)實現該程序功能的主體算法結構是____________________。(2)現有如下VB程序,請完善劃線處①、②內容,完成上述功能。①_____________________________②_____________________________2-1-c-n-j-y(3)劃線處③能使變量s的值四舍五入精確到小數點后第3位小數,以下可以實現的語句是()。A.Int(s100)/100B.Int(s1000)/1000C.Int(s100+0.5)/100D.Int((s1000+0.5))/1000【答案】(1)???循環結構??????(2)????i<=n???????????????s=s+i/(i^2+1)???????????(3)?????D【解析】【詳解】本題考查VB綜合能力。(1)程序有三大結構,實現該程序功能的主體算法結構是循環結構。(2)根據題干,dowhile循環中是根據n的值執行循環次數,故條件為i<=n。(3)根據題干,計算公式是s=s+i/(i^2+1)。(4)int函數是不超過參數的最大整數,故使變量s的值四舍五入精確到小數點后第3位小數,可以實現的語句是Int((s1000+0.5))/1000。四、判斷題24.循環結構表示程序反復執行某個或某些操作,只有用戶干預才能終止循環。(_______)【答案】錯【解析】【分析】【詳解】本題考查循環結構循環結構表示程序反復執行某個或某些操作,直到判斷條件為假(或為真)時才可終止循環。表述錯誤21世紀教育網www.21cnjy.com精品試卷·第2頁(共2頁)21世紀教育網(www.21cnjy.com) 展開更多...... 收起↑ 資源列表 4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習(原卷版).doc 4.4.1for循環的應用-粵教版(2019)高中信息技術必修一練習(解析版).doc 縮略圖、資源來源于二一教育資源庫