国家二级VB机试(数组)模拟试卷2 (题后含答案及解析)
题型有:1. 选择题
选择题
1. 以下数组定义语句中,错误的是
A.Static a(10)As Integer
B.Dim c(3,1 To 4)
C.Dim d(-10)
D.Dim b(0 To 5,1 To 3)As Integer
正确答案:C
解析:本题考查的考点是有关数组定义的。在Visual Basic中,可以用4个关键字来定义数组,分别是Dim、ReDim、Public和Static。在Visual Basic中定义数组有两种格式。格式一:Dim
<数组名(下标上界)>As<类型名称>Dim<数组名(第一维下标上界,第二维下标上界1>As<类型名称>格式二:Dim<数组名(下界To上界[,下界To上界]…)>As<类型名称>其中上界必须大于下界。本题中选项C采取第一种格式定义数组,则数组默认下界为0,上界-10小于0,故不符合要求。 知识模块:数组
2. 下面正确使用动态数组的是
A.Dim arr(  )As Integer…ReDim arr(3,5)
B.Dim arr(  )As Integer…ReDim arr(50)As String
C.Dim arr(  )…ReDim arr(50)As Integer
D.Dim arr(50)As Integer…ReDim arr(20)
正确答案:A
解析:通常把需要在编译时分配内存区的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数组。定义动态数组通常分两步:首先在窗体层或标准模块中用Dim、Privat
e或Public声明一个没有下标的数组(括号不能省略),然后在过程中用ReDim语句定义带下标的数组。ReDim语句只能用于动态数组,它可以改变每一维的大小,但不能改变维数和数组类型。 知识模块:数组
3. 语句Dim Arr(-2 To 4)As Integer所定义的数组的元素个数为
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
解析:Visual Basic中有两种类型的数组:同定大小的数组及动态数组。固定大小的数组总是保持同样的大小,而动态数组在运行时可以改变大小。要使用动态数组可先声明一个不指明大小的窄数组(即没有维数下标),然后再用ReDim语句在过程中改变数组大小和类型,对于多维数组,无法改变维数,只能改变最后一维的大小。 知识模块:数组
6. 如果要在语句:a=Array(1,2,3,4,5)的前面声明变量a,则正确的声明是
A.Dim a(4) As Integer
B.Dim a(5) As Variant
C.Dim a(1 To 5) As Integer
D.Dim a As Variant
正确答案:D
解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。 知识模块:数组
7. 在窗体上画一个命令按钮(其Name属性为Command1),然后编写如下代码:Private Sub Command1_Click(  )Dim n(  )As IntegerDim a,b As Integera=InputBox(Enter the first number)b=InputBox(Enter the second number)ReDim n(a To b)For k=LBound(n) To UBound(n)n(k)=kPrint n(k);Next kEnd Sub程序运行后,单击命令按钮,在输入对话框中分别输入2和3,输出结果为
A.1 2
B.2 3
C.3 4
D.4 5
正确答案:B
解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。输入2、3之后数组被重新定义成了n(2To3),只有两个数组元素,并且n(k)=k,即输出2 3。 知识模块:数组
8. 有下面程序代码:Private Sub Command1_Click(  ) a=Array(1,2,3,4,5,6,7,8,9,10)n=UBound(a)For k=0 To UBound(a)/2Printa(k)*a(n);n=n-1Nex tk End Sub程序运行后,单击命令按钮Command1,输出结果是
A.2 6 12 20 30
B.2 12 20 56 90
C.30 28 24 18 10
D.10 18 24 28 30
正确答案: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两个命令按钮。现编写以下程序:Option Base 0 Dim a(  ) As Integer,m As Integer Private Sub Command1_Click(  )m=InputBox(请输入一个正整数)ReDim a(m) End Sub Private Sub Command2_Click(  )m=InputBox(请输入一个正整数)ReDim a(m) End Sub运行程序时,单击Command1后输入整数10,再单击Command2后输入整数5,则数组a中元素的个数是
A.5
B.6
C.10
D.11
正确答案:B
解析:本题考查的考点是有关动态数组的。动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清孔。本题中由于数组下标从0开始,所以单击Command1后输入10,数组被重定义成了11个元素:然后单击Command2输入5,数组又被霞定义成了6个元素,所以最后数组中有6个元素。 知识模块:数组
10. 在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下事件过程:Private Sub Command1_Click(  )Dim arr(10)For i=6 To 10arr(i)=i-5Next iLabel1.Caption=arr(0)+arr(arr(10)/arr(6))End Sub运行程序,单击命令按钮,则在标签中显示的是
A.0
B.1
C.2
D.3
正确答案:A
解析:在本能题的循环中分别将arr(6)到arr(10)的数组元素赋值为1~5,而arr(0)到arr(5)的数组元素没有被赋值,将保留默认初值0,即最后标签上显示的是arr(0)+arr(5)=0。 知识模块:数组
11. 以下过程的功能是从数组中寻最大值:Private Sub FindMax(a(  ) As Integer,ByRef Max As Integer)Dim s As Integer,f As Integer Dim i As Integers=LBound(a):f=UBound(a)Max=a(s)For i=s To fIf a(i)>Max Then Max=a(i)NextEnd Sub以下关于上述过程的叙述中,错误的是
A.语句Call FindMax(a,m)可以调用该过程,其中的a是数组,m是Integer类型变量
B.For循环次数等于a数组的元素数
C.过程末尾应该增加一条返回最大值的语句FindMax=Max
D.参数Max用于存放到的最大值
正确答案:C
解析:本题中定义了一个子过程FindMax,第一个形参是一个数组,第二个形参是一个整型值,所以调用此过程的实参也应该是一个数组和一个整型变量;在过程中遍历整个数组,首先让数组的第一个元素为最大值,然后依次用数组元素和Max进行比较,若其比Max大则令其成为新的最大值,所以For循环次数等于a数组的元素数,参数Max用于存放到的最大值:子过程没有返回值,也无需增加一条返回最大值的语句FindMax=Max。 知识模块:数组
vb 字符串转数组12. 窗体上有一个名称为Command1的命令按钮,其单击事件过程如下:Option Base1Private Sub Command1_Click(  )Dim a(4,4)As IntegerFor i=1 To 4For j=1 To 4a(i,j)=Int(Rnd*100)NextNextx=a(1,1)y=a(1,1)For i=1 To 4For j=1 To 4If x<a(i,j)Then x=a(i,j)If y>a(i,j)Then y=a(i,j)Nexts=s+a(i,i)NextPrint x,y,sEnd Sub关于以上程序,以下叙述中错误的是
A.二维数组元素的值是不大于99的随机整数
B.计算结果x是二维数组各元素中的最大数
C.计算结果y是二维数组各元素中的最小数
D.计算结果s是二维数组各行第一个元素之和
正确答案:D
解析:随机数函数Rnd的功能是用于产生一个小于1但大于或等于0的随机数,本题中产生的整数不会大于99;后一个二重循环用于遍历整个二维数组并且进行比较,如果数组元素的值大于x则成为新的最大值,小于y则成为新的最小值,循环结束后x是二维数组各元素中的最大数,y是二维数组各元素中的最小数。s中存放的是二维数组对角线元素之和。 知识模块:数组

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