资源简介 (…………○…………外…………○…………装…………○…………订…………○…………线…………○…………)(※※请※※不※※要※※在※※装※※订※※线※※内※※答※※题※※)(…………○…………内…………○…………装…………○…………订…………○…………线…………○…………)登陆二一教育在线组卷平台助您教考全无忧浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷一、选择题(252=50分)(共25题;共50分)1.下列表达式的运算结果与其他选项不同的是(?)A.?Len("123")+2^2??????????????????????????????B.?Abs(Int(-6.8))C.?Asc(Mid("789",1,1))???????????????????????????D.?Val("9")-Sqr(4)【答案】C【考点】运算符、基本运算与表达式【解析】【解答】选项A:Len("123")+2^2=3+4=7。选项B:Abs(Int(-6.8))=Abs(-7)=7。选项C:Asc(Mid("789",1,1))=Asc(“7”)=55。选项D:Val("9")-Sqr(4)=9-2=7。故答案选C。【分析】本题考查的是len()、abs()、int()、mid()、asc()、val()和sqr()函数的功能。len函数是求字符串的长度,abs函数是求参数的绝对值,int是求不大于参数的整数,mid中按指定位置指定长度从字符串中取出一个子串,asc是求某个字符的ASCII码,val是将参数转为数值型,sqr是求参数的算术平方根。2.下列VB表达式中,随机产生10到100之间奇数的是(?)A.?Int(Rnd45)2+10?????????????????????????????B.?Int(Rnd45)2+11C.?Int(Rnd90+10)???????????????????????????????????D.?Int(Rnd90+11)【答案】B【考点】运算符、基本运算与表达式【解析】【解答】随机产生奇数的形式是类似于“2n+奇数”的VB表达式,该数的区间范围是10到100的奇数,即11到99的奇数,故答案是B。【分析】本题考查的是随机产生奇数的VB表达式。3.有如下VB程序段:Fori=1To9Step2??b(a(i)Mod10)=b(a(i)Mod10)+1Nextis=0Fori=0To9Step3??s=s+b(i)Nexti数组b各元素初始值为0,数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为(?)A.?5??????????????????????????????????B.?4??????????????????????????????????C.?3??????????????????????????????????D.?2【答案】C【考点】常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1)Mod10,a(3)Mod10,a(5)Mod10,a(7)Mod10,a(9)Mod10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。【分析】本题考查的是数组和统计。4.有如下VB程序段:a(1)=1?Fori=2To6?Randomize?a(i)=a(i-1)+Int(Rnd5+1)?Ifa(i)Mod2=1Then??a(i)=a(i)\2+1?Else??a(i)=a(i)/2?EndIf?Nexti执行程序后,a数组各元素可能是(?)A.?134679??????????????B.?120356??????????????C.?123454??????????????D.?134511【答案】C【考点】常见数据类型、数组,运算符、基本运算与表达式【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~5,不可能是1,只有C都符合。故答案选C。【分析】本题考查的是数组的运用以及对常用函数的理解。5.有如下VB程序段:s="123456789"g=""Fori=1To3?n=Len(s)?x=Int(Rndn)+1?g=g+Mid(s,x,1)?s=Mid(s,1,x-1)+Mid(s,x+1,n-x)Nexti在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为(?)A.?"336"???????????????????????????B.?"346"???????????????????????????C.?"348"???????????????????????????D.?15【答案】C【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】变量值的变化如下:i123x336g"3""34""348"s"12456789""1256789""125679"故答案选C。【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid()函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd()函数是产生随机数。6.有如下VB程序段:Fori=1To3Forj=1To5-i????Ifa(j)>a(j+1)Then????????t=a(j):a(j)=a(j+1):a(j+1)=t????End?If????Nextj????Text1.Text=Text1.Text+str(a(i))Nexti数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框Text1显示的内容是(?)A.?346?????????????????????????????B.?689?????????????????????????????C.?364?????????????????????????????D.?366【答案】D【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。【分析】本题主要考查冒泡排序算法。7.某对分查找算法的VB程序段如下:i=1:j=8:s=""key=Text1.TextDoWhilei<=j?m=(i+j)\2?Ifkey=a(m)Then??s=s+"M"??ExitDo?ElseIfkey>a(m)Then??j=m-1:s=s+"L"?Else??i=m+1:s=s+"R"?EndIfLoopText1.Text=s数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是(?)A.?M???????????????????????????????B.?LR???????????????????????????????C.?RM???????????????????????????????D.?LM【答案】B【考点】常量、变量及变量的赋值,查找算法及程序实现【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。8.某VB程序段如下:?s="HelloWorld"?s1=""?n=Len(s)?Fori=1Ton\2??IfMid(s,i,1)>Mid(s,n-i+1,1)Then????s1=s1+Mid(s,i,1)??Else????s1=Mid(s,n-i+1,1)+s1??EndIf?Nexti?Text1.Text=s1执行该程序段后,在文本框Text1中显示的是(?)A.?WlleH????????????????????????B.?oorld????????????????????????C.?dlroo????????????????????????D.?orldo【答案】D【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。【分析】本题考查的是VB字符串的处理以及对Mid()函数的理解。9.有如下VB程序段:Fori=1To8???a(i)=Int(Rnd2)Nextisum=0Fori=1To8Step3???Forj=iTo8???????a(j)=1-a(j)???Nextj???sum=sum+a(i)NextiText1.Text=Str(sum)执行该程序段后,文本框Text1中显示的内容不可能是(?)A.?0??????????????????????????????????B.?2??????????????????????????????????C.?3??????????????????????????????????D.?4【答案】D【考点】算法的控制结构,常量、变量及变量的赋值【解析】【解答】本题中a(i)的取值是0或1,循环只有3次(i=1、4、7),sum的值最多也只有3,只有D不可能。故答案选D。【分析】本题主要考查的是对循环语句的理解。10.有VB程序段如下:s="2019appreciate":sum=0Fori=1ToLen(s)?ch=Mid(s,i,1)?Ifch>="a"Andch<="z"Then???m=Asc(ch)-Asc("a")+1???a(m)=a(m)+1?EndIf?Nexti?Fori=1To10?Ifa(i)>0Thensum=sum+1?Nexti数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(?)A.?10??????????????????????????????????B.?7??????????????????????????????????C.?4??????????????????????????????????D.?3【答案】C【考点】常量、变量及变量的赋值【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。【分析】本题考查的是VB的字符串处理。11.有VB序段如下:RandomizeFori=1To6??a(i)=Int(Rnd20)+1?Ifa(i)Mod2=iMod2Then???a(i)=a(i)-1?Else???a(i)=a(i)+2?EndIfNexti执行该程序段后,a(1)~a(6)各元素可能的是(?)A.?13,2,7,12,5,18?????????????????????????B.?22,7,0,15,4,19C.?20,9,18,23,4,7?????????????????????????D.?6,0,4,21,18,17【答案】B【考点】常量、变量及变量的赋值【解析】【解答】代码中“Ifa(i)Mod2=iMod2Thena(i)=a(i)-1”是核心,表示如果奇数位置是奇数,或者偶数位置是偶数,则该a(i)的值减去1,而a(i)范围为[1,20],这样操作后a(i)的奇偶性发生了互换,也就是奇数位置是偶数,偶数位置是奇数,另外的情况是a(i)的值加2,故范围是[0,22],因此排除选项C,然后考虑位置和奇偶性,只有选项B符合。【分析】本题考查的是对程序代码的理解。12.某排序算法的VB程序段如下:Fori=1To2Forj=1To6-2iIf?a(j)<a(j+2)Thent=a(j):a(j)=a(j+2):a(j+2)=tEndIfNextjNexti数组元素a(1)~a(6)的初始值依次为“15,13,44,38,26,7”,执行该程序段后,数组a元素的值分别为(??)A.?44,38,26,13,15,7?????????????????????B.?44,7,26,13,15,38C.?15,38,26,13,44,7?????????????????????D.?44,38,26,15,13,7【答案】A【考点】常见数据类型、数组【解析】【解答】分析程序段运行过程:i=1,j=1时,a(1)i=1,j=2时,a(2)i=1,j=3时,a(3)i=1,j=4时,a(4)i=2,j=1时,a(1)i=2,j=2时,a(2)循环结束。此时数组a元素的值分别为44,38,26,13,15,7。故答案选A。【分析】本题考查学生对嵌套循环语句的理解,做题过程中,应时刻注意程序段中每个变量的变化情况。13.有VB程序段如下:Dima(1To5)AsIntegerDimiAsInteger,jAsInteger,sAsStrings=“”???Fori=2To5???????Forj=iTo5???????????IfjModi=0Thena(j)=a(j)+1???????Nextj???Nexti???Fori=1To5???????Ifa(i)<>1Thens=Str(i)+s???Nexti???Text1.Text=S若数组a的初始值都为0,则运行该程序段后,Text1中显示的内容为(?)A.?14??????????????????????????????B.?235??????????????????????????????C.?532??????????????????????????????D.?41【答案】D【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】计算完成后,a(1)=0,a(2)=1,a(3)=1,a(4)=2,a(5)=1,最后统计数组中值不为1的元素下标,只有1和4,且输出时左边更新,所以答案是41(数字4和1之间有空格)。故答案选D。【分析】本题主要考查双重循环中数组的运算。14.有如下VB程序段:Fori=1To5a(i)=Int(Rnd20)+1NextiFori=2To5IfiMod2=1Anda(i-1)<a(i)Then?t=a(i):a(i)=a(i-1):a(i-1)=tElsea(i)=a(i)-1EndIfNexti执行该程序段后,a(1)~a(5)各元素不可能的值是(?)A.?730190?????????????B.?1816192?????????????C.?201781915?????????????D.?190784【答案】D【考点】常量、变量及变量的赋值【解析】【解答】由语句a(i)=Int(Rnd20)+1可知,数组a元素的初始值范围是[1,21)。For循环的循环变量i初始值为2,且i=2时,不满足iMod2=1Anda(i-1)<a(i),因此执行语句a(i)=a(i)-1。所以执行第一次循环后,a(1)范围是[1,21),a(2)范围是[0,20)。当i=3时,iMod2=1,若a(2)<a(3),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第二次循环结束后,a(2)应该大于a(3)或者a(2)+1>=a(3)。当i=4时,不满足iMod2=1Anda(i-1)<a(i),因此执行语句a(i)=a(i)-1。所以执行第三次循环后,a(4)范围是[0,20)。当i=5时,iMod2=1,若a(4)<a(5),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第四次循环结束后,a(4)应该大于a(5)或者a(4)+1>=a(5)。根据以上分析,a(1)~a(5)各元素不可能的值是19,0,7,8,4。因为该数组元素a(2)故答案选D。【分析】本题考查学生对循环语句的理解,要求考生能读懂程序代码,了解各个变量在程序执行过程中的变化。15.有如下VB程序段:Fori=1To10???b(i)=0NextiFori=1To5???Forj=1To10???????Ifb(i)Then?????????b(i)=a(j)?????????t=j???????EndIf???Nextj???a(t)=0???List1.AdditemStr(b(i))Nexti其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List1中依次输出的数据是(?)A.?2542536677?????????????????????????????????????B.?1425384253C.?9998837766?????????????????????????????????????D.?8398143899【答案】C【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】b数组初值均为0,外层For循环5次,外层每循环一次,则内层For循环10遍,将a数组中最大值分别赋给b(1)到b(5),在List1中输出,并将当次a数组的最大值赋值为0。最终降序输出数组a中5个元素,为9998837766。故答案选C。【分析】本题主要考查循环与数组的综合使用。16.下列程序段执行后,文本框Text1中显示的内容是(?)s=“QUOTES:keepongoingnevergiveup!”flag=False:m=0Fori=1ToLen(s)???????ch=Mid(s,i,1)???????Ifch>=“a”Andch<=“z”Then?????????IfNotflagThen???????????m=m+1???????????flag=True???????EndIf???Else???????flag=False???EndIfNextiText1.Text=Str(m)A.?5??????????????????????????????????B.?6??????????????????????????????????C.?7??????????????????????????????????D.?21【答案】B【考点】常量、变量及变量的赋值【解析】【解答】当选择结构比较出第一个小写字母时,m值增加1,flag值变为True,接下来连续出现的小写字母都不能使m值改变,直到比较出非小写字母,flag值变为False,然后继续比较出第一个小写字母,m值增加1,如此反复,最终m值为6。故答案选B。【分析】本题考查的是对程序代码的理解。17.下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:count=0Fori=1To20???a(i)=Int(Rnd100)+1NextiFori=1To20???①NextiFori=1To100???Ifb(i)<>0Thencount=count+1NextiLabel1.caption=“不重复数字个数”+Str(count)为实现上述功能,则程序①处应填入的语句为(?)A.?b(i)=1?????????B.?b(a(i))=a(b(i))+1?????????C.?b(i)=b(i)+1?????????D.?b(a(i))=b(a(i))+1【答案】D【考点】常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】本题将产生的随机数存储到数组a中,数组b的位置表示a数组中的某个数,该位置的值表示这个数出现了几次,例如a(1)=10,那么就执行b(10)加1,得到b(10)=1,表示10这个数出现了1次,a(2)=20,得到b(20)=1,表示20这个数出现了1次,a(3)=20,那么b(20)的值再加1,得到b(20)=2,表示20这个数出现了2次,以此类推,出现一个a(i),只要将b(a(i))的值加1,即可统计出a数组中的数出现了几次,程序的第二个循环就是统计a数组中的数值出现的次数,并存储在b数组,最终只要统计b数组中值不为0的位置的个数,就可以知道a数组中的不重复数字的个数了。故答案选D。【分析】本题主要考查的是数组的应用。18.有如下VB程序段:DimiAsInteger,sumAsIntegerDima(1To6)AsInteger,b(1To6)AsIntegersum=0a(6)=18:a(5)=7:b(6)=14:b(5)=16Fori=4To1Step-1?a(i)=a(i+2)-a(i+1)?b(i)=b(i+2)-a(i)?Ifb(i)Mod3=0Thensum=sum+b(i)NextiText1.Text=Str(sum)该程序段运行后,文本框Text1中显示的内容是(?)A.?39????????????????????????????????B.?30????????????????????????????????C.?-9????????????????????????????????D.?12【答案】B【考点】常量、变量及变量的赋值,递归算法【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3)=20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。【分析】本题考查的是对递归算法的理解。19.某VB程序段如下:Dima(1To6)AsIntegerRandomizea(1)=Int(Rnd2)+1Fori=2To6?a(j)=Int(Rndi)2+1?Ifa(i)<a(i-1)Then???a(i)=a(i)+a(i-1)?EndIfNexti执行该程序段后,数组元素a(1)到a(6)的值可能是(?)A.?2,4,6,8,10,12???????????????????????????B.?1,1,3,7,12,23C.?2,5,9,11,10,15?????????????????????????D.?1,3,15,16,20,23【答案】B【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。【分析】本题考查VB随机数及逻辑判断。20.如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。Dima(1To10)AsIntegerFunctionSearch(LAsInteger,RAsInteger)AsInteger????M=(L+R)\2????Ifa(M)Anda(M)>a(M+1)Then????①????ElseIfa(M)>a(M-1)Anda(M)>a(M+1)Then????②????ElseIfa(M)>a(M-1)Anda(M)Then????③????EndIfEndFunctionPrivateSubCommand1click()????Label1.caption=““峰顶”值是:”+Str(Search(1,10))EndSub上述程序中划线处可选语句为:①Search=Search(M+1,R)②Search=Search(L,M-1)③Search=a(M)则①②③处的语句依次是(?)A.?①②③???????????????????????B.?①③②???????????????????????C.?③①②???????????????????????D.?②③①【答案】D【考点】常量、变量及变量的赋值,查找算法及程序实现,递归算法【解析】【解答】如果a(M)>a(M-1)Anda(M)>a(M+1),则此时的M即为“峰顶”,因此(2)处填Search=a(M);当a(M)a(M)>a(M+1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search=Search(L,M-1)。故答案选D。【分析】本题考查的是VB的递归算法及对分查找算法。21.有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为(?)Fori=1To5?k=i?Forj=i+1To6?Ifa(k)>a(j)Thenk=j?Nextj?t=a(k):a(k)=a(i):a(i)=t?b((i+2)Mod6+1)=a(i)NextiA.?135678??????????????B.?701356??????????????C.?678135??????????????D.?670135【答案】D【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。【分析】本题考查的是对排序算法的理解。22.数组a中有n个正整数,对该数组进行排序,生成左右交替上升数据序列。实现该功能的VB程序段如下:Fori=1Ton\2??????k=i???????????Ifa(j)Thenk=j???Nextj???Ifi<>kThen???????t=a(i):a(i)=a(k):a(k)=t???EndIf???????If?Then???????t=a(j):a(j)=a(j+1):a(j+1)=t?????EndIf???NextjNexti上述程序中方框处可选语句或表达式有:①Forj=i+1Ton-i+1???②Forj=i+1Ton-i③a(j)④a(j)>a(j+1)则(1)、(2)、(3)处语句依次是(?)A.?①、②、③??????????????B.?①、②、④??????????????C.?②、①、③??????????????D.?②、①、④【答案】A【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】第1趟的排序结果是第1个和第n个数据有序,第2趟的排序结果是第2个和第n-1个数据有序,因此第2趟和第3趟的排序区间分别为[2,n-1]和[3,n-2],可以得到结论:第i趟排序,左边排序区间的开始和结束位置分别是i和n-i+1,第i个数有序;右边排序区间的开始和结束位置分别是i+1和n-i+1。左边排序时,最值(所在位置k)和第i+1位置上的数开始比较,一直比较到位置n-i+1。右边排序时,由于排序对象是第j个位置上的数和第j+1位置上的数比较,因此j+1先达到终点n-i+1,此时j的值为n-i。由于右边是降序排序,因此把前面的数要换到后面去,故a(j)【分析】本题主要考查冒泡排序和选择排序的算法思想。从比较对象a(j)23.某二分查找算法的VB程序段如下:key=Va1(Text1.Text)i=1j=9Text2.Text=""DoWhilei<=j????Ifkey=a(m)ThenExitDo??IfkeyTheni=m+1Elsej=m-1??Text2.Text=Text2.Text+“”+Str(a(m))Loop数组元素a(1)到a(9)的值依次为88,75,70,68,61,58,55,50,43,文本框Text1中输入的值是58,执行该程序段,文本框Text2中显示的是61,50,55,则方框处的代码应为(?)A.?m=(i+j+1)\2????????B.?m=(i+j)\2+1????????C.?m=(i+j)\2????????D.?m=(i+j-1)\2【答案】A【考点】常量、变量及变量的赋值,查找算法及程序实现【解析】【解答】Text2中显示的是每次查找的中值m,根据中值的顺序,可得中值m的表达式为(i+j+1)\2。故答案选A。【分析】本题考查的是二分查找算法的VB程序。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。24.有如下VB程序段:y=0n=Len(Text1.Text)Fori=1Ton???c=Mid(Text1.Text,i,1)???Ifc>=“0”Andc<=“9”Then???????x=Val(c):a(x)=a(x)+1???EndIfNextiFori=0To9???Ifa(i)>0Theny=y+1NextiLabel1.Caption=Str(y)a数组各元素的初值为0,程序运行时,在文本框Text1中输入内容“pi=3.1415926535”,单击按钮Command1后,标签Label1中显示的内容是(?)A.?6??????????????????????????????????B.?7??????????????????????????????????C.?8??????????????????????????????????D.?9【答案】B【考点】常量、变量及变量的赋值【解析】【解答】第一个For循环的作用是统计每个数字出现的次数,存入相对应的数组元素里,第二个For循环的目的是统计出现过的数字个数。3.1415926535中0,7,8共3个数字没有出现过,所以出现过的数字有10-3=7个。故答案选B。【分析】本题考查对VB程序代码的理解。25.有如下VB程序段:s=Text1.Text:n=0:f=FalseFori=1ToLen(s)?ch=Mid(s,i,1)??Ifch>="0"Andch<="9"Then???IfNotfThen?????f=True:n=n+1???EndIf?Else???f=False?EndIfNexti运行该程序段后,在文本框Text1中输入“13+(123-23)2”则变量n的值为(?)A.?1??????????????????????????????????B.?4??????????????????????????????????C.?8??????????????????????????????????D.?13【答案】B【考点】常量、变量及变量的赋值【解析】【解答】分析该程序可得出其功能是:统计文本框Text1中输入的字符串中包含的整数个数,“13+(123-23)2”包含整数13,123,23,2,共4个。故答案选B。【分析】本题主要考查的是VB程序设计。1/1(…………○…………外…………○…………装…………○…………订…………○…………线…………○…………)(※※请※※不※※要※※在※※装※※订※※线※※内※※答※※题※※)(…………○…………内…………○…………装…………○…………订…………○…………线…………○…………)登陆二一教育在线组卷平台助您教考全无忧浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷一、选择题(252=50分)(共25题;共50分)1.下列表达式的运算结果与其他选项不同的是(?)A.?Len("123")+2^2??????????????????????????????B.?Abs(Int(-6.8))C.?Asc(Mid("789",1,1))???????????????????????????D.?Val("9")-Sqr(4)2.下列VB表达式中,随机产生10到100之间奇数的是(?)A.?Int(Rnd45)2+10?????????????????????????????B.?Int(Rnd45)2+11C.?Int(Rnd90+10)???????????????????????????????????D.?Int(Rnd90+11)3.有如下VB程序段:Fori=1To9Step2??b(a(i)Mod10)=b(a(i)Mod10)+1Nextis=0Fori=0To9Step3??s=s+b(i)Nexti数组b各元素初始值为0,数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为(?)A.?5??????????????????????????????????B.?4??????????????????????????????????C.?3??????????????????????????????????D.?24.有如下VB程序段:a(1)=1?Fori=2To6?Randomize?a(i)=a(i-1)+Int(Rnd5+1)?Ifa(i)Mod2=1Then??a(i)=a(i)\2+1?Else??a(i)=a(i)/2?EndIf?Nexti执行程序后,a数组各元素可能是(?)A.?134679??????????????B.?120356??????????????C.?123454??????????????D.?1345115.有如下VB程序段:s="123456789"g=""Fori=1To3?n=Len(s)?x=Int(Rndn)+1?g=g+Mid(s,x,1)?s=Mid(s,1,x-1)+Mid(s,x+1,n-x)Nexti在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为(?)A.?"336"???????????????????????????B.?"346"???????????????????????????C.?"348"???????????????????????????D.?156.有如下VB程序段:Fori=1To3Forj=1To5-i????Ifa(j)>a(j+1)Then????????t=a(j):a(j)=a(j+1):a(j+1)=t????End?If????Nextj????Text1.Text=Text1.Text+str(a(i))Nexti数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框Text1显示的内容是(?)A.?346?????????????????????????????B.?689?????????????????????????????C.?364?????????????????????????????D.?3667.某对分查找算法的VB程序段如下:i=1:j=8:s=""key=Text1.TextDoWhilei<=j?m=(i+j)\2?Ifkey=a(m)Then??s=s+"M"??ExitDo?ElseIfkey>a(m)Then??j=m-1:s=s+"L"?Else??i=m+1:s=s+"R"?EndIfLoopText1.Text=s数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是(?)A.?M???????????????????????????????B.?LR???????????????????????????????C.?RM???????????????????????????????D.?LM8.某VB程序段如下:?s="HelloWorld"?s1=""?n=Len(s)?Fori=1Ton\2??IfMid(s,i,1)>Mid(s,n-i+1,1)Then????s1=s1+Mid(s,i,1)??Else????s1=Mid(s,n-i+1,1)+s1??EndIf?Nexti?Text1.Text=s1执行该程序段后,在文本框Text1中显示的是(?)A.?WlleH????????????????????????B.?oorld????????????????????????C.?dlroo????????????????????????D.?orldo9.有如下VB程序段:Fori=1To8???a(i)=Int(Rnd2)Nextisum=0Fori=1To8Step3???Forj=iTo8???????a(j)=1-a(j)???Nextj???sum=sum+a(i)NextiText1.Text=Str(sum)执行该程序段后,文本框Text1中显示的内容不可能是(?)A.?0??????????????????????????????????B.?2??????????????????????????????????C.?3??????????????????????????????????D.?410.有VB程序段如下:s="2019appreciate":sum=0Fori=1ToLen(s)?ch=Mid(s,i,1)?Ifch>="a"Andch<="z"Then???m=Asc(ch)-Asc("a")+1???a(m)=a(m)+1?EndIf?Nexti?Fori=1To10?Ifa(i)>0Thensum=sum+1?Nexti数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(?)A.?10??????????????????????????????????B.?7??????????????????????????????????C.?4??????????????????????????????????D.?311.有VB序段如下:RandomizeFori=1To6??a(i)=Int(Rnd20)+1?Ifa(i)Mod2=iMod2Then???a(i)=a(i)-1?Else???a(i)=a(i)+2?EndIfNexti执行该程序段后,a(1)~a(6)各元素可能的是(?)A.?13,2,7,12,5,18?????????????????????????B.?22,7,0,15,4,19C.?20,9,18,23,4,7?????????????????????????D.?6,0,4,21,18,1712.某排序算法的VB程序段如下:Fori=1To2Forj=1To6-2iIf?a(j)<a(j+2)Thent=a(j):a(j)=a(j+2):a(j+2)=tEndIfNextjNexti数组元素a(1)~a(6)的初始值依次为“15,13,44,38,26,7”,执行该程序段后,数组a元素的值分别为(??)A.?44,38,26,13,15,7?????????????????????B.?44,7,26,13,15,38C.?15,38,26,13,44,7?????????????????????D.?44,38,26,15,13,713.有VB程序段如下:Dima(1To5)AsIntegerDimiAsInteger,jAsInteger,sAsStrings=“”???Fori=2To5???????Forj=iTo5???????????IfjModi=0Thena(j)=a(j)+1???????Nextj???Nexti???Fori=1To5???????Ifa(i)<>1Thens=Str(i)+s???Nexti???Text1.Text=S若数组a的初始值都为0,则运行该程序段后,Text1中显示的内容为(?)A.?14??????????????????????????????B.?235??????????????????????????????C.?532??????????????????????????????D.?4114.有如下VB程序段:Fori=1To5a(i)=Int(Rnd20)+1NextiFori=2To5IfiMod2=1Anda(i-1)<a(i)Then?t=a(i):a(i)=a(i-1):a(i-1)=tElsea(i)=a(i)-1EndIfNexti执行该程序段后,a(1)~a(5)各元素不可能的值是(?)A.?730190?????????????B.?1816192?????????????C.?201781915?????????????D.?19078415.有如下VB程序段:Fori=1To10???b(i)=0NextiFori=1To5???Forj=1To10???????Ifb(i)Then?????????b(i)=a(j)?????????t=j???????EndIf???Nextj???a(t)=0???List1.AdditemStr(b(i))Nexti其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List1中依次输出的数据是(?)A.?2542536677?????????????????????????????????????B.?1425384253C.?9998837766?????????????????????????????????????D.?839814389916.下列程序段执行后,文本框Text1中显示的内容是(?)s=“QUOTES:keepongoingnevergiveup!”flag=False:m=0Fori=1ToLen(s)???????ch=Mid(s,i,1)???????Ifch>=“a”Andch<=“z”Then?????????IfNotflagThen???????????m=m+1???????????flag=True???????EndIf???Else???????flag=False???EndIfNextiText1.Text=Str(m)A.?5??????????????????????????????????B.?6??????????????????????????????????C.?7??????????????????????????????????D.?2117.下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:count=0Fori=1To20???a(i)=Int(Rnd100)+1NextiFori=1To20???①NextiFori=1To100???Ifb(i)<>0Thencount=count+1NextiLabel1.caption=“不重复数字个数”+Str(count)为实现上述功能,则程序①处应填入的语句为(?)A.?b(i)=1?????????B.?b(a(i))=a(b(i))+1?????????C.?b(i)=b(i)+1?????????D.?b(a(i))=b(a(i))+118.有如下VB程序段:DimiAsInteger,sumAsIntegerDima(1To6)AsInteger,b(1To6)AsIntegersum=0a(6)=18:a(5)=7:b(6)=14:b(5)=16Fori=4To1Step-1?a(i)=a(i+2)-a(i+1)?b(i)=b(i+2)-a(i)?Ifb(i)Mod3=0Thensum=sum+b(i)NextiText1.Text=Str(sum)该程序段运行后,文本框Text1中显示的内容是(?)A.?39????????????????????????????????B.?30????????????????????????????????C.?-9????????????????????????????????D.?1219.某VB程序段如下:Dima(1To6)AsIntegerRandomizea(1)=Int(Rnd2)+1Fori=2To6?a(j)=Int(Rndi)2+1?Ifa(i)<a(i-1)Then???a(i)=a(i)+a(i-1)?EndIfNexti执行该程序段后,数组元素a(1)到a(6)的值可能是(?)A.?2,4,6,8,10,12???????????????????????????B.?1,1,3,7,12,23C.?2,5,9,11,10,15?????????????????????????D.?1,3,15,16,20,2320.如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。Dima(1To10)AsIntegerFunctionSearch(LAsInteger,RAsInteger)AsInteger????M=(L+R)\2????Ifa(M)Anda(M)>a(M+1)Then????①????ElseIfa(M)>a(M-1)Anda(M)>a(M+1)Then????②????ElseIfa(M)>a(M-1)Anda(M)Then????③????EndIfEndFunctionPrivateSubCommand1click()????Label1.caption=““峰顶”值是:”+Str(Search(1,10))EndSub上述程序中划线处可选语句为:①Search=Search(M+1,R)②Search=Search(L,M-1)③Search=a(M)则①②③处的语句依次是(?)A.?①②③???????????????????????B.?①③②???????????????????????C.?③①②???????????????????????D.?②③①21.有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为(?)Fori=1To5?k=i?Forj=i+1To6?Ifa(k)>a(j)Thenk=j?Nextj?t=a(k):a(k)=a(i):a(i)=t?b((i+2)Mod6+1)=a(i)NextiA.?135678??????????????B.?701356??????????????C.?678135??????????????D.?67013522.数组a中有n个正整数,对该数组进行排序,生成左右交替上升数据序列。实现该功能的VB程序段如下:Fori=1Ton\2??????k=i???????????Ifa(j)Thenk=j???Nextj???Ifi<>kThen???????t=a(i):a(i)=a(k):a(k)=t???EndIf???????If?Then???????t=a(j):a(j)=a(j+1):a(j+1)=t?????EndIf???NextjNexti上述程序中方框处可选语句或表达式有:①Forj=i+1Ton-i+1???②Forj=i+1Ton-i③a(j)④a(j)>a(j+1)则(1)、(2)、(3)处语句依次是(?)A.?①、②、③??????????????B.?①、②、④??????????????C.?②、①、③??????????????D.?②、①、④23.某二分查找算法的VB程序段如下:key=Va1(Text1.Text)i=1j=9Text2.Text=""DoWhilei<=j????Ifkey=a(m)ThenExitDo??IfkeyTheni=m+1Elsej=m-1??Text2.Text=Text2.Text+“”+Str(a(m))Loop数组元素a(1)到a(9)的值依次为88,75,70,68,61,58,55,50,43,文本框Text1中输入的值是58,执行该程序段,文本框Text2中显示的是61,50,55,则方框处的代码应为(?)A.?m=(i+j+1)\2????????B.?m=(i+j)\2+1????????C.?m=(i+j)\2????????D.?m=(i+j-1)\224.有如下VB程序段:y=0n=Len(Text1.Text)Fori=1Ton???c=Mid(Text1.Text,i,1)???Ifc>=“0”Andc<=“9”Then???????x=Val(c):a(x)=a(x)+1???EndIfNextiFori=0To9???Ifa(i)>0Theny=y+1NextiLabel1.Caption=Str(y)a数组各元素的初值为0,程序运行时,在文本框Text1中输入内容“pi=3.1415926535”,单击按钮Command1后,标签Label1中显示的内容是(?)A.?6??????????????????????????????????B.?7??????????????????????????????????C.?8??????????????????????????????????D.?925.有如下VB程序段:s=Text1.Text:n=0:f=FalseFori=1ToLen(s)?ch=Mid(s,i,1)??Ifch>="0"Andch<="9"Then???IfNotfThen?????f=True:n=n+1???EndIf?Else???f=False?EndIfNexti运行该程序段后,在文本框Text1中输入“13+(123-23)2”则变量n的值为(?)A.?1??????????????????????????????????B.?4??????????????????????????????????C.?8??????????????????????????????????D.?13答案解析部分一、选择题(252=50分)1.【答案】C【考点】运算符、基本运算与表达式【解析】【解答】选项A:Len("123")+2^2=3+4=7。选项B:Abs(Int(-6.8))=Abs(-7)=7。选项C:Asc(Mid("789",1,1))=Asc(“7”)=55。选项D:Val("9")-Sqr(4)=9-2=7。故答案选C。【分析】本题考查的是len()、abs()、int()、mid()、asc()、val()和sqr()函数的功能。len函数是求字符串的长度,abs函数是求参数的绝对值,int是求不大于参数的整数,mid中按指定位置指定长度从字符串中取出一个子串,asc是求某个字符的ASCII码,val是将参数转为数值型,sqr是求参数的算术平方根。2.【答案】B【考点】运算符、基本运算与表达式【解析】【解答】随机产生奇数的形式是类似于“2n+奇数”的VB表达式,该数的区间范围是10到100的奇数,即11到99的奇数,故答案是B。【分析】本题考查的是随机产生奇数的VB表达式。3.【答案】C【考点】常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1)Mod10,a(3)Mod10,a(5)Mod10,a(7)Mod10,a(9)Mod10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。【分析】本题考查的是数组和统计。4.【答案】C【考点】常见数据类型、数组,运算符、基本运算与表达式【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~5,不可能是1,只有C都符合。故答案选C。【分析】本题考查的是数组的运用以及对常用函数的理解。5.【答案】C【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】变量值的变化如下:i123x336g"3""34""348"s"12456789""1256789""125679"故答案选C。【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid()函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd()函数是产生随机数。6.【答案】D【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。【分析】本题主要考查冒泡排序算法。7.【答案】B【考点】常量、变量及变量的赋值,查找算法及程序实现【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。8.【答案】D【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。【分析】本题考查的是VB字符串的处理以及对Mid()函数的理解。9.【答案】D【考点】算法的控制结构,常量、变量及变量的赋值【解析】【解答】本题中a(i)的取值是0或1,循环只有3次(i=1、4、7),sum的值最多也只有3,只有D不可能。故答案选D。【分析】本题主要考查的是对循环语句的理解。10.【答案】C【考点】常量、变量及变量的赋值【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。【分析】本题考查的是VB的字符串处理。11.【答案】B【考点】常量、变量及变量的赋值【解析】【解答】代码中“Ifa(i)Mod2=iMod2Thena(i)=a(i)-1”是核心,表示如果奇数位置是奇数,或者偶数位置是偶数,则该a(i)的值减去1,而a(i)范围为[1,20],这样操作后a(i)的奇偶性发生了互换,也就是奇数位置是偶数,偶数位置是奇数,另外的情况是a(i)的值加2,故范围是[0,22],因此排除选项C,然后考虑位置和奇偶性,只有选项B符合。【分析】本题考查的是对程序代码的理解。12.【答案】A【考点】常见数据类型、数组【解析】【解答】分析程序段运行过程:i=1,j=1时,a(1)i=1,j=2时,a(2)i=1,j=3时,a(3)i=1,j=4时,a(4)i=2,j=1时,a(1)i=2,j=2时,a(2)循环结束。此时数组a元素的值分别为44,38,26,13,15,7。故答案选A。【分析】本题考查学生对嵌套循环语句的理解,做题过程中,应时刻注意程序段中每个变量的变化情况。13.【答案】D【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】计算完成后,a(1)=0,a(2)=1,a(3)=1,a(4)=2,a(5)=1,最后统计数组中值不为1的元素下标,只有1和4,且输出时左边更新,所以答案是41(数字4和1之间有空格)。故答案选D。【分析】本题主要考查双重循环中数组的运算。14.【答案】D【考点】常量、变量及变量的赋值【解析】【解答】由语句a(i)=Int(Rnd20)+1可知,数组a元素的初始值范围是[1,21)。For循环的循环变量i初始值为2,且i=2时,不满足iMod2=1Anda(i-1)<a(i),因此执行语句a(i)=a(i)-1。所以执行第一次循环后,a(1)范围是[1,21),a(2)范围是[0,20)。当i=3时,iMod2=1,若a(2)<a(3),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第二次循环结束后,a(2)应该大于a(3)或者a(2)+1>=a(3)。当i=4时,不满足iMod2=1Anda(i-1)<a(i),因此执行语句a(i)=a(i)-1。所以执行第三次循环后,a(4)范围是[0,20)。当i=5时,iMod2=1,若a(4)<a(5),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第四次循环结束后,a(4)应该大于a(5)或者a(4)+1>=a(5)。根据以上分析,a(1)~a(5)各元素不可能的值是19,0,7,8,4。因为该数组元素a(2)故答案选D。【分析】本题考查学生对循环语句的理解,要求考生能读懂程序代码,了解各个变量在程序执行过程中的变化。15.【答案】C【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】b数组初值均为0,外层For循环5次,外层每循环一次,则内层For循环10遍,将a数组中最大值分别赋给b(1)到b(5),在List1中输出,并将当次a数组的最大值赋值为0。最终降序输出数组a中5个元素,为9998837766。故答案选C。【分析】本题主要考查循环与数组的综合使用。16.【答案】B【考点】常量、变量及变量的赋值【解析】【解答】当选择结构比较出第一个小写字母时,m值增加1,flag值变为True,接下来连续出现的小写字母都不能使m值改变,直到比较出非小写字母,flag值变为False,然后继续比较出第一个小写字母,m值增加1,如此反复,最终m值为6。故答案选B。【分析】本题考查的是对程序代码的理解。17.【答案】D【考点】常见数据类型、数组,常量、变量及变量的赋值【解析】【解答】本题将产生的随机数存储到数组a中,数组b的位置表示a数组中的某个数,该位置的值表示这个数出现了几次,例如a(1)=10,那么就执行b(10)加1,得到b(10)=1,表示10这个数出现了1次,a(2)=20,得到b(20)=1,表示20这个数出现了1次,a(3)=20,那么b(20)的值再加1,得到b(20)=2,表示20这个数出现了2次,以此类推,出现一个a(i),只要将b(a(i))的值加1,即可统计出a数组中的数出现了几次,程序的第二个循环就是统计a数组中的数值出现的次数,并存储在b数组,最终只要统计b数组中值不为0的位置的个数,就可以知道a数组中的不重复数字的个数了。故答案选D。【分析】本题主要考查的是数组的应用。18.【答案】B【考点】常量、变量及变量的赋值,递归算法【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3)=20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。【分析】本题考查的是对递归算法的理解。19.【答案】B【考点】运算符、基本运算与表达式,常量、变量及变量的赋值【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。【分析】本题考查VB随机数及逻辑判断。20.【答案】D【考点】常量、变量及变量的赋值,查找算法及程序实现,递归算法【解析】【解答】如果a(M)>a(M-1)Anda(M)>a(M+1),则此时的M即为“峰顶”,因此(2)处填Search=a(M);当a(M)a(M)>a(M+1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search=Search(L,M-1)。故答案选D。【分析】本题考查的是VB的递归算法及对分查找算法。21.【答案】D【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。【分析】本题考查的是对排序算法的理解。22.【答案】A【考点】常量、变量及变量的赋值,排序算法及程序实现【解析】【解答】第1趟的排序结果是第1个和第n个数据有序,第2趟的排序结果是第2个和第n-1个数据有序,因此第2趟和第3趟的排序区间分别为[2,n-1]和[3,n-2],可以得到结论:第i趟排序,左边排序区间的开始和结束位置分别是i和n-i+1,第i个数有序;右边排序区间的开始和结束位置分别是i+1和n-i+1。左边排序时,最值(所在位置k)和第i+1位置上的数开始比较,一直比较到位置n-i+1。右边排序时,由于排序对象是第j个位置上的数和第j+1位置上的数比较,因此j+1先达到终点n-i+1,此时j的值为n-i。由于右边是降序排序,因此把前面的数要换到后面去,故a(j)【分析】本题主要考查冒泡排序和选择排序的算法思想。从比较对象a(j)23.【答案】A【考点】常量、变量及变量的赋值,查找算法及程序实现【解析】【解答】Text2中显示的是每次查找的中值m,根据中值的顺序,可得中值m的表达式为(i+j+1)\2。故答案选A。【分析】本题考查的是二分查找算法的VB程序。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。24.【答案】B【考点】常量、变量及变量的赋值【解析】【解答】第一个For循环的作用是统计每个数字出现的次数,存入相对应的数组元素里,第二个For循环的目的是统计出现过的数字个数。3.1415926535中0,7,8共3个数字没有出现过,所以出现过的数字有10-3=7个。故答案选B。【分析】本题考查对VB程序代码的理解。25.【答案】B【考点】常量、变量及变量的赋值【解析】【解答】分析该程序可得出其功能是:统计文本框Text1中输入的字符串中包含的整数个数,“13+(123-23)2”包含整数13,123,23,2,共4个。故答案选B。【分析】本题主要考查的是VB程序设计。1/1 展开更多...... 收起↑ 资源列表 浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷(学生版).docx 浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷(教师版).docx