1、二级 VISUAL+BASIC-92 (1)及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:44,分数:100.00)1.阅读程序: Option Base 1 Private Sub Form_Click() Dim Arr(3, 3) As Integer For i=1 To 3 For i=1 To 3 If j=i Or j=3-i+1 Then Arr(i, j)=1 Else Arr(i, j)=0 End If Next j Next i For i=1 To 3 For j=1 To 3 Print Arr(i, j); Next j Print N
2、ext i End Sub 程序运行后,如果单击窗体,则输出结果为(分数:3.00)A.1 1 11 1 11 1 1B.0 0 00 0 00 0 0C.1 0 00 1 00 0 1D.1 0 11 0 10 1 02.有下面程序代码: Private Sub Command1_Click()i=1 Do While i5 j=1 Do j=j+1 Print “*“; Loop Until i+j10 Print i=i+2 Loop End Sub 程序运行时输出字符“*”的个数是(分数:3.00)A.50B.20C.16D.153.以下数组定义语句中,错误的是(分数:3.00)A.S
3、tatic a(10) As IntegerB.Dim c(3,1 To 4)C.Dim d(-10)D.Dim b (0 To 5,1 To 3) As Integer4.语句 Dim a(-3 To 4,3 To 6)As Integer 定义的数组的元素个数是(分数:3.00)A.18B.28C.21D.325.下面正确使用动态数组的是(分数:3.00)A.Dim arr () AsIntegerReDim arr(3, 5)B.Dim arr() As IntegerReDim arr (50) As StringC.Dim arr()ReDim arr(50) As IntegerD
4、.Dim arr(50) As IntegerReDim arr(20)6.设有如下数组定义语句: Dim a(-1 To 4,3)As Integer 以下叙述中正确的是(分数:3.00)A.a 数组有 18 个数组元素B.a 数组有 20 个数组元素C.a 数组有 24 个数组元素D.语法有错7.语句 DimArr(-2 To 4) As Integer 所定义的数组的元素个数为(分数:3.00)A.7 个B.6 个C.5 个D.4 个8.下列数组定义中错误的是(分数:3.00)A.Dim a(-5 To -3)B.Dim a(3 To 5)C.Dim a(-3 To -5)D.Dim a
5、(-3 To 3)9.以下关于数组的叙述中,错误的是(分数:3.00)A.Variant 类型的数组中各数组元素的类型可以不同B.各数组元素可以是不同类型的控件C.各数组元素通过下标进行区别D.各数组元素具有相同的名称10.设有如下声明语句 Option Base 1 Dim arr(2, -1 To 5)As Integer 则数组 arr 中数组元素的个数是(分数:3.00)A.10B.12C.14D.2111.以下叙述中错误的是(分数:3.00)A.用 ReDim 语句可以改变数组的维数B.用 ReDim 语句可以改变数组的类型C.用 ReDim 语句可以改变数组每一维的大小D.用 Re
6、Dim 语句可以对数组中的所有元素置 0 或空字符串12.设有下面的程序段: x=InputBox(“请输入一个整数“) ReDim a(x) For k=x To 0 Step -1 a(k)=k Next k 一般,在这段程序之前应先进行数组 a 的定义。下面定义语句中正确的是(分数:3.00)A.Dim a(100)As IntegerB.Dim a()As IntegerC.Dim a As IntegerD.Dim a(0 To 100) As Integer13.如果要在语句:a=Array(1,2,3,4,5)的前面声明变量 a,则正确的声明是(分数:2.00)A.Dim a(4
7、)As IntegerB.Dim a(5)As VariantC.Dim a(1 To 5)As IntegerD.Dim a As Variant14.设有如下一段程序: Private Sub Command1_Click() Static a As Variant a=Array(“one“, “two“, “three“, “four“, “five“) Print a(3) End Sub 针对上述事件过程,以下叙述中正确的是(分数:2.00)A.变量声明语句有错,应改为 Static a(5)As VariantB.变量声明语句有错,应改为 Static aC.可以正常运行,在窗体
8、上显示 threeD.可以正常运行,在窗体上显示 four15.在窗体上画一个命令按钮(其 Name 属性为 Command1),然后编写如下代码: Private Sub Command1_Click() Dim n() As Integer Dim a, b As Integer a=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)=k Print n(k); Next k End Sub 程序运
9、行后,单击命令按钮,在输入对话框中分别输入 2 和 3,输出结果为(分数:2.00)A.1 2B.2 3C.3 4D.4 516.在程序中要使用 Array 函数给数组 arr 赋初值,则以下数组变量定义语句中错误的是(分数:2.00)A.Static arrB.Dim arr(5)C.Dim arr()D.Dim arr As Variant17.有下面程序代码: 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)/2 Print a(k)*a
10、(n); :n=n-1 Next k End Sub 程序运行后,单击命令按钮 Command1,输出结果是(分数:2.00)A.2 6 12 20 30B.2 12 20 56 90C.30 28 24 18 10D.10 18 24 28 3018.有下面程序代码: Option Base 1 Private Sub Command1_Click() Dim a(10)As Integer, x, b x=InputBox(“请输入一个多位整数“) For k=1 To Len(x) b=Mid(x, k, 1) a(Val(b)+1)=a(Val(b)+1)+1 Next k For k
11、=1 To 10 Print a(k); Next k End Sub 程序运行时,单击命令按钮 Command1,输入 2355270224,则输出是(分数:2.00)A.1 0 4 1 1 2 0 1 0 0B.0 4 1 1 2 0 1 0 0 0C.2 3 5 5 2 7 0 2 2 4D.4 2 2 0 7 2 5 5 3 219.窗体上有 Command1、Command2 两个命令按钮。现编写以下程序: Option Base 0 Dim a() As Integer, m As Integer Private Sub Command1_Click() m=InputBox(“请
12、输入一个正整数“) ReDim a(m) End Sub Private Sub Command2_Click() m=InputBox(“请输入一个正整数“) ReDim a(m) End Sub 运行程序时,单击 Command1 后输入整数 10,再单击 Command2 后输入整数 5,则数组 a 中元素的个数是(分数:2.00)A.5B.6C.10D.1120.在窗体上画一个名为 Command1 的命令按钮,然后编写以下程序: Private Sub Command1_Click() Dim M(10) As Integer For k=1 To 10 M(k)=12-k Next
13、 k x=8 Print M(2+M(x) End Sub 运行程序,单击命令按钮,在窗体上显示的是(分数:2.00)A.6B.5C.7D.821.在窗体上画一个命令按钮和一个标签,其名称分别为 Command1 和 Label1,然后编写如下事件过程: Private Sub Command1_Click() Dim arr(10) For i=6 To 10 arr(i)=i-5 Next i Label1.Caption=arr(0)+arr(arr(10)/arr(6) End Sub 运行程序,单击命令按钮,则在标签中显示的是(分数:2.00)A.0B.1C.2D.322.在窗体上画
14、一个名称为 Text1 的文本框,并编写如下程序: Option Base 1 Private Sub Form_Click() Dim arr Dim Start As Integer, Finish As Integer Sum As Integer arr=Array(12, 4, 8, 16) Start=LBound(arr):Finish=UBound(arr):Sum=0 For i=Start To Finish Sum=Sum+arr(i) Next i c=Sum/Finish Text1.Text=c End Sub 运行程序,单击窗体,则在文本框中显示的是(分数:2.0
15、0)A.40B.10C.12D.1623.以下过程的功能是从数组中寻找最大值: Private Sub FindMax(a() As Integer, ByRef Max As Integer) Dim s As Integer, f As Integer Dim i As Integer S=LBound(a):f=UBound(a) Max=a(s) For i=s To f If a(i)Max Then Max=a(i) Next End Sub 以下关于上述过程的叙述中,错误的是(分数:2.00)A.语句 Call FindMax(a, m)可以调用该过程,其中的 a 是数组,m 是
16、 Integer 类型变量B.For 循环次数等于 a 数组的元素数C.过程末尾应该增加一条返回最大值的语句 FindMax=MaxD.参数 Max 用于存放找到的最大值24.窗体上有一个名称为 Command1 的命令按钮,并有如下程序代码: Option Base 1 Private Sub Command1_Click() Dim a%(3, 3) For i=1 To 3 For j=1 To 3 If i1 And j1 Then a(i, j)=a(a(i-1, j-1), a(i, j-1)+1 Else a(i, j)=i*j End If Next Next Print a(
17、2, 2); a(3, 3) End Sub 运行程序,单击命令按钮,窗体上显示的是(分数:2.00)A.1 3B.2 1C.2 2D.3 325.窗体上有一个名称为 Command1 的命令按钮,其单击事件过程如下: Option Base 1 Private Sub Command1_Click() Dim a(4, 4)As Integer For i=1 To 4 For j=1 To 4 a(i, j)=Int(Rnd*100) Next Next x=a(1, 1) y=a(1, 1) For i=1 To 4 For j=1 To 4 If xa(i, j)Then x=a(i,
18、 j) If ya(i, j)Then y=a(i, j) Next s=s+a(i, i) Next Print x, y, s End Sub 关于以上程序,以下叙述中错误的是(分数:2.00)A.二维数组元素的值是不大于 99 的随机整数B.计算结果 x 是二维数组各元素中的最大数C.计算结果 y 是二维数组各元素中的最小数D.计算结果 s 是二维数组各行第一个元素之和26.窗体上有一个名称为 Command1 的命令按钮。要求编写程序,把文件 f1.txt 的内容写到文件 f2.txt 中,然后将 f1.txt 删除。命令按钮的单击事件过程如下: Private Sub Command
19、1_Click() Open“c:/f1.txt“ For Input As #1 Open“c:/f2.txt: For Output As #2 Do While Not EOF(2) Line Input #1.str1 Print #2.str1 Loop Close Kill“c:/f1.txt“ End Sub 该程序运行时发生错误,应该进行的修改是(分数:2.00)A.打开 f1.txt 应该使用 Output 方式,打开 f2.txt 应该使用 Input 方式B.Not EOF(2)应该改为 Not EOF(1)C.Line Input 应改为 GetD.Close 语句改为
20、 Close All27.窗体上有名称为 Command1 的命令按钮,其事件过程如下: Option Base 1 Private Sub Command1_Click() Dim a Dim b(10)As Integer a=Array(2, 4, 7, 3, 9, 6) For i=LBound(a) To UBound(a) b(i)=a(i)+i Sum=Sum+b(i) Next i Print Sum End Sub 运行程序,单击命令按钮时,窗体上显示的是(分数:2.00)A.44B.46C.50D.5228.窗体上有一个名称为 Command1 的命令按钮,有程序如下: O
21、ption Base 1 Private Sub Command1_Click() Dim a(10) As Integer“第 1 个 For For i=1 To 10 a(i)=Int(Rnd*100+100) Print a(i); Next x=a(i):y=x“第 2 个 For For i=1 To 10 If xa(i) Then x=a(i) If ya(i) Then y=a(i) s=s+a(i) Next Print x, y, s End Sub 关于上述程序的叙述中,正确的是(分数:2.00)A.程序运行出错,第 1 个 For 循环之后的 x=a(i)赋值语句错B
22、.程序正常运行,x 是 10 个随机数中的最大值C.程序正常运行,s 是 10 个随机数的和D.程序正常运行,10 个随机数的范围是 100-20029.在窗体上画一个文本框,其名称为 Text1,然后编写如下程序: Option Base 1 Private Sub Form_Click() Dim Arr(10) As Integer For i=6 To 10 Arr(i)=i-3 Next i Text1.Text=Str(Arr(6)+Arr(Arr(6)+Arr(10) End Sub 程序运行后,单击窗体,在文本框中显示的内容是(分数:2.00)A.7B.8C.9D.1030.假
23、定有如下程序: Private Sub Form_Click() Dim a(4)As Integer, b(4)As Integer For k=0 To 2 a(k+1)=Val(InputBox(“请输入一个整数:“) b(3-k)=a(k+1) Next k Print b(k) End Sub 运行程序,单击窗体,依次输入 3、6、9,输出结果为(分数:2.00)A.3B.6C.9D.131.阅读程序: Option Base 1 Private Sub Form_Click() Dim a(3, 3)As Integer For i=1 To 3 For j=1 To 3 a(i,
24、 j)=_ Print a(i, j); Next j Print Next i End Sub 运行上面的程序,单击窗体,输出结果如下: 1 4 7 2 5 8 3 6 9 则在横线处应填入的内容为(分数:2.00)A.i+jB.i*jC.(i-1)*3+jD.i+(j-1)*332.阅读程序: Option Base 1 Sub P(b() As Integer) For i=1 To 4 b(i)=2*i Next i End Sub Private Sub Form_Click() Dim a(4)As Integer For i=1 To 4 a(i)=i+4 Next i P a
25、For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击窗体,输出结果为(分数:2.00)A.2 4 6 8B.5 6 7 8C.10 12 14 16D.4 8 12 1633.在窗体上画一个命令按钮,然后编写如下程序: Option Base 1 Private Sub Command1_Click() Dim Arr(10)As Integer For i=1 To 10 Arr(i)=11-i Next i x=InputBox(“输入一个整数(310)“) Print Arr(2+Arr(x) End Sub 程序运行后,单击命令按钮,在输入
26、对话框中输入 17,则输出结果为(分数:2.00)A.3B.4C.5D.634.设有下面程序代码: Private Sub Command1_Click() Dim a As Variant a=Array(22, 43, 23, 56, 87, 45, 67, 12, 98, 98, 56, 34, 23, 75, 64) m=a(0)n=m For k=1 To UBound(a) If a(k)m Then n=m:m=a(k) Else If a(k)n And a(k)m Then n=a(k) End If Next k Print n End Sub 程序运行时的输出是(分数:2
27、.00)A.数组中最大的数(即 98)B.数组中最小的数(即 12)C.数组中第 2 大的数(即 87)D.数组中第 1 个数(即 22)35.设有下面程序代码: Option Base 1 Private Sub Command1_Click() Dim x(6) a=Array(4, 2, 5, 1, 6, 3) b=Array(64, 24, 98, 27, 58, 41) For k=1 To 6 x(a(k)=b(k) Next k For k=1 To 6 Print x(k); Next k End Sub 程序运行时的输出是(分数:2.00)A.27 24 41 64 98 5
28、8B.64 24 98 27 58 41C.24 27 41 58 64 98D.98 64 58 41 27 2436.以下关于控件数组的叙述中,正确的是(分数:2.00)A.数组中各个控件具有相同的名称B.数组中可包含不同类型的控件C.数组中各个控件具有相同的 Index 属性值D.数组元素不同,可以响应的事件也不同37.以下关于控件数组的叙述中,错误的是(分数:2.00)A.各数组元素共用相同的事件过程B.各数组元素通过下标进行区别C.数组可以由不同类型的控件构成D.各数组元素具有相同的名称38.假定通过复制、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是(分数:2
29、.00)A.数组中每个命令按钮的名称(Name 属性)均为 Command1B.若未做修改,数组中每个命令按钮的大小都一样C.数组中各个命令按钮使用同一个 Click 事件过程D.数组中每个命令按钮的 Index 属性值都相同39.窗体上已有的 3 个单选按钮组成了 1 个名为 ChkOpt1 的控件数组。 用于区分控件数组 ChkOpt1 中每个元素的属性是(分数:2.00)A.CaptionB.ListCountC.ListIndexD.Index40.窗体上有一个名称为 Option1 的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程 Private Sub Opt
30、ion1_Click(Index As Integer) End Sub 下面关于此过程的参数 Index 的叙述中正确的是(分数:2.00)A.Index 为 1 表示单选按钮被选中,为 0 表示未选中B.Index 的值可正可负C.Index 的值用来区分哪个单选按钮被选中D.Index 表示数组中单选按钮的数量41.设在窗体上有一个名称为 Check1 的复选框数组,并有以下事件过程: Private Sub Check1_Click(Index As Integer) End Sub 则下面叙述中错误的是(分数:2.00)A.单击数组中任何复选框都会调用此事件过程B.参数 Index
31、的值等于单击数组中某个复选框的 Index 属性的值C.上面的过程是数组中第 1 个复选框的事件过程D.从过程的首部(即第 1 行)无法确定数组中复选框的个数42.下面关于控件数组的叙述中正确的是(分数:2.00)A.控件数组中所有控件的名称相同,但其 Index 属性值各不相同B.控件数组中所有控件的名称相同,但其 Value 属性值各不相同C.控件数组中每个元素都是独立的控件,因此都有各自的事件过程D.上述都是错误的43.下列关于控件数组的叙述中,正确的是(分数:2.00)A.控件数组可以由不同类型的控件组成B.控件数组元素的最小下标值为 1C.在设计阶段,可以改变控件数组元素的 Inde
32、x 属性值D.控件数组的名字由 Caption 属性指定44.窗体上有一个由两个文本框组成的控件数组,名称为 Text1,并有如下事件过程: Private Sub Text1_Change(Index As Integer) Select Case Index Case 0 Text1(1).FontSize=Text1(0).FontSize*2 Text1(1).Text=Text1(0).Text Case 1 Text1(0).FontSize=Text1(1).FontSize/2Text1(0).Text=Text1(1).Text Case Else MsgBox“执行 Els
33、e 分支“ End Select End Sub 关于上述程序,以下叙述中错误的是(分数:2.00)A.Index 用于标识数组元素B.本程序中 Case Else 分支的语句永远不会被执行C.向任何一个文本框输入字符,都会在另一个文本框中显示该字符D.下标为 0 的文本框中显示的字符尺寸将越来越小二级 VISUAL+BASIC-92 (1)答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:44,分数:100.00)1.阅读程序: Option Base 1 Private Sub Form_Click() Dim Arr(3, 3) As Integer For i=1
34、 To 3 For i=1 To 3 If j=i Or j=3-i+1 Then Arr(i, j)=1 Else Arr(i, j)=0 End If Next j Next i For i=1 To 3 For j=1 To 3 Print Arr(i, j); Next j Print Next i End Sub 程序运行后,如果单击窗体,则输出结果为(分数:3.00)A.1 1 11 1 11 1 1B.0 0 00 0 00 0 0C.1 0 00 1 00 0 1D.1 0 11 0 10 1 0 解析:解析 本题是用一个二重循环为二维数组赋值,只有满足下标 j=i 或者 j=
35、3-i+1 才将其设置为1,否则设置为 0,如果写出这个二维数组可以看出,两个对角线的元素被设置成 12.有下面程序代码: Private Sub Command1_Click()i=1 Do While i5 j=1 Do j=j+1 Print “*“; Loop Until i+j10 Print i=i+2 Loop End Sub 程序运行时输出字符“*”的个数是(分数:3.00)A.50B.20C.16 D.15解析:解析 本题是一个二重循环,最终求星号的个数,实际上就是计算内循环总共执行了多少次。i=1的时候内循环执行 9 次,i=3 的时候内循环执行 7 次,i=5 的时候跳出
36、循环,内循环共执行了 16 次。3.以下数组定义语句中,错误的是(分数:3.00)A.Static a(10) As IntegerB.Dim c(3,1 To 4)C.Dim d(-10) D.Dim b (0 To 5,1 To 3) As Integer解析:解析 本题考查的考点是有关数组定义的。在 Visual Basic 中,可以用 4 个关键字来定义数组,分别是 Dim、ReDim、Public 和 Static。在 Visual Basic 中定义数组有两种格式。 格式一:Dim数组名(下标上界)As类型名称 Dim数组名(第一维下标上界,第二维下标上界)As类型名称 格式二:D
37、im数组名(下界 To 上界,下界 To 上界)As类型名称 其中上界必须大于下界。本题中选项 C 采取第一种格式定义数组,则数组默认下界为 0,上界-10 小于0,故不符合要求。4.语句 Dim a(-3 To 4,3 To 6)As Integer 定义的数组的元素个数是(分数:3.00)A.18B.28C.21D.32 解析:解析 本题考查的考点是有关二维数组的。二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用 To 连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,数组元素个数等于各维长度之积。5.下面正确使用动态数组的
38、是(分数:3.00)A.Dim arr () AsIntegerReDim arr(3, 5) B.Dim arr() As IntegerReDim arr (50) As StringC.Dim arr()ReDim arr(50) As IntegerD.Dim arr(50) As IntegerReDim arr(20)解析:解析 通常把需要在编译时分配内存区的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数组。定义动态数组通常分两步:首先在窗体层或标准模块中用 Dim、Private 或 Public 声明一个没有下标的数组(括号不能省略),然后在过程中用 ReDim
39、语句定义带下标的数组。ReDim 语句只能用于动态数组。它可以改变每一维的大小,但不能改变维数和数组类型。6.设有如下数组定义语句: Dim a(-1 To 4,3)As Integer 以下叙述中正确的是(分数:3.00)A.a 数组有 18 个数组元素B.a 数组有 20 个数组元素C.a 数组有 24 个数组元素 D.语法有错解析:解析 二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用 To 连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,数组元素个数等于各维长度之积。数组下标的默认下限值为 0,此时数组某一维的元素个数
40、等于该维下标上界值加 1。7.语句 DimArr(-2 To 4) As Integer 所定义的数组的元素个数为(分数:3.00)A.7 个 B.6 个C.5 个D.4 个解析:解析 数组中所含有的元素个数为:上界-下界+1,本题中计算 4-(-2)+1=7。8.下列数组定义中错误的是(分数:3.00)A.Dim a(-5 To -3)B.Dim a(3 To 5)C.Dim a(-3 To -5) D.Dim a(-3 To 3)解析:解析 定义数组一般使用的格式是 Dim数组名(下界 To 上界,下界 To 上界)As类型名称,其中定义数组时,每一维的下标必须是常数,不能是变量或表达式。
41、即使在执行数组定义语句之前给出变量的值,也是错误的;无论定义数组的格式舟那种,下界都必须小于上界。9.以下关于数组的叙述中,错误的是(分数:3.00)A.Variant 类型的数组中各数组元素的类型可以不同B.各数组元素可以是不同类型的控件 C.各数组元素通过下标进行区别D.各数组元素具有相同的名称解析:解析 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组元素,它们具有相同的名称,每个数组元素都有一个编号被称为下标,可以通过下标来区别这些元素。变体型数组,控件数组中各数组元素必须是相同类型的控件。10.设有如下声明语句 Option Base 1 Dim arr(2, -1 To
42、5)As Integer 则数组 arr 中数组元素的个数是(分数:3.00)A.10B.12C.14 D.21解析:解析 二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用 To 连接,即给出下标可取值的变化范围。“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,默认下界是 0,数组元素个数等于各维长度之积。11.以下叙述中错误的是(分数:3.00)A.用 ReDim 语句可以改变数组的维数B.用 ReDim 语句可以改变数组的类型 C.用 ReDim 语句可以改变数组每一维的大小D.用 ReDim 语句可以对数组中的所有元素置 0 或空字符串解析:解析 Vis
43、ual Basic 中有两种类型的数组:固定大小的数组及动态数组。固定大小的数组总是保持同样的大小,而动态数组在运行时可以改变大小。要使用动态数组可先声明一个不指明大小的空数组(即没有维数下标),然后再用 ReDim 语句在过程中改变数组大小和类型,对于多维数组,无法改变维数,只能改变最后一维的大小。12.设有下面的程序段: x=InputBox(“请输入一个整数“) ReDim a(x) For k=x To 0 Step -1 a(k)=k Next k 一般,在这段程序之前应先进行数组 a 的定义。下面定义语句中正确的是(分数:3.00)A.Dim a(100)As IntegerB.D
44、im a()As Integer C.Dim a As IntegerD.Dim a(0 To 100) As Integer解析:解析 动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用。Dim 或 Public 声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim 语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。13.如果要在语句:a=Array(1,2,3,4,5)的前面声明变量 a,则正确的声明是(分数:2.00)A.Dim a(4)As IntegerB.Dim a(5)As VariantC.Dim
45、 a(1 To 5)As IntegerD.Dim a As Variant 解析:解析 Array(arglist)函数用于将 arglist 参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。14.设有如下一段程序: Private Sub Command1_Click() Static a As Variant a=Array(“one“, “two“, “three“, “four“, “five“) Print a(3) End Sub 针对上述事件过程,以下叙述中正确的是(分数:2.00)A.变
46、量声明语句有错,应改为 Static a(5)As VariantB.变量声明语句有错,应改为 Static aC.可以正常运行,在窗体上显示 threeD.可以正常运行,在窗体上显示 four 解析:解析 Array(arglist)函数用于将 arglist 参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。数组的默认下界为 0,所以 a(3)是数组的第四个元素。15.在窗体上画一个命令按钮(其 Name 属性为 Command1),然后编写如下代码: Private Sub Command1_Clic
47、k() Dim n() As Integer Dim a, b As Integer a=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)=k Print n(k); Next k End Sub 程序运行后,单击命令按钮,在输入对话框中分别输入 2 和 3,输出结果为(分数:2.00)A.1 2B.2 3 C.3 4D.4 5解析:解析 动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两
48、步:首先在窗体层、标准模块或过程中用。Dim 或 Public 声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim 语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。输入 2、3 之后数组被重新定义成了 n(2 To 3),只有两个数组元素,并且 n(k)=k,即输出 2 3。16.在程序中要使用 Array 函数给数组 arr 赋初值,则以下数组变量定义语句中错误的是(分数:2.00)A.Static arrB.Dim arr(5) C.Dim arr()D.Dim arr As Variant解析:解析 Array(arglist)函数用于将 argli
49、st 参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。17.有下面程序代码: 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)/2 Print a(k)*a(n); :n=n-1 Next k End Sub 程序运行后,单击命令按钮 Command1,输出结果是(分数:2.00)A.2 6 12 20 30B.2 12 20 56 90C.30 28 24 18 10D.10 18 24 28 30 解析:解析 使用 Array 函数建立的数组其下标下界为 0,n 的值是数组的上界即 9;在循环中 k 从 0 循环到数组长度的一半,每次输出 a(k)*a(n)的值然后令 n-1,故此容易得到每次输出的是数组两端值之积,依次向数组中间移动,即 1*10、2*9、3*8、4*7、5*6。18.有下面程序代码: Option Bas