国家二级VB机试(数组)模拟试卷1(共288题)_第1页
国家二级VB机试(数组)模拟试卷1(共288题)_第2页
国家二级VB机试(数组)模拟试卷1(共288题)_第3页
国家二级VB机试(数组)模拟试卷1(共288题)_第4页
国家二级VB机试(数组)模拟试卷1(共288题)_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级VB机试(数组)模拟试卷1(共8套)(共288题)国家二级VB机试(数组)模拟试卷第1套一、选择题(本题共21题,每题1.0分,共21分。)1、以下数组定义语句中,错误的是A、Statica(10)AsIntegerB、Dimc(3,1To4)C、Dimd(-10)D、Dimb(0To5,1To3)AsInteger标准答案:C知识点解析:本题考查的考点是有关数组定义的。在VisualBasic中,可以用4个关键字来定义数组,分别是Dim、ReDim、Public和Static。在VisualBasic中定义数组有两种格式。格式一:Dim<数组名(下标上界)>As<类型名称>Dim<数组名(第一维下标上界,第二维下标上界1>As<类型名称>格式二:Dim<数组名(下界To上界[,下界To上界]…)>As<类型名称>其中上界必须大于下界。本题中选项C采取第一种格式定义数组,则数组默认下界为0,上界-10小于0,故不符合要求。2、下面正确使用动态数组的是A、Dimarr()AsInteger…ReDimarr(3,5)B、Dimarr()AsInteger…ReDimarr(50)AsStringC、Dimarr()…ReDimarr(50)AsIntegerD、Dimarr(50)AsInteger…ReDimarr(20)标准答案:A知识点解析:通常把需要在编译时分配内存区的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数组。定义动态数组通常分两步:首先在窗体层或标准模块中用Dim、Private或Public声明一个没有下标的数组(括号不能省略),然后在过程中用ReDim语句定义带下标的数组。ReDim语句只能用于动态数组,它可以改变每一维的大小,但不能改变维数和数组类型。3、语句DimArr(-2To4)AsInteger所定义的数组的元素个数为A、7个B、6个C、5个D、4个标准答案:A知识点解析:数组中所含有的元素个数为:上界-下界+1,本题中计算4-(-2)+1=7。4、以下关于数组的叙述中,错误的是A、Variant类型的数组中各数组元素的类型可以不同B、各数组元素可以是不同类型的控件C、各数组元素通过下标进行区别D、各数组元素具有相同的名称标准答案:B知识点解析:数组是一组具有相同类型和名称的变量的集合。这些变量称为数组元素,它们具有相同的名称,每个数组元素都有一个编号被称为下标,可以通过下标来区别这些元素。变体型数组,控件数组中各数组元素必须是相同类型的控件。5、以下叙述中错误的是A、用ReDim语句可以改变数组的维数B、用ReDim语句可以改变数组的类型C、用ReDim语句可以改变数组每一维的大小D、用ReDim语句可以对数组中的所有元素置0或空字符串标准答案:B知识点解析:VisualBasic中有两种类型的数组:同定大小的数组及动态数组。固定大小的数组总是保持同样的大小,而动态数组在运行时可以改变大小。要使用动态数组可先声明一个不指明大小的窄数组(即没有维数下标),然后再用ReDim语句在过程中改变数组大小和类型,对于多维数组,无法改变维数,只能改变最后一维的大小。6、如果要在语句:a=Array(1,2,3,4,5)的前面声明变量a,则正确的声明是A、Dima(4)AsIntegerB、Dima(5)AsVariantC、Dima(1To5)AsIntegerD、DimaAsVariant标准答案:D知识点解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。7、在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:PrivateSubCommand1_Click()Dimn()AsIntegerDima,bAsIntegera=InputBox("Enterthefirstnumber")b=InputBox("Enterthesecondnumber")ReDimn(aTob)Fork=LBound(n)ToUBound(n)n(k)=kPrintn(k);NextkEndSub程序运行后,单击命令按钮,在输入对话框中分别输入2和3,输出结果为A、12B、23C、34D、45标准答案:B知识点解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。输入2、3之后数组被重新定义成了n(2To3),只有两个数组元素,并且n(k)=k,即输出23。8、有下面程序代码:PrivateSubCommand1_Click()a=Array(1,2,3,4,5,6,7,8,9,10)n=UBound(a)Fork=0ToUBound(a)/2Printa(k)*a(n);n=n-1NextkEndSub程序运行后,单击命令按钮Command1,输出结果是A、26122030B、212205690C、3028241810D、1018242830标准答案:D知识点解析:使用Array函数建立的数组其下标下界为0,n的值是数组的上界即9;在循环中k从0循环到数组长度的一半,每次输出a(k)*a(n)的值然后令n-1,故此容易得到每次输出的是数组两端值之积,依次向数组中间移动,即1,*10、2*9、3*8、4*7、5*6。9、窗体上有Command1、Command2两个命令按钮。现编写以下程序:OptionBase0Dima()AsInteger,mAsIntegerPrivateSubCommand1_Click()m=InputBox("请输入一个正整数")ReDima(m)EndSubPrivateSubCommand2_Click()m=InputBox("请输入一个正整数")ReDima(m)EndSub运行程序时,单击Command1后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是A、5B、6C、10D、11标准答案:B知识点解析:本题考查的考点是有关动态数组的。动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清孔。本题中由于数组下标从0开始,所以单击Command1后输入10,数组被重定义成了11个元素:然后单击Command2输入5,数组又被霞定义成了6个元素,所以最后数组中有6个元素。10、在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下事件过程:PrivateSubCommand1_Click()Dimarr(10)Fori=6To10arr(i)=i-5NextiLabel1.Caption=arr(0)+arr(arr(10)/arr(6))EndSub运行程序,单击命令按钮,则在标签中显示的是A、0B、1C、2D、3标准答案:A知识点解析:在本能题的循环中分别将arr(6)到arr(10)的数组元素赋值为1~5,而arr(0)到arr(5)的数组元素没有被赋值,将保留默认初值0,即最后标签上显示的是arr(0)+arr(5)=0。11、以下过程的功能是从数组中寻找最大值:PrivateSubFindMax(a()AsInteger,ByRefMaxAsInteger)DimsAsInteger,fAsIntegerDimiAsIntegers=LBound(a):f=UBound(a)Max=a(s)Fori=sTofIfa(i)>MaxThenMax=a(i)NextEndSub以下关于上述过程的叙述中,错误的是A、语句CallFindMax(a,m)可以调用该过程,其中的a是数组,m是Integer类型变量B、For循环次数等于a数组的元素数C、过程末尾应该增加一条返回最大值的语句FindMax=MaxD、参数Max用于存放找到的最大值标准答案:C知识点解析:本题中定义了一个子过程FindMax,第一个形参是一个数组,第二个形参是一个整型值,所以调用此过程的实参也应该是一个数组和一个整型变量;在过程中遍历整个数组,首先让数组的第一个元素为最大值,然后依次用数组元素和Max进行比较,若其比Max大则令其成为新的最大值,所以For循环次数等于a数组的元素数,参数Max用于存放找到的最大值:子过程没有返回值,也无需增加一条返回最大值的语句FindMax=Max。12、窗体上有一个名称为Command1的命令按钮,其单击事件过程如下:OptionBase1PrivateSubCommand1_Click()Dima(4,4)AsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*100)NextNextx=a(1,1)y=a(1,1)Fori=1To4Forj=1To4Ifx<a(i,j)Thenx=a(i,j)Ify>a(i,j)Theny=a(i,j)Nexts=s+a(i,i)NextPrintx,y,sEndSub关于以上程序,以下叙述中错误的是A、二维数组元素的值是不大于99的随机整数B、计算结果x是二维数组各元素中的最大数C、计算结果y是二维数组各元素中的最小数D、计算结果s是二维数组各行第一个元素之和标准答案:D知识点解析:随机数函数Rnd的功能是用于产生一个小于1但大于或等于0的随机数,本题中产生的整数不会大于99;后一个二重循环用于遍历整个二维数组并且进行比较,如果数组元素的值大于x则成为新的最大值,小于y则成为新的最小值,循环结束后x是二维数组各元素中的最大数,y是二维数组各元素中的最小数。s中存放的是二维数组对角线元素之和。13、窗体上有名称为Command1的命令按钮,其事件过程如下:OptionBase1PrivateSubCommand1_Click()DimaDimb(10)AsIntegera=Array(2,4,7,3,9,6)Fori=LBound(a)ToUBound(a)b(i)=a(i)+iSum=Sum+b(i)NextiPrintSumEndSub运行程序,单击命令按钮时,窗体上显示的是A、44B、46C、50D、52标准答案:D知识点解析:本题中使用了一个循环为b数组进行赋值,每个元素的值是对应a数组元素的值加上下标的值。因此b数组中的元素为(3、6、10、7、14、12),然后累加和为52。14、在窗体上画一个文本框,其名称为Text1,然后编写如下程序:OptionBase1PrivateSubForm_Click()DimArr(10)AsIntegerFori=6To10Arr(i)=i-3NextiText1.Text=Str(Arr(6)+Arr(Arr(6)+Arr(10)))EndSub程序运行后,单击窗体,在文本框中显示的内容是A、7B、8C、9D、10标准答案:D知识点解析:本题中在循环中为数组部分元素赋值,把Arr(6)~Arr(10)分别赋值为3~7,其余的数组元素保持默认值0;最终输出的是Arr(6)+Arr(Arr(6)+Arr(10))即Arr(6)+Arr(10)=10。15、阅读程序:OptionBase1PrivateSubForm_Click()Dima(3,3)AsIntegerFori=1To3Forj=1To3a(i,j)=____________Printa(i,j);NextjPrintNextiEndSub运行上面的程序,单击窗体,输出结果如下:147258369则在横线处应填入的内容为A、i+jB、i*jC、(i-1)*3+jD、i+(j-1)*3标准答案:D知识点解析:本题中使用二重循环为数组赋值,分许输出的结果,每个元素和行号和列号的关系可以看出,每个元素的值应该等于i+(j-1)*3。16、在窗体上画一个命令按钮,然后编写如下程序:OptionBase1PrivateSubCommand1_Click()DimArr(10)AsIntegerFori=1To10Arr(i)=11-iNextix=InputBox("输入一个整数(3~10)")PrintArr(2+Arr(x))EndSub程序运行后,单击命令按钮,在输入对话框中输入7,则输出结果为A、3B、4C、5D、6标准答案:C知识点解析:本题是一个简单的数组操作,首先在一个循环中为数组元素赋值,然后输出指定的数组元素值。最终输出的是Arr(2+Arr(7))=Arr(6)=5。17、设有下面程序代码:OptionBase1PrivateSubCommand1_Click()Dimx(6)a=Array(4,2,5,1,6,3)b=Array(64,24,98,27,58,41)Fork=1To6x(a(k))=b(k)NextkFork=1To6Printx(k);NextkEndSub程序运行时的输出是A、272441649858B、642498275841C、242741586498D、986458412724标准答案:A知识点解析:本题是一个简单的数组赋值,只要把握好每次为哪个元素赋以什么样的值就不会出错。最后x数组中存放的数据依次是27、24、41、64、98、58。18、以下关于控件数组的叙述中,错误的是A、各数组元素共用相同的事件过程B、各数组元素通过下标进行区别C、数组可以由不同类型的控件构成D、各数组元素具有相同的名称标准答案:C知识点解析:控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标。19、窗体上已有的3个单选按钮组成了1个名为ChkOpt1的控件数组。用于区分控件数组ChkOpt1中每个元素的属性是A、CaptionB、ListCountC、ListIndexD、Index标准答案:D知识点解析:控件数组是一组具有共同名称和类型的控件,它拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。20、设在窗体上有一个名称为Check1的复选框数组,并有以下事件过程:PrivateSubCheck1_Click(IndexAsInteger)…EndSub则下面叙述中错误的是A、单击数组中任何复选框都会调用此事件过程B、参数Index的值等于单击数组中某个复选框的Index属性的值C、上面的过程是数组中第1个复选框的事件过程D、从过程的首部(即第1行)无法确定数组中复选框的个数标准答案:C知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。从过程的首部无法确定数组中控件的个数。21、下列关于控件数组的叙述中,正确的是A、控件数组可以由不同类型的控件组成B、控件数组元素的最小下标值为1C、在设计阶段,可以改变控件数组元素的Index属性值D、控件数组的名字由Caption属性指定标准答案:C知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始,在设计阶段可以手动指定控件数组元素的Index属性值。国家二级VB机试(数组)模拟试卷第2套一、选择题(本题共30题,每题1.0分,共30分。)1、窗体上有名称为Command1的命令按钮,其事件过程如下:OptionBase1PrivateSubCommand1_Click()DimaDimb(10)AsIntegera=Array(2,4,7,3,9,6)Fori=LBound(a)ToUBound(a)b(i)=a(i)+iSum=Sum+b(i)NextiPrintSumEndSub运行程序,单击命令按钮时,窗体上显示的是A、44B、46C、50D、52标准答案:D知识点解析:本题中使用了一个循环为b数组进行赋值,每个元素的值是对应a数组元素的值加上下标的值。因此b数组中的元素为(3、6、10、7、14、12),然后累加和为52。2、窗体上有一个名称为Command1的命令按钮,有程序如下:OptionBase1PrivateSubCommand1_Click()Dima(10)AsInteger第1个ForFori=lTo10a(i)=Int(Rnd*100+100)Printa(i);Nextx=a(i):y=x’第2个ForFori=1To10Ifxa(i)ThenY=a(i)s=s+a(i)NextPrintx,y,sEndSub关于上述程序的叙述中,正确的是A、程序运行出错,第1个For循环之后的x=a(i)赋值语句错B、程序正常运行,x是10个随机数中的最大值C、程序正常运行,s是10个随机数的和D、程序正常运行,10个随机数的范围是100-200标准答案:A知识点解析:随机数函数Rnd的功能是用于产生一个小于1大于或等于0的随机数,本题中产生的整数的范围是100-199:在第一个循环结束后,循环变量i的值为不满足循环条件的值11,在紧随其后的x=a(i)语句将会执行出错,因为出现了数组越界。3、在窗体上画一个文本框,其名称为Text1,然后编写如下程序:OptionBase1PdvmeSubForm_Click()DimArr(10)AsIntegerFori=6To10An(i)=i-3NextiText1.Text=Str(Arr(6)+Arr(Arr(6)+Arr(10)))EndSub程序运行后,单击窗体,在文本框中显示的内容是A、7B、8C、9D、10标准答案:D知识点解析:本题中在循环中为数组部分元素赋值,把Arr(6)~Arr(10)分别赋值为3~7,其余的数组元素保持默认值0;最终输出的是Arr(6)+Arr(Arr(6)+Arr(10))即Arr(6)+Arr(10)=10。4、假定有如下程序:PrivateSubFormClick()Dima(4)AsInteger,b(4)AsIntegerFork=0To2a(k+1)=Val(InputBox("请输入一个整数:"))b(3-k)=a(k+1)NextkPrintb(k)EndSub运行程序,单击窗体,依次输入3、6、9,输出结果为A、3B、6C、9D、1标准答案:A知识点解析:本题在循环中输入数据,当第一次输入3的时候a(1)=3,b(3)=a(1)=3;当第二次输入6的时候a(2)=6,b(2)=a(2)=6:当第三次输入9的时候a(3)=6,b(1)=a(3)=9,跳出循环后k的值为3,将输出b(3)的值。5、阅读程序:OptionBase1PrivateSubFormClick()Dima(3,3)AsIntegerFori=1To3Forj=1To3a(i,j)=___________Printa(i,j);NextjPrintNextiEndSub运行上面的程序,单击窗体,输出结果如下:147258369则在横线处应填入的内容为A、i+jB、i*jC、(i-1)*3+jD、i+(j-1)*3标准答案:D知识点解析:本题中使用二重循环为数组赋值,分许输出的结果,每个元素和行号和列号的关系可以看出,每个元素的值应该等于i+(i-1)*3。6、阅读程序:OptionBase1SubP(b()AsInteger)Fori=1To4b(i)=2*iNextiEndSubPrivateSubFormClick()Dima(4)AsIntegerFori=1To4a(i)=i+4NextiPaFori=1To4Printa(i)NextiEndSub运行上面的程序,单击窗体,输出结果为A、2468B、5678C、10121416D、481216标准答案:A知识点解析:本题中的过程P的功能是为形参数组b进行赋值,数组作为参数时采用的是地址传递,所以对形参的改变将会影响实参,也就是在窗体的单击事件中,首先在一个循环中为数组a赋值,然后调用了P过程重新为a赋值覆盖掉原来的值。7、在窗体上画一个命令按钮,然后编写如下程序:OptionBase1PrivmeSubCommand1_Click()DimArr(10)AsIntegerFori=1To10Arr(i)=11-iNextix=InputBox("输入一个整数(3~10)")PrintAn(2+Arr(x))EndSub程序运行后,单击命令按钮,在输入对话框中输入7,则输出结果为A、3B、4C、5D、6标准答案:C知识点解析:本题是一个简单的数组操作,首先在一个循环中为数组元素赋值,然后输出指定的数组元素值。最终输出的是Arr(2+Arr(7))=Arr(6)=5。8、设有下面程序代码:PrivateSubCommand1_Click()DimaAsVarianta=Array(22,43,23,56,87,45,67,12,98,98,56,34,23,75,64)m=a(0)n=mFork=1ToUBound(a)Ifa(k)>mThenn=m:m=a(k)Elselfa(k)>nAnda(k)<>mThenn=a(k)EndIfNextkPrintnEndSub程序运行时的输出是A、数组中最大的数(即98)B、数组中最小的数(即12)C、数组中第2大的数(即87)D、数组中第1个数(即22)标准答案:C知识点解析:本题显然是求取数组最大值的,先取得数组的第一个元素作为最大值,然后用m保存最大值;在循环中如果发现了有比m还大的数组元素,则将该元素作为新的最大值,原来的最大值m赋值给n:如果元素不比m大就去比较元素是否大于n,若大于n则将元素赋值给n,所以循环结束后n中的值是数组中第2大的数。9、设有下面程序代码:OptionBase1PrivateSubCommand1_Click()Dimx(6)a=Array(4,2,5,1,6,3)b=Array(64,24,98,27,58,41)Fork=1To6x(a(k))=b(k)NextkFork=1To6Printx(k);NextkEndSub程序运行时的输出是A、272441649858B、642498275841C、242741586498D、986458412724标准答案:A知识点解析:本题是一个简单的数组赋值,只要把握好每次为哪个元素赋以什么样的值就不会出错。最后x数组中存放的数据依次是27、24、41、64、98、58。10、以下关于控件数组的叙述中,正确的是A、数组中各个控件具有相同的名称B、数组中可包含不同类型的控件C、数组中各个控件具有相同的Index属性值D、数组元素不同,可以响应的事件也不同标准答案:A知识点解析:控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标。11、以下关于控件数组的叙述中,错误的是A、各数组元素共用相同的事件过程B、各数组元素通过下标进行区别C、数组可以由不同类型的控件构成D、各数组元素具有相同的名称标准答案:C知识点解析:控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标。12、假定通过复制、粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是A、数组中每个命令按钮的名称(Name属性)均为Command1B、若未做修改,数组中每个命令按钮的大小都一样C、数组中各个命令按钮使用同一个Click事件过程D、数组中每个命令按钮的Index属性值都相同标准答案:D知识点解析:本题考查的考点是有关控件数组的。控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。建立控件数组有两种方法:一是先在窗体上画好一个控件,然后再用“复制”和“粘贴”的方法建立:二是先在窗体上先画出若干相同类型的控件,然后再将它们的名称改为同一个名称,再将其Index属性分别设置为不同值即可,采用第一种方法建立控件数组时,每个数组元素的名称、大小、事件均使用同一个,区别只在于Index属性不一样。13、窗体上已有的3个单选按钮组成了1个名为ChkOptl的控件数组。用于区分控件数组ChkOptl中每个元素的属性是A、CaptionB、ListCountC、ListIndexD、Index标准答案:D知识点解析:控件数组是一组具有共同名称和类型的控件,它拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。14、窗体上有一个名称为Optionl的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程PrivateSubOptionlclick(IndexAsInteger)EndSub下面关于此过程的参数Index的叙述中正确的是A、Index为1表示单选按钮被选中,为0表示未选中B、Index的值可正可负C、Index的值用来区分哪个单选按钮被选中D、Index表示数组中单选按钮的数量标准答案:C知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。15、设在窗体上有一个名称为Check1的复选框数组,并有以下事件过程:PrivateSubCheck1_Click(IndexAsInteger)…EndSub则下面叙述中错误的是A、单击数组中任何复选框都会调用此事件过程B、参数Index的值等于单击数组中某个复选框的Index属性的值C、上面的过程是数组中第1个复选框的事件过程D、从过程的首部(即第1行)无法确定数组中复选框的个数标准答案:C知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。从过程的首部无法确定数组中控件的个数。16、下面关于控件数组的叙述中正确的是A、控件数组中所有控件的名称相同,但其Index属性值各不相同B、控件数组中所有控件的名称相同,但其Value属性值各不相同C、控件数组中每个元素都是独立的控件,因此都有各自的事件过程D、上述都是错误的标准答案:A知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。17、下列关于控件数组的叙述中,正确的是A、控件数组可以由不同类型的控件组成B、控件数组元素的最小下标值为1C、在设计阶段,可以改变控件数组元素的Index属性值D、控件数组的名字由Caption属性指定标准答案:C知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始,在设计阶段可以手动指定控件数组元素的Index属性值。18、窗体上有一个由两个文本框组成的控件数组,名称为Text1,并有如下事件过程:PfivmeSubText1_change(IndexAsInteger)SelectCaseIndexCase0Text1(1).FontSize=Text1(0).FontSize*2Text1(1).Text=Text1(0).TextCase1Text1(0).FontSize=Text1(1).FontSize/2Text1(0).Text=Text1(1).TextCaseElseMsgBox"执行Else分支"EndSelectEndSub关于上述程序,以下叙述中错误的是A、Index用于标识数组元素B、本程序中CaseElse分支的语句永远不会被执行C、向任何一个文本框输入字符,都会在另一个文本框中显示该字符D、下标为0的文本框中显示的字符尺寸将越来越小标准答案:D知识点解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。本题中的两个文本框的Index值分别为0和1,所以CaseElse分支的语句永远不会被执行;根据程序向任何一个文本框输入字符,都会在另一个文本框中显示该字符;在0号文本框中输入时1号文本框的字号是0号文本框字号的2倍,在1号文本框中输入时0号文本框的字号是1号文本框字号的一半,相当于没有变化,不会越来越小。19、假定有如下事件过程:PrivateSubForm_Click0DimXAsInteger,nAsIntegerx=1:n=0DoWhilex<28x=x*3:n=n+1loopPrintx,nEndSub程序运行后,单击窗体,输出结果是A、814B、563C、281D、2435标准答案:A知识点解析:本题考查DoWhile循环。在窗体的Click事件代码里面,定义了变量x和n,分析DoWhile循环可知,n保存循环次数,x是循环控制变量,如果x的值小于28则进入循环体,因此x和n的变化过程是:3和1、9和2、27和3、81和4,经过4次循环后x值变成81,循环条件不成立,循环结束。20、以下叙述中错误的是A、标准模块文件的扩展名是.basB、标准模块文件是纯代码文件C、在标准模块中声明的全局变量可以在整个工程中使用D、在标准模块中不能定义过程标准答案:D知识点解析:本题考查的考点是有关标准模块的。VB中的标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,其扩展名为.bas,里面只有代码而没有任何控件。其中全局声明放在标准模块的首部,可以在整个工程中使用。21、下面不能在信息框中输出“VB”的是A、MsgBox"VB"B、x=MsgBox("VB")C、MsgBox("VB")D、CallMsgBox"VB"标准答案:D知识点解析:MsgBox()函数用于显示提示信息,并可返回一个代表用户单击了哪个按钮的Integer类型值,当其作为函数使用时必须将参数放在括号内部,而返回值可以赋值给一个变量,也可以单独使用此函数而不将其返回值赋值给变量;MsgBox过程也用于显示提示信息,作为过程可以独立使用,也可以使用Call关键字来进行调用,但此时参数需要加括号。22、以下关于过程的叙述中,错误的是A、在Sub过程中不能再定义Sub过程B、事件过程也是Sub过程C、过程调用语句的形参个数必须与实参个数相同D、函数过程一定有返回值标准答案:C知识点解析:Sub过程分为事件过程和通用过程,过程不允许嵌套定义,即在Sub过程中再定义Sub过程;函数过程必须有一个返回值,当过程的声明语句中使用了可选参数的时候,允许实参个数与形参不同。23、设子程序过程定义的首部为:PublicSubS(XAsInteger,YAsSingle)则以下正确的调用形式为A、CanS5,4.8B、CanSub(5,4.8)C、Sub5,4.8D、S5,4.8标准答案:D知识点解析:子过程可以独立使用,也可以使用Call关键字来进行调用,但此时参数需要加括号。本题中子程序的名字是S,故此B、C选项可以排除,A选项中缺少参数的括号。24、在窗体上画两个标签和一个命令按钮,其名称分别为Label1、Label2和Command1,然后编写如下程序:PrivateSubfunc(LAsLabel)PrivateSubCommand1_Click()L.Caption="1234"a=Val(Label2.Caption)EndSubCallfunc(Label1)PrivateSubForm_Load()Label2.Caption=aLabel1.Caption="ABCDE"EndSubLabel2.Captibn=10EndSub程序运行后,单击命令按钮,则在两个标签中显示的内容分别为A、ABCD和10B、1234和100C、ABCD和100D、1234和10标准答案:D知识点解析:本题考查的考点是有关过程调用的。窗体加载时首先执行了Load事件里面的代码,设置Label1的标题为“ABCDE”,Label2的标题为“10”;当单击命令按钮时,调用了func过程,在这个过程中把传入的。Label1的标题设置为“1234”,Label2的标题没有发生变化。25、设有如下Command1的单击事件过程及fun过程:PrivateSubCommand1_Click()PrivateSubfun(xAsInteger)DimxAsIntegerIfxMod2=0Thenfim(x/2)x=Val(InputBox("请输入一个整数"))Printx;fun(x)EndSubEndSub执行上述程序,输入6,结果是A、36B、63C、6D、程序死循环标准答案:A知识点解析:本题中的fun过程是一个递归调用,如果参数x为偶数则进入递归;本题中的实参6传入fun过程之后,因其是偶数,所以执行fun(6/2),也就是先输出3,然后返回到fun中输出6。26、编写如下程序:PrivateSubCommand1_Click()Subsubf(s1AsString,s2AsString)Dimstr1AsString,str2AsStringDimtempAsStringstr1=InputBox("输入一个字符串")StaticiAsIntegeri=i+1subfstr1,str2:Printstr2temp=Mid(s1,i,1)EndSubIftemp<>""Thensubfs1,s2s2=s2&tempEndSub程序运行后,单击命令按钮Command1,且输入“abcdef”,则输出结果为A、afbecdB、cdbeafC、fedcbaD、adbecf标准答案:C知识点解析:本题中的子过程subf会进行递归调用,只要在参数s1中取出的字符不是空字符串就进行递归,直到i的值超过s1的长度才停止,然后进行回归操作,相当于每一次向s2中连接的字符都是最后取出的s1中的字符,最终实现字符串的逆序操作。27、以下关于函数过程的叙述中,正确的是A、函数过程形参的类型与函数返回值的类型没有关系B、在函数过程中,过程的返回值可以有多个C、当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递D、如果不指明函数过程参数的类型,则该参数没有数据类型标准答案:A知识点解析:本题考查的考点是有关函数过程的。函数过程可以返回一个函数值,但这个函数值的类型和参数类型没有任何关系:如果不指明参数的类型,则默认参数为变体型:数组作为函数参数时只能通过传地址的方式来调用。28、在VB中,函数过程与子程序过程的区别之一是A、函数过程必须有参数,而子程序过程可以没有B、函数过程的参数传递只采用值传递,而子程序过程只采用地址传递C、在程序中,子程序过程调用的代码可以写在表达式中,而函数过程不能D、函数过程有返回值,而子程序过程没有标准答案:D知识点解析:函数过程和Sub子过程一样,也可以有参数也可以没有参数;参数传递也可以使用地址传递也可以使用值传递;都是在代码中进行调用,只是函数过程必须有一个返回值,子过程没有。29、在窗体上画一个命令按钮(名称为Command1),并编写如下代码:FunctionFun1(ByValaAsInteger,PrivateSubCommand1_Click()bAsInteger)AsIntegerDimxAsIntegerDimtAsIntegerx=10t=a-b:b=t+a:Fun1=t+bPrintFunl(Funl(x,(Funl(x,x-1))),x-1)EndFunctionEndSub程序运行后,单击命令按钮,输出结果是A、10B、0C、11D、21标准答案:B知识点解析:本题考查的考点是有关过程调用的。对于这种复杂的函数调用,一定要搞清楚调用的顺序以及参数传递的是值还是地址。根据过程调用的原则,首先调用最内层的Funl(x,x.1),其结果为12,x的值不变仍为10;然后调用:Funl(x,12),其结果为6,x的值也不变为10;最后调用Funl(6,x-1),其结果为0,x的值也不变为10。本题中的传址调用是没有作用的,因为表达式是不能传地址的。30、有下面程序代码:PrivateSubCommand1_Click()DimaAsStringa="COMPUTER”n=search(a,"T"):PrintIIf(n=0,"未找到",n)EndSubPrivateFunctionsearch(strAsString,chAsString)AsIntegerFork=1ToLen(str)c=Mid(str,k,1)Ifc=chThensearch=k:ExitFunctionEndIfNextksearch=0EndFunction程序运行后,单击命令按钮Command1,输出结果是A、0B、8C、6D、未找到标准答案:C知识点解析:本题中search函数的参数是两个字符串,在函数内进行循环,依次取出第一个参数的第k位和第二个参数进行比较,如果相等则返回k的值,实际上就是查找第二个参数在第一个参数中出现的位置。国家二级VB机试(数组)模拟试卷第3套一、选择题(本题共48题,每题1.0分,共48分。)1、假定建立了一个名为Commandl的命令按钮数组,则以下说法中错误的是A、数组中每个命令按钮的名称(Name属性)均为CommandlB、数组中每个命令按钮的标题(Caption属性)都一样C、数组中所有命令按钮可以使用同一个事件过程D、用名称Commandl(下标)可以访问数组中的每个命令按钮标准答案:B知识点解析:本题考查控件数组。选项B)中,命令按钮控件数组的Caption属性不一定相同,可以单独分别设置,其他选项均正确。2、列表框中的项目保存在一个数组中,这个数组的名字是A、ColumnB、StyleC、ListD、MultiSelect标准答案:C知识点解析:本题考查列表框的使用。列表框的元素保存在List数组中,可以通过List属性获取元素值。3、下面的语句用Array函数为数组变量a的各种元素赋值整数值:A、DimaB、DimaAsIntegerC、Dima(9)AsIntegerD、Dima()AsInteger标准答案:A知识点解析:本题考查常用函数。Array函数返回一个包含数组的Variant,语法:Array(arglist)。所需的arglist参数是一个用逗号隔开的值表,这些值用于给Variant所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为0的数组。本题中变量a必须是变体类型,选项A)正确。4、以下数组定义语句中,错误的是A、Statica(10)AsIntegerB、Dimc(3,1To4)C、Dimd(-10)D、Dimb(0To5,1To3)AsInteger标准答案:C知识点解析:本题考查的考点是有关数组定义的。在VisualBasic中,可以用4个关键字来定义数组,分别是Dim、ReDim、Public和Static。在visualBasic中定义数组有两种格式。格式一:Dim<数组名(下标上界)>As<类型名称>Dim<数组名(第一维下标上界,第二维下标上界)>As<类型名称>格式二:Dim<数组名(下界To上界[,下界To上界]…)>As<类型名称>其中上界必须大于下界。本题中选项C)采取第一种格式定义数组,则数组默认下界为0,上界一10小于0,故不符合要求。5、语句Dima(-3To4,3To6)AsInteger定义的数组的元素个数是A、18B、28C、21D、32标准答案:D知识点解析:本题考查的考点是有关二维数组的。二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界一下界+1,数组元素个数等于各维长度之积。6、下面正确使用动态数组的是A、Dimarr()AsInteger…ReDimarr(3,5)B、Dimarr()AsInteger…ReDimarr(50)AsStringC、Dimarr()…ReDimarr(50)AsIntegerD、Dimarr(50)AsInteger…ReDimarr(20)标准答案:A知识点解析:通常把需要在编译时分配内存区的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数组。定义动态数组通常分两步:首先在窗体层或标准模块中用Dim、Private或Public声明一个没有下标的数组(括号不能省略),然后在过程中用ReDim语句定义带下标的数组。ReDim语句只能用于动态数组,它可以改变每一维的大小,但不能改变维数和数组类型。7、设有如下数组定义语句:Dima(一1To4,3)AsInteger以下叙述中正确的是A、a数组有18个数组元素B、a数组有20个数组元素C、a数组有24个数组元素D、语法有错标准答案:C知识点解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界一下界+1,数组元素个数等于各维长度之积。数组下标的默认下限值为0,此时数组某一维的元素个数等于该维下标上界值加1。8、语句DimArr(-2To4.)AsInteger所定义的数组的元素个数为A、7个B、6个C、5个D、4个标准答案:A知识点解析:数组中所含有的元素个数为:上界-下界+1,本题中计算4一(一2)+1=7。9、下列数组定义中错误的是A、Dima(-5To-3)B、Dima(3To5)C、Dima(-3To-5)D、Dima(-3To3)标准答案:C知识点解析:定义数组一般使用的格式是Dim<数组名(下界To上界[,下界To上界]…)>As<类型名称>,其中定义数组时,每一维的下标必须是常数,不能是变量或表达式。即使在执行数组定义语句之前给出变量的值,也是错误的;无论定义数组的格式为那种,下界都必须小于上界。10、以下关于数组的叙述中,错误的是A、Variant类型的数组中各数组元素的类型可以不同B、各数组元素可以是不同类型的控件C、各数组元素通过下标进行区别D、各数组元素具有相同的名称标准答案:B知识点解析:数组是一组具有相同类型和名称的变量的集合。这些变量称为数组元素,它们具有相同的名称,每个数组元素都有一个编号被称为下标,可以通过下标来区别这些元素。变体型数组,控件数组中各数组元素必须是相同类型的控件。11、设有如下声明语句OptionBase1Dimarr(2,一1To5)AsInteger则数组arr中数组元素的个数是A、10B、12C、14D、21标准答案:C知识点解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,默认下界是0,数组元素个数等于各维长度之积。12、以下叙述中错误的是A、用ReDim语句可以改变数组的维数B、用ReDim语句可以改变数组的类型C、用ReDim语句可以改变数组每一维的大小D、用ReDim语句可以对数组中的所有元素置0或空字符串标准答案:B知识点解析:VisualBasic中有两种类型的数组:固定大小的数组及动态数组。固定大小的数组总是保持同样的大小,而动态数组在运行时可以改变大小。要使用动态数组可先声明一个不指明大小的空数组(即没有维数下标),然后再用ReDim语句在过程中改变数组大小和类型,对于多维数组,无法改变维数,只能改变最后一维的大小。13、设有下面的程序段:x=InputBox(”请输入一个整数”)ReDima(x)Fork=xTo0Step一1a(k)=kNextk一般,在这段程序之前应先进行数组a的定义。下面定义语句中正确的是A、Dima(100)AsIntegerB、Dima()AsIntegerC、DimaAsIntegerD、Dima(0To100)AsInteger标准答案:B知识点解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。14、如果要在语句:a=Array(1,2,3,4,5)的前面声明变量a,则正确的声明是A、Dima(4)AsIntegerB、Dima(5)AsVariantC、Dima(1To5)AsIntegerD、DimaAsVariant标准答案:D知识点解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。15、设有如下一段程序:PrivateSubCommand1_Click()StaticaAsVarianta=Array(”one”,”two”,”three”,”four”,”five”)Printa(3)EndSub针对上述事件过程,以下叙述中正确的是A、变量声明语句有错,应改为Statica(5)AsVariantB、变量声明语句有错,应改为StaticaC、可以正常运行,在窗体上显示threeD、可以正常运行,在窗体上显示four标准答案:D知识点解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。数组的默认下界为0,所以a(3)是数组的第四个元素。16、在窗体上画一个命令按钮(其Name属性为Commandl),然后编写如下代码:PrivateSubCommandl_Click()Dimn()AsInteger:Dima,bAsIntegera=InputBox(”Enterthefirstnumber”)b=InputBox(”Enterthesecondnumber”)ReDimn(aTob)Fork=LBound(n)ToUBound(n)n(k)=kPrintn(k);NextkEndSub程序运行后,单击命令按钮,在输入对话框中分别输入2和3,输出结果为A、12B、23C、34D、45标准答案:B知识点解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。输入2、3之后数组被重新定义成了n(2To3、),只有两个数组元素,并且n(k)=k,即输出23。17、1个二维数组可以存放1个矩阵,在程序开始有语句OptionBase0,则下面定义的数组中正好可以存放1个4(3矩阵(即只有12个元素))的是A、Dima(一2To0,2)AsIntegerB、Dima(3,2)AsIntegerC、Dima(4,3)AsIntegerD、Dima(-1,To-4,一1To-3)AsInteger标准答案:B知识点解析:本题考查数组的定义。题目要求定义个一个二维数组,已经指定OptionBase为0,因此选项B)正确;选项A)是一维数组;选项C)数组大小为5×4;选项D)数组定义错误。18、默认情况下,下面声明的数组的元素个数是Dima(5,一2To2)A、20B、24C、25D、30标准答案:D知识点解析:本题考查二维数组的定义和使用。Dima(5,一2To2)表示定义一个二维数组,第一维的下标范围是0到5(6行),第二维的下标范围是-2到2(5列),数组的大小为6×5=30。19、设程序中有如下数组定义和过程调用语句:Dima(10)AsIntegerCallp(a)如下过程定义中,正确的是A、PrivateSubp(aAsInteger)B、PrivateSubp(a()AsInteger)C、PrivateSubp(a(10)AsInteger)D、PrivateSubp(a(n)AsInteger)标准答案:B知识点解析:本题考查过程的定义和使用。由p过程的调用“Callp(a)”可知,过程p有一个参数,且参数类型为Integer数组。20、在程序中要使用Array函数给数组arr赋初值,则以下数组变量定义语句中错误的是A、StaticarrB、Dimarr(5)C、Dimart()D、DimarrAsVariant标准答案:B知识点解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。21、有下面程序代码:PrivateSubCommandl_Click()a=Array(1,2,3,4,5,6,7,8,9,10)n=UBound(a)Fork=0ToUBound(a)/2Printa(k)*a(n);:n=n-1NextkEndSub程序运行后,单击命令按钮Commandl,输出结果是A、261122030B、212205690C、3028241810D、1018242830标准答案:D知识点解析:使用Array函数建立的数组其下标下界为0,n的值是数组的上界即9;在循环中k从0循环到数组长度的一半,每次输出a(k)*a(n)的值然后令n—1,故此容易得到每次输出的是数组两端值之积,依次向数组中间移动,即1*10、2*9、3*8、4*7、5*6。22、有下面程序代码:OptionBase1PrivateSubCommandl_Click()Dima(10)AsInteger,x,bx=InputBox(”请输入一个多位整数”)Fork=1ToLen(x)b=Mid(x,k,1)a(Val(b)+1)=a(Val(b)+1)+1NextkFork=1To10Printa(k);NextkEndSub程序运行时,单击命令按钮Commandl,输入2355270224,则输出是A、1041120100B、0411201000C、2355270224D、4220725532标准答案:A知识点解析:InputBox函数将会返回用户在输入对话框中输入的文本,以字符串的形式返回:在第一个For循环中从前到后依次取出字符串中的每一位数字,然后令对应的数组元素自加1,其中数组的第一位放的是0的个数,所以循环结束后数组中存放的是各个数字出现的个数。23、窗体上有Commandl、Command2两个命令按钮。现编写以下程序:OptionBase0Dima()AsInteger,mAsIntegerPrivateSubCommandlClick()m=InputBox(”请输入一个正整数”1)ReDima(m)EndSubPrivateSubCommand2Click()m=InputBox(”请输入一个正整数”)ReDima(m)EndSub运行程序时,单击Commandl后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是A、5B、6C、10D、11标准答案:B知识点解析:本题考查的考点是有关动态数组的。动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。本题中由于数组下标从0开始,所以单击Commandl后输入10,数组被重定义成了11个元素:然后单击Command2输入5,数组又被重定义成了6个元素,所以最后数组中有6个元素。24、在窗体上画一个名为Commandl的命令按钮,然后编写以下程序:PrivateSubCommandl_Click()DimM(10)AsIntegerFork=1To10M(k)=12.kNextkx=8PrintM(2+M(x))EndSub运行程序,单击命令按钮,在窗体上显示的是A、6B、5C、7D、8标准答案:A知识点解析:本题考查的考点是有关数组的。本题只需要清楚知道最终输出的是什么就可以了,由于x被赋值为8,所以M(x)也就是M(8),其值为4;将4代换M(x),可以知道最终输出的是M(2+4)也就是M(6),所以最终输出结果为6。25、在窗体上画一个命令按钮和一个标签,其名称分别为Commandl和Labell,然后编写如下事件过程:PrivateSubCommandl_Click()Dimarr(10)Fori=6To10arr(i)=i-5NextiLabell.Caption=arr(0)+arr(arr(10)/arr(6))EndSub运行程序,单击命令按钮,则在标签中显示的是A、0B、1C、2D、3标准答案:A知识点解析:在本题的循环中分别将arr(6)到arr(10)的数组元素赋值为1~5,而arr(0)到arr(5)的数组元素没有被赋值,将保留默认初值0,即最后标签上显示的是arr(0)+arr(5)=0。26、在窗体上画一个名称为Textl的文本框,并编写如下程序:OptionBase1PrivateSubForm_Click()DimartDimStartAsInteger,FinishAsIntegerSumAsIntegerart=Array(12,4,8,16)Start=LBound(arr)Finish=UBound(arr)Sum=0Fori=StartToFinishSum=Sum+arr(i)Nextic=Sum/FinishText1.Text=cEndSubA、40B、10C、12D、16标准答案:B知识点解析:本题中变量Start存放的是数组的下界,Finish存放数组的上界,因此For循环将遍历整个数组;在每次循环中将数组元素累加到累加和变量Sum中,循环结束后用累加和变量除以数组上界,由于数组下界从0开始,即求出数组平均值。27、以下过程的功能是从数组中寻找最大值:PrivmeSubFindMax(a()AsInteger,ByRefMaxAsInteger)DimSAsInteger,fAsInteger:DimiAsIntegerS=LBound(a):f=UBound(a)Max=a(s)Fori=STofIfa(i)>MaxThenMax=a(i)NextEndSub以下关于上述过程的叙述中,错误的是A、语句CallFindMax(a,m)可以调用该过程,其中的a是数组,m是Integer类型变量B、For循环次数等于a数组的元素数C、过程末尾应该增加一条返回最大值的语句FindMax=MaxD、参数Max用于存放找到的最大值标准答案:C知识点解析:本题中定义了一个子过程FindMax,第一个形参是一个数组,第二个形参是一个整型值,所以调用此过程的实参也应该是一个数组和一个整型变量;在过程中遍历整个数组,首先让数组的第一个元素为最大值,然后依次用数组元素和Max进行比较,若其比Max大则令其成为新的最大值,所以For循环次数等于a数组的元素数,参数Max用于存放找到的最大值;子过程没有返回值,也无需增加一条返回最大值的语句FindMax=Max。28、窗体上有一个名称为Commandl的命令按钮,并有如下程序代码:OptionBase1PrivateSubCommandl_Click()Dima%(3,3)Fori=1To3Forj=1To3Ifi>1Andj>1Thena(i,j)=a(a(i一1,j-1),a(i,j一1))+1Elsea(i,j)=i*jEndIfNextNextPrinta(2,2);a(3,3)EndSub运行程序,单击命令按钮,窗体上显示的是A、13B、21C、22D、33标准答案:D知识点解析:本题是一个二维数组的赋值问题,要判断清哪一个数组元素的值被赋值成了多少。首先确定a(1,1)=1,a(1,2)=2,a(1,3)=3,a(2,1)=2,a(3,1)=3;然后按照公式计算其余的元素。29、窗体上有一个名称为Commandl的命令按钮,其单击事件过程如下:OptionBase1PrivateSubCommandl_Click()Dima(4,4)AsIntegerFori=1To4Forj=1To4a(i,j)=Int(Rnd*100)NextNextx=a(1,1)y=a(1,1)Fori=1To4Forj=1To4Ifxa(i,j)Theny=a(i,j)Nexts=s+a(i,i)NextPrintx,y,SEndSub关于以上程序,以下叙述中错误的是A、二维数组元素的值是不大于99的随机整数B、计算结果x是二维数组各元素中的最大数C、计算结果y是二维数组各元素中的最小数D、计算结果s是二维数组各行第一个元素之和标准答案:D知识点解析:随机数函数Rnd的功能是用于产生一个小于l但大于或等于0的随机数,本题中产生的整数不会大于99;后一个二重循环用于遍历整个二维数组并且进行比较,如果数组元素的值大于x则成为新的最大值,小于y则成为新的最小值,循环结束后x是二维数组各元素中的最大数,y是二维数组各元素中的最小数。s中存放的是二维数组对角线元素之和。30、窗体上有一个名称为Commandl的命令按钮。要求编写程序,把文件f1.txt的内容写到文件f2.txt中,然后将f1.txt删除。命令按钮的单击事件过程如下:PrivateSubCommand1_Click()Open”c:\n.txt”ForInputAs#1Open”c:\f2.txt”ForOutputAs#2DoWhileNotEOF(2)LineInput#1.str1Print#2,strlLoopCloseKill”c:\f1.txt”EndSub该程序运行时发生错误,应该进行的修改是A、打开f1.txt应该使用Output方式,打开f2.txt应该使用Input方式B、NotEOF(2)应该改为NotEOF(1)C、LineInput应改为GetD、Close语句改为CloseAll标准答案:B知识点解析:打开文件的基本格式为:OpenFileNameForModeAs#FileNumber。打开方式主要有Output、Append、Input、Random等几种。本题中打开了两个文件,其中1号文件用于读取,2号文件用于写入。当进行读取时循环条件应该为NotEOF(1)即还没有读取到文件结尾。31、窗体上有名称为Commandl的命令按钮,其事件过程如下:OptionBase1PrivateSubCommandl_Click()DimaDimb(101AsIntegera=Array(2,4,7,3,9,6)Fori=LBound(a)ToUBound(a)b(i)=a(i)+iSum=Sum+b(i)NextiPrintSumEndSub运行程序,单击命令按钮时,窗体上显示的是A、44B、46C、50D、52标准答案:D知识点解析:本题中使用了一个循环为b数组进行赋值,每个元素的值是对应a数组元素的值加上下标的值。因此b数组中的元素为(3、6、10、7、14、12),然后累加和为52。32、窗体上有一个名称为Commandl的命令按钮,有程序如下:OptionBase1PrivateSubCommandl_Click()Dima(10)AsInteger‘第1个ForFori=1To10a(i)=Int(Rnd*100+100)Printa(i);Nextx=a(i):y=x‘第2个ForFori=1To10Ifxa(i)Theny=a(i)s=s+a(i)NextPrintx,y,SEndSub关于上述程序的叙述中,正确的是A、程序运行出错,第1个For循环之后的x=a(i)赋值语句错B、程序正常运行,x是10个随机数中的最大值C、程序正常运行,s是10个随机数的和D、程序正常运行,10个随机数的范围是100-200标准答案:A知识点解析:随机数函数Rnd的功能是用于产生一个小于1但大于或等于0的随机数,本题中产生的整数的范围是100-199;在第一个循环结束后,循环变量i的值为不满足循环条件的值11,在紧随其后的x=a(i)语句将会执行出错,因为出现了数组越界。33、在窗体上画一个文本框,其名称为Textl,然后编写如下程序:OptionBase1PrivateSubForm_Click()DimArr(10)AsIntegerFori=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论