国家二级VB机试(数组)模拟试卷3 (题后含答案及解析)
题型有:1. 选择题
选择题
1. 语句Dim a(-3 To 4,3 To 6)As Integer定义的数组的元素个数是
A.18
B.28
C.21
D.32
正确答案:D
解析:本题考查的考点是有关二维数组的。二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员
的个数,每一维的长度是上界-下界+1,数组元素个数等于各维长度之积。 知识模块:数组
2. 设有如下数组定义语句:Dim a(-1 To 4,3)As Integer以下叙述中正确的是
A.a数组有18个数组元素
B.a数组有20个数组元素
C.a数组有24个数组元素
D.语法有错
正确答案:C
解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,数组元素个数等于各维长度之积。数组下标的默认下限值为0,此时数组某一维的元素个数等于该维下标上界值加1。 知识模块:数组
3. 下列数组定义中错误的是
A.Dim a(-5 To -3)
B.Dim a(3 To 5)
C.Dim a(-3 To -5)
D.Dim a(-3 To 3)
正确答案:C
解析:定义数组一般使用的格式是Dim<数组名(下界To、上界[,下界To上界]…)>As<类型名称>,其中定义数组时,每一维的下标必须是常数,不能是变量或表达式。即使在执行数组定义语句之前给出变量的值,也是错误的:无论定义数组的格式为那种,下界都必须小于上界。 知识模块:数组
4. 设有如下声明语句Option Base1Dim arr(2,-1 To 5)As Integer则数组arr中数组元素的个数是
A.10
B.12
C.14
D.21
正确答案:C
解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,默认下界是0,数组元素个数等于各维长度之积。 知识模块:数组
5. 设有下面的程序段:x=InputBox(请输入一个整数)ReDim a(x)For k=x To 0 Step-1a(k)=kNext k一般,在这段程序之前应先进行数组a的定义。下面定义语句中正确的是
A.Dim a(100)As Integer
B.Dim a(  ) As Integer
C.Dim a As Integer
D.Dim a(0 To 100)As Integer
正确答案:B
解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。 知识模块:数组
6. 设有如下一段程序:Private Sub Command1_Click(  )Static a As Varianta=Array(one,two,three,four,five)Print a(3)End Sub针对上述事件过程,以下叙述中正确的是
A.变量声明语句有错,应改为Static a(5)As Variant
B.变量声明语句有错,应改为Static a
C.可以正常运行,在窗体上显示three
D.可以正常运行,在窗体上显示four
正确答案:D
解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。数组的默认下界为0,所以a(3)是数组的第四个元素。 知识模块:数组
7. 在程序中要使用Array函数给数组arr赋初值,则以下数组变量定义语句中错误的是vb 字符串转数组
A.Static arr
B.Dim arr(5)
C.Dim arr(  )
D.Dim arr As Variant
正确答案:B
解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。 知识模块:数组
8. 有下面程序代码:Option Base1Private Sub Command1_Click(  )Dim a(10)As Integer,x,bx=InputBox(请输入一个多位整数)For k=1 To Len(x)b=Mid(x,k,1)a(Val(b)+1)=a(Val(b)+1)+1Next kFor k=1 To 10Print a(k);Next kEnd Sub程序运行时,单击命令按钮Command1,输入2355270224,则输出是
A.1 0 4 1 1 2 0 1 0 0
B.0 4 1 1 2 0 1 0 0 0
C.2 3 5 5 2 7 0 2 2 4
D.4 2 2 0 7 2 5 5 3 2
正确答案:A
解析:InputBox函数将会返回用户在输入对话框中输入的文本,以字符串的形式返回;在第一个For循环中从前到后依次取出字符串中的每一位数字,然后令对应的数组元素自加1,其中数组的第一位放的是0的个数,所以循环结束后数组中存放的是各个数字出现的个数。 知识模块:数组
9. 在窗体上画一个名为Command1的命令按钮,然后编写以下程序:Private Sub Command1_Click(  )Dim M(10) As IntegerFor k=1 To 10M(k)=12-kNext kx=8Print M(2+M(x))End Sub运行程序,单击命令按钮,在窗体上显示的是
A.6
B.5
C.7
D.8
正确答案:A
解析:本题考查的考点是有关数组的。本题只需要清楚知道最终输出的是什么就可以了,由于x被呲值为8,所以M(x)也就是M(8),其值为4;将4代换M(x),可以知道最终输LH的是M(2+4)也就是M(6),所以最终输出结果为6。 知识模块:数组
10. 在窗体上画一个名称为Text1的文本框,并编写如下程序:Option Base1Private Sub Form_Click(  )Dim arrDim Start As Integer,Finish As Integer Sum As Integerarr=Array(12,4,8,16)Start=LBound(arr)Finish=UBound(arr)Sum=0Fo ri=Start To FinishSum=Sum+arr(i)Next ic=Sum/FinishText1.Text=cEnd Sub运行程序,单击窗体,则在文本框中显示的是
A.40
B.10
C.12
D.16
正确答案:B
解析:本题中变量Start存放的是数组的下界,Finish存放数组的上界,因此For循环将遍历整个数组;在每次循环中将数组元素累加到累加和变量Sum中,循环结束后用累加和变量除以数组上界,由于数组下界从0开始,即求出数组平均值。 知识模块:数组
11. 窗体上有一个名称为Command1的命令按钮,并有如下程序代码:Option Base1Private Sub Command1_Click(  )Dim a%(3,3)For i=1 To 3For j=1 To 3If i>1Andj>1Thena(i,j)=a(a(i-1,j-1),a(i,j-1))+1Elsea(i,j)=i*jEnd IfNextNextPrint a(2,2);a(3,3)End Sub运行程序,单击命令按钮,窗体上显示的是
A.1 3
B.2 1
C.2 2
D.3 3
正确答案:D
解析:本题是一个二维数组的赋值问题,要判断清哪一个数组元素的值被赋值成了多少。首先确定a(1,1)=1,a(1,2)=2,a(1,3)=3,a(2,1)=2,a(3,1)=3;然后按照公式计算其余的元素。 知识模块:数组
12. 窗体上有一个名称为Command1的命令按钮。要求编写程序,把文件f1.txt的内容写到文件f2.txt中,然后将f1.txt删除。命令按钮的单击事件过程如下:Private Sub Command1_Click(  )Openc:\f1.txtFor Input As#1Openc:\f2.txtFor Output As#2Do While NotEOF(2)Line Input#1,str1Print#2,str1LoopClose Killc:\f1.txtEnd Sub该程序运行时发生错误,应该进行的修改是
A.打开f1.txt应该使用Output方式,打开f2.txt应该使用Input方式
B.Not EOF(2)应该改为Not EOF(1)
C.Line Input应改为Get
D.Close语句改为Close All
正确答案:B
解析:打开文件的基本格式为:Open FileName For Mode As#FileNumber。打开方式主要有Output、Append、Input、Random等几种。本题中打开了两个文件,其中1号文件用于读取,2号文件用于写入。当进行读取时循环条件应该为NotEOFf(1)g0还没有读取到文件结尾。 知识模块:数组
13. 窗体上有一个名称为Command1的命令按钮,有程序如下:Option Base1Private Sub Command1_Click(  )Dim a(10)As Integer‘第1个ForFor i=1 To 10a(i)=Int(Rnd*100+100)Print a(i);Nextx=a(i):y=x‘第2个ForFor i=1 To 10Ifx<a(i)Then x=a(i)Ify>a(i)Then y=a(i)s=s+a(i)NextPrintx,y,sEnd Sub关于上述程序的叙述中,正确的是
A.程序运行出错,第1个For循环之后的x=a(i)赋值语句错
B.程序正常运行,x是10个随机数中的最大值
C.程序正常运行,s是10个随机数的和
D.程序正常运行,10个随机数的范围是100-200
正确答案:A
解析:随机数函数Rnd的功能是用于产生一个小于l但大于或等于0的随机数,本题中产生的整数的范围是100-199:在第一个循环结束后,循环变量i的值为不满足循环条件的值11,在紧随其后的x=a(i)语句将会执行出错,因为出现了数组越界。 知识模块:数组
14. 假定有如下程序:Private Sub Form_Click(  )Dim a(4)As Integer,b(4)As IntegerFor k=0 To 2a(k+1)=Val(InputBox(请输入一个整数:))b(3-k)=a(k+1)Next kPrint b(k)End Sub运行程序,单击窗体,依次输入3、6、9,输出结果为

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。