资源简介 中小学教育资源及组卷应用平台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