admin 管理员组

文章数量: 1086019


2024年4月22日发(作者:equalizer怎么读)

国家二级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赋初值,则以下数组变量定义语

句中错误的是

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/=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的命令按钮。要求编写程序,把文件

的内容写到文件中,然后将删除。命令按钮的单击事件过程如

下:Private Sub Command1_Click( )Open”c:”For Input

As#1Open”c:”For Output As#2Do While NotEOF(2)Line

Input#1,str1Print#2,str1LoopClose Kill”c:”End Sub该程序运行时发生错误,

应该进行的修改是

A.打开应该使用Output方式,打开应该使用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,输出结果为

A.3

B.6

C.9

D.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)的值。 知识模块:数组

15. 阅读程序:Option Base1Sub P(b( )As Integer)For i=1 To 4b(i)=2*iNext

iEnd SubPrivate Sub Form_Click( )Dim a(4)As IntegerFor i=1 To 4a(i)=i+4Next

iP aFor i=1 To 4Print a(i)Next iEnd Sub运行上面的程序,单击窗体,输出结果为

A.2 4 6 8

B.5 6 7 8

C.10 12 14 16

D.4 8 12 16

正确答案:A

解析:本题中的过程P的功能是为形参数组b进行赋值,数组作为参数时采

用的是地址传递,所以对形参的改变将会影响实参,也就是在窗体的单击事件中,

首先在一个循环中为数组a赋值,然后调用了P过程重新为a赋值覆盖掉原来的

值。 知识模块:数组

16. 设有下面程序代码:Private Sub Command1_Click( )Dim a As

Varianta=Array(22,43,23,56,87,45,67,12,98,98,56,34,23,75,64)m=a(0)n=mFor k=1

To UBound(a)If a(k)>m Thenn=m:m=a(k)ElseIf a(k)>n And a(k)<>m

Thenn=a(k)End IfNext kPrint nEnd Sub程序运行时的输出是

A.数组中最大的数(即98)

B.数组中最小的数(即12)

C.数组中第2大的数(即87)

D.数组中第1个数(即22)

正确答案:c)

解析:本题显然是求取数组最大值的,先取得数组的第一个元素作为最大值,

然后用m保存最大值;在循环中如果发现了有比m还大的数组元素,则将该元

素作为新的最大值,原来的最大值m赋值给n;如果元素不比m大就去比较元

素是否大于n,若大于n则将元素赋值给n,所以循环结束后n中的值是数组中

第2大的数。 知识模块:数组

17. 以下关于控件数组的叙述中,正确的是

A.数组中各个控件具有相同的名称

B.数组中可包含不同类型的控件

C.数组中各个控件具有相同的Index属性值

D.数组元素不同,可以响应的事件也不同

正确答案:A

解析:控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事

件,数组中的每个控件都有惟一的索引号(Index),即下标。 知识模块:数组

18. 假定通过复制、粘贴操作建立了一个命令按钮数组Command1,以下

说法中错误的是

A.数组中每个命令按钮的名称(Name属性)均为Command1

B.若未做修改,数组中每个命令按钮的大小都一样

C.数组中各个命令按钮使用同一个Click事件过程

D.数组中每个命令按钮的Index属性值都相同

正确答案:D

解析:本题考查的考点是有关控件数组的。控件数组是一组具有共同名称和

类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),

即下标,默认索引号从0开始。建立控件数组有两种方法:一是先在窗体j二画

好一个控件,然后再用“复制”和“粘贴”的方法建立;二是先在窗体上先画出

若干相同类型的控件,然后再将它们的名称改为同一个名称,再将其Index属性

分别设置为不同值即可。采用第一种方法建立控件数组时,每个数组元素的名称、

大小、事件均使用同一个,区别只在于Index属性不一样。 知识模块:数组

19. 窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击

某个单选按钮时,会调用下面的事件过程Private Sub Option1_Click(Index As

Integer)…End Sub下面关于此过程的参数Index的叙述中正确的是

A.Index为1表示单选按钮被选中,为0表示未选中

B.Index的值可正可负

C.Index的值用来区分哪个单选按钮被选中

D.Index表示数组中单选按钮的数量

正确答案:C

解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,

数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不

能为负值。 知识模块:数组

20. 下面关于控件数组的叙述中正确的是

A.控件数组中所有控件的名称相同,但其Index属性值各不相同

B.控件数组中所有控件的名称相同,但其Value属性值各不相同

C.控件数组中每个元素都是独立的控件,因此都有各自的事件过程

D.上述都是错误的

正确答案:A

解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,

数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不

能为负值。 知识模块:数组

21. 窗体上有一个由两个文本框组成的控件数组,名称为Text1,并有如下

事件过程:Private Sub Text1_Change(Index As Integer)Select Case

IndexCase0Text1(1).FontSize=Text1(0).FontSize*2Text1(1).Text=Text1(0).TextCase

1Text1(0).FontSize=Text1(1).FontSize/2Text1(0).Text=Text1(1).TextCase

ElseMsgBox”执行Else分支”End SelectEnd Sub关于上述程序,以下叙述中错误

的是

A.Index用于标识数组元素

B.本程序中Case Else分支的语句永远不会被执行

C.向任何一个文本框输入字符,都会在另一个文本框中显示该字符

D.下标为0的文本框中显示的字符尺寸将越来越小

正确答案:D

解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,

数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。本

题中的两个文本框的Index值分别为0和1,所以Case Else分支的语句永远不会

被执行:根据程序向仃何一个文本框输入字符,都会在另一个文本框中显示该字

符;在0号文本框中输入时1号文本框的字号是0号文本框字号的2倍,在1

号文本框中输入时0号文本框的字号是1号文本框字号的一半,相当于没有变化,

不会越来越小。 知识模块:数组


本文标签: 数组 控件 定义 元素 按钮