1、国家二级 VB机试(数组)模拟试卷 8及答案与解析 一、选择题 1 假定建立了一个名为 Commandl的命令按钮数组,则以下说法中错误的是 ( A)数组中每个命令按钮的名称 (Name属性 )均为 Commandl ( B)数组中每个命令按钮的标题 (Caption属性 )都一样 ( C)数组中所有命令按钮可以使用同一个事件过程 ( D)用名称 Commandl(下标 )可以访问数组中的每个命令按钮 2 列表框中的项目保存在一个数组中,这个数组的名字是 ( A) Column ( B) Style ( C) List ( D) MultiSelect 3 下面的语句用 Array函数为数组变
2、量 a的各种元素赋值整数值: ( A) Dim a ( B) Dim a As Integer ( C) Dim a(9)As Integer ( D) Dim a()As Integer 4 以下数组定义语句中,错误的是 ( 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 5 语句 Dima(-3 To 4, 3 To 6)As Integer定义的数组的元素个数是 ( A) 1 8 ( B) 28 ( C) 21 ( D) 32 6 下面
3、正确使用动态数组的是 ( A) Dim arr() As IntegerReDim arr(3 , 5) ( B) Dim arr()As IntegerReDim arr(50)As String ( C) Dim arr()ReDim arr(50)As Integer ( D) Dim arr(50)As IntegerReDim arr(20) 7 设有如下数组定 义语句: Dim a(一 1 To 4, 3)As Integer 以下叙述中正确的是 ( A) a数组有 18个数组元素 ( B) a数组有 20个数组元素 ( C) a数组有 24个数组元素 ( D)语法有错 8 语句
4、Dim Arr(-2 To 4 )As Integer所定义的数组的元素个数为 ( A) 7个 ( B) 6个 ( C) 5个 ( D) 4个 9 下列数组定义中错误的是 ( A) Dim a(-5 To -3) ( B) Dim a(3 To 5) ( C) Dim a(-3 To -5) ( D) Dim a(-3 To 3) 10 以下关于数组的叙述中,错误的是 ( A) Variant类型的数组中各数组元素的类型可以不同 ( B)各数组元素可以是不同类型的控件 ( C)各数组元素通过下标进行区别 ( D)各数组元素具有相同的名称 11 设有如下声明语句 Option Base 1 Di
5、m arr(2,一 1 To 5)As Integer 则数组 arr中数组元素的个数是 ( A) 10 ( B) 12 ( C) 14 ( D) 21 12 以下叙述中错误的是 ( A) 用 ReDim语句可以改变数组的维数 ( B)用 ReDim语句可以改变数组的类型 ( C)用 ReDim语句可以改变数组每一维的大小 ( D)用 ReDim语句可以对数组中的所有元素置 0或空字符串 13 设有下面的程序段: x=InputBox(”请输入一个整数 ”) ReDim a(x) For k=x To 0 Step一 1 a(k)=k Next k 一般,在这段程序之前应先进行数组 a的定义。
6、下面定义语句中正确的是 ( A) Dim a(100)As Integer ( B) Dim a()As Integer ( C) Dim a As Integer ( D) Dim a(0 To 100)As Integer 14 如果要在语句: 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 15 设有如下一段程序: Private Sub Command1_Cl
7、ick() Static aAs Variant a=Array(”one”, ”two”, ”three”, ”four”, ”five”) Print a(3) End Sub 针对上述事件过程,以下叙述中正确的是 ( A)变量声明语句有错,应改为 Static a(5)As Variant ( B)变量声明语句有错,应改为 Static a ( C)可以正常运行,在窗体上显示 three ( D)可以正常运行,在窗体上显示 four 16 在窗体上画一个命令按钮 (其 Name属性为 Commandl),然后编写如下代码: Private Sub Commandl_Click() Dim
8、 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,输出结果为 ( A) 1 2 ( B) 2 3 ( C) 3 4 ( D) 4 5 17 1个二维数组可以存放 1个矩阵,在程序开始有语句 Option Bas
9、e0,则下面定义的数组中正好可以存放 1个 4(3矩阵 (即只有 12个元素 )的是 ( A) Dim a(一 2 To 0,2)As Integer ( B) Dim a(3, 2)As Integer ( C) Dim a(4, 3)As Integer ( D) Dim a(-1, To-4,一 1 To-3)As Integer 18 默认情况下,下面声明的数组的元素个数是 Dim a(5,一 2 To 2) ( A) 20 ( B) 24 ( C) 25 ( D) 30 19 设程序中有如下数组定义和过程调用语句: Dim a(10)As Integer Call p(a) 如下过程
10、定义中,正确的是 ( A) Private Sub p(a As Integer) ( B) Private Sub p(a() As Integer) ( C) Private Sub p(a(10)As Integer) ( D) Private Sub p(a(n)As Integer) 20 在程序中要使用 Array函数给数组 arr赋初值,则以下数组变量定义语句中错误的是 ( A) Static arr ( B) Dim arr(5) ( C) Dim art() ( D) Dim arr As Variant 21 有下面程序代码: Private Sub Commandl_Cl
11、ick() 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 程序运行后,单击命令按钮 Commandl,输出结果是 ( A) 2 6 112 20 30 ( B) 2 12 20 56 90 ( C) 30 28 24 18 10 ( D) 10 18 24 28 30 22 有下面 程序代码: Option Base 1 Private Sub Commandl_Click() Dim a(10)As Integer
12、,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=1 To 10 Print a(k); Next k End Sub 程序运行时,单击命令按钮 Commandl,输入 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 23 窗体上有 Commandl、 Com
13、mand2两个命令按钮。现编写以下程序: Option Base 0 Dim a()As Integer,m As Integer Private Sub Command l Click() m=InputBox(”请输入一个正整数 ”1) ReDim a(m) End Sub Private Sub Command2 Click() m=InputBox(”请输入一个正整数 ”) ReDim a(m)End Sub 运行程序时,单击 Commandl后输入整数 10,再单击 Command2后输入整数5,则数组 a中元素的个数是 ( A) 5 ( B) 6 ( C) 10 ( D) 11 2
14、4 在窗体上画一个名为 Commandl的命令按钮,然后编写以下程序: Private Sub Commandl_Click() Dim M(10)As Integer For k=1 To 10 M(k)=12 k Next k x=8 Print M(2+M(x) End Sub 运行程序,单击命令按钮,在窗体上显示的是 ( A) 6 ( B) 5 ( C) 7 ( D) 8 25 在窗体上画一个命令按钮和一个标签,其名称分别 为 Commandl和 Labell,然后编写如下事件过程: Private Sub Commandl_Click() Dim arr(10) For i=6 To
15、 10 arr(i)=i-5 Next i Labell Caption=arr(0)+arr(arr(10)/arr(6) End Sub 运行程序,单击命令按钮,则在标签中显示的是 ( A) 0 ( B) 1 ( C) 2 ( D) 3 26 在窗体上画一个名称为 Textl的文本框,并编写如 下程序: Option Base 1 Private Sub Form_Click() Dim art Dim Start As Integer,Finish As Integer Sum As Integer art=Array(12, 4, 8, 16) Start=LBound(arr) Fi
16、nish=UBound(arr) Sum=0 For i=Start To Finish Sum=Sum+arr(i) Next i c=Sum/Finish Text1 Text=c End Sub ( A) 40 ( B) 10 ( C) 12 ( D) 16 27 以下过程的功能是从数组中寻找最大值: Privme 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=
17、S To f Ifa(i)Max Then Max=a(i) Next End Sub 以下关于上述过程的叙述中,错误的是 ( A)语句 Call FindMax(a, m)可以调用该过程,其中的 a是数组, m是 Integer类型变量 ( B) For循环次数等于 a数组的元素数 ( C)过程末尾应该增加一条返回最大值的语句 FindMax=Max ( D)参数 Max用于存放找到的最大值 28 窗体上有一个名称 为 Commandl的命令按钮,并有如下程序代码: Option Base 1 Private Sub Commandl_Click() Dim a (3, 3) For i=1
18、 To 3 Forj=1 To 3 Ifi1 Andj1 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(2, 2); a(3, 3) End Sub 运行程序,单击命令按钮,窗体上显示的是 ( A) 1 3 ( B) 2 1 ( C) 2 2 ( D) 3 3 29 窗体上有一个名称为 Commandl的命令按钮,其单击事件过程如下: Option Base 1 Private Sub Commandl_Click() Dim a(4, 4)As Integer For i
19、=1 To 4 Forj=1 To 4 a(i, j)=Int(Rnd*100) Next Next x=a(1, 1)y=a(1, 1) For i=1 To 4 Forj=1 To 4 Ifxa(i, j)Then y=a(i, j) Next s=s+a(i, i) Next Print x, y, S End Sub 关于以上程序,以下叙述 中错误的是 ( A)二维数组元素的值是不大于 99的随机整数 ( B)计算结果 x是二维数组各元素中的最大数 ( C)计算结果 y是二维数组各元素中的最小数 ( D)计算结果 s是二维数组各行第一个元素之和 30 窗体上有一个名称为 Command
20、l的命令按钮。要求编写程序,把文件 f1 txt的内容写到文件 f2 txt中,然后将 f1 txt删除。命令按钮的单击事件过程如下: Private Sub Command1_Click() Open”c: n txt”For Input As#1 Open”c: f2 txt”For OutputAs#2 Do While Not EOF(2) Line Input #1 str1 Print#2, strl Loop Close Kill”c: f1 txt” End Sub 该程序运行时发生错误,应该进行的修改是 ( A)打开 f1 txt应该使用 Output方式,打开 f2 txt
21、应该使用 Input方式 ( B) Not EOF(2)应该改为 Not EOF(1) ( C) Line Input应 改为 Get ( D) Close语句改为 Close All 31 窗体上有名称为 Commandl的命令按钮,其事件过程如下: Option Base 1 Private Sub Commandl_Click() Dim a Dim b(101 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
22、 运行程序,单击命令按钮时,窗体上显示的是 ( A) 44 ( B) 46 ( C) 50 ( D) 52 32 窗体上有一个名称为 Commandl的命令按钮,有程序如下: Option Base 1 Private Sub Commandl_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 Ifxa(i)Then y=a(i) s=s+a(i) Next Print x, y, S End Sub
23、 关于上述程序的叙述中,正确的是 ( A)程序运行出错,第 1个 For循环之后的 x=a(i)赋值语句错 ( B)程序正常运行, x是 10个随机数中的最大值 ( C)程序正常运行, s是 10个随机数的和 ( D)程序正常运行, 10个随机数的范围是 100-200 33 在窗体上画一个文本框,其名称为 Textl,然后编写如下程序: Option Base 1 Private Sub Form_Click()Dim Arr(10)As Integer For i=6 To 10 Arr(i)=i 3 Next i Textl Text=Str(Arr(6)+Arr(Arr(6)+Arr(
24、10) End Sub 程序运行后,单击窗体,在文本框中显示的内容是 ( A) 7 ( B) 8 ( C) 9 ( D) 10 34 假定有如下程序: 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,输出结果为 ( A) 3 ( B) 6 ( C) 9 ( D) 1 35 阅读程序: Option Base
25、1 Private Sub Form_Click() Dim a(3, 3)As Integer For i=1 To 3 For j=1 T0 3 a(i, j)=_ Print a(i, j); Nextj Print Next i End SUb 运行上面的程序,单 击窗体,输出结果如下: 1 4 7 2 5 8 3 6 9 则在横线处应填入的内容为 ( A) i+j ( B) i*j ( C) (i一 1)*3+j ( D) i+(j-1)*3 36 阅读程序: Option Base 1 SUb P(b() As Integer) For i=1 To 4 b(i)=2*i Next
26、 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 For i=1 To 4 Print a(i) Next i End Sub 运行上面的程序,单击窗体,输出结果为 ( A) 2 4 6 8 ( B) 5 6 7 8 ( C) 10 12 14 16 ( D) 4 8 12 16 37 在窗体上画一个命令按钮,然后编写如下程序: Option Base 1 Private Sub Commandl_Click() Dim Arr(10) As Integer For i
27、=1 To 10 Arr(i)=11-i Next i x=InputBox(”输入一个整数 (3-10)”) PrintArr(2+Arr(x) End Sub 程序运行后,单击命令按钮,在输入对话框中输入 7,则输出结果为 ( A) 3 ( B) 4 ( C) 5 ( D) 6 38 设有下面程序代码: 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 T0 UBound(a) I
28、fa(k)mThen n=m: m=a(k) ElseIfa(k)n And a(k)m Then n=a(k) End If Next k Print n End Sub 程序运行时的输出是 ( A)数组中最大的数 (即 98) ( B)数组中最小的数 (即 12) ( C)数组中第 2大的数 (即 87) ( D)数组中第 1个数 (即 22) 39 设有下面程序代码: Option Base 1 Private Sub Commandl_Click() Dim x(6) a=Array(4, 2, 5, 1, 6, 3) b=Array(64, 24, 98, 27, 58, 41) F
29、or k=1 To 6 x(a(k)=b(k) Next k For k=1 To 6 Print x(k): Next k End Sub 程序运行时的输出是 ( A) 27 24 41 64 98 58 ( B) 64 24 98 27 58 41 ( C) 24 27 41 58 64 98 ( D) 98 64 58 41 27 24 40 以下关于控件数 组的叙述中,正确的是 ( A)数组中各个控件具有相同的名称 ( B)数组中可包含不同类型的控件 ( C)数组中各个控件具有相同的 Index属性值 ( D)数组元素不同,可以响应的事件也不同 41 以下关于控件数组的叙述中,错误的是
30、 ( A)各数组元素共用相同的事件过程 ( B)各数组元素通过下标进行区别 ( C)数组可以由不同类型的控件构成 ( D)各数组元素具有相同的名称 42 假定通过复制、粘贴操作建立了一个命令按钮数组 Commandl,以下说法中错误的是 ( A)数组中每个命令按钮的名称 (Name属性 )均为 Commandl ( B)若未做修改,数组中每个命令按钮的大小都一样 ( C)数组中各个命令按钮使用同一个 Click事件过程 ( D)数组中每个命令按钮的 Index属性值都相同 43 窗体上已有的 3个单选按钮组成了 1个名为 ChkOptl的控件数组。 用于区分控件数组 ChkOptl中每个元素的
31、属性是 ( A) Caption ( B) ListCount ( C) Listlndex ( D) Index 44 窗体上有一个名称为 Optionl的单选按钮数组,程序运行时,当单击某个单选按钮时, 会调用下面的事件过程 Private Sub Option 1_Click(Index As Integer) End Sub 下面关于此过程的参数 Index的叙述中正确的是 ( A) Index为 1表示单选按钮被选中,为 0表示未选中 ( B) Index的值可正可负 ( C) Index的值用来区分哪个单选按钮被选中 ( D) Index表示数组中单选按钮的数量 45 设在窗体上有
32、一个名称为 Checkl的复选框数组,并有以下事件过程: Private Sub Check1_Click(Index As Integer) End Sub 则下面叙述中错误的是 ( A)单击数组中任何复选框都会调用此事件过程 ( B)参数 Index的值等于单击数组中某个复选框的 Index属性的值 ( C)上面的过程是数组中第 1个复选框的事件过程 ( D)从过程的首部 (即第 l行 )无法确定数组中复选框的个数 46 下面关于控件数组的叙述中正确的是 ( A)控件数组中所有控件的名称相同,但其 Index属性值各不相同 ( B)控件数组中所有控件的名称相同,但其 Value属性值各不相
33、同 ( C)控件数组中每个元素都是独立的控件,因此都有各自的事件过程 ( D)上述都是错误的 47 下列关于控件数组的叙述中,正确的是 ( A)控件数组可以由不同类型的控件组成 ( B)控件数组元素的最小下标值为 1 ( C)在设计阶段,可以改变控件数组元素的 Index属性值 ( D)控件数组的名字由 Caption属性指定 48 窗体上有一个由两个文本框组成的控件数组,名称为 Text1,并有如下事件过程: Private Sub Text 1_Change(Index As Integer) Select Case Index Case 0 Textl(1) FontSize=Textl
34、(0) FontSize*2 Text1(1) Text=Textl(0) Text Case 1 Textl(0) FontSize: =: Textl(1) FontSize 2 Textl(0) Text: Textl(1) Text Case Else MsgBox”执行 Else分支 ” End Select End Sub 关于上述程序,以下叙述中错误的是 ( A) Index用于标识数组元素 ( B)本程序中 Case Else分支的语句永远不会被执行 ( C)向任何一个文本框输入字符,都会在另一个文本框中显示该字符 ( D)下标为 0的文本框中显示的字符尺寸将越来越小 国家二级
35、 VB机试(数组)模拟试卷 8答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 本题考查控件数组。选项 B)中,命令按钮控件数组的 Caption属性不一定相同,可以单独分别设置,其他选项均正确。 【知识模块】 数组 2 【正确答案】 C 【试题解析】 本题考查列表框的使用。列表框的元素保存在 List数组中,可以通过 List属性获取元素值。 【知识模块】 数组 3 【正确答案】 A 【试题解析】 本题考查常用函数。 Array函数返回一个包含数组的 Variant,语法: Array(arglist)。所需的 arglist参数是一个用逗号隔开的值表,这些值用于给Variant所
36、包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0的数组。本题中变量 a必须是变体类型,选项 A)正确。 【知识模块】 数组 4 【正确答案】 C 【试题解析】 本题考查的考点是有关数组定义的。在 Visual Basic中,可以用 4个关键字来定义数组,分别是 Dim、 ReDim、 Public和 Static。在 visual Basic中定义数组有两种格式。 格式一: DimAs DimAs 格式二: DimAs 其中上 界必须大于下界。本题中选项 C)采取第一种格式定义数组,则数组默认下界为 0,上界一 10小于 0,故不符合要求。 【知识模块】 数组 5 【正确答案】 D
37、 【试题解析】 本题考查的考点是有关二维数组的。二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用 To连接,即给出下标可取值的变化范围。“数组元素个数 ”指的是数组中成员的个数,每一维的长度是上界一下界 +1,数组元素个数等于各维长度之积。 【知识模块】 数组 6 【正确答案】 A 【试题解析】 通常把需要在编译时分配内存区 的数组叫做静态数组,而把需要在运行时分配内存区的数组叫做动态数组。定义动态数组通常分两步:首先在窗体层或标准模块中用 Dim、 Private或 Public声明一个没有下标的数组 (括号不能省略 ),然后在过程中用 ReDim语句定义带下标的数组。 ReDi
38、m语句只能用于动态数组,它可以改变每一维的大小,但不能改变维数和数组类型。 【知识模块】 数组 7 【正确答案】 C 【试题解析】 二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用 To连接,即给出下标可取值的变化范围。 “数组元素个数 ”指的 是数组中成员的个数,每一维的长度是上界一下界 +1,数组元素个数等于各维长度之积。数组下标的默认下限值为 0,此时数组某一维的元素个数等于该维下标上界值加 1。 【知识模块】 数组 8 【正确答案】 A 【试题解析】 数组中所含有的元素个数为:上界 -下界 +1,本题中计算 4一 (一2)+1=7。 【知识模块】 数组 9 【正确答案】 C
39、 【试题解析】 定义数组一般使用的格式是 DimAs,其中定义数组时,每一维的下标必须是常数,不 能是变量或表达式。即使在执行数组定义语句之前给出变量的值,也是错误的;无论定义数组的格式为那种,下界都必须小于上界。 【知识模块】 数组 10 【正确答案】 B 【试题解析】 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组元素,它们具有相同的名称,每个数组元素都有一个编号被称为下标,可以通过下标来区别这些元素。变体型数组,控件数组中各数组元素必须是相同类型的控件。 【知识模块】 数组 11 【正确答案】 C 【试题解析】 二维数组定义时对于数组的每一维均给定下标的 下界和上界,中间用
40、To连接,即给出下标可取值的变化范围。 “数组元素个数 ”指的是数组中成员的个数,每一维的长度是上界 -下界 +1,默认下界是 0,数组元素个数等于各维长度之积。 【知识模块】 数组 12 【正确答案】 B 【试题解析】 Visual Basic中有两种类型的数组:固定大小的数组及动态数组。固定大小的数组总是保持同样的大小,而动态数组在运行时可以改变大小。要使用动态数组可先声明一个不指明大小的空数组 (即没有维数下标 ),然后再用ReDim语句在过程中改变数组大小和类型,对于多维数组,无 法改变维数,只能改变最后一维的大小。 【知识模块】 数组 13 【正确答案】 B 【试题解析】 动态数组以
41、变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用 Dim或 Public声明一个没有下标的数组 (括号不能省略 ),然后在过程中随时用 ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。 【知识模块】 数组 14 【正确答案】 D 【试题解析】 Array(arglist)函数用于将 arglist参数中一组用逗号隔 开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。 【知识模块】 数组 15 【正确答案】 D 【试题解析】 Array(arglist)函数
42、用于将 arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。数组的默认下界为 0,所以 a(3)是数组的第四个元素。 【知识模块】 数组 16 【正确答案】 B 【试题解析】 动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用 Dim或 Public声明一个没有下标的数组 (括号不能省略 ),然后在过程中随时用 ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。输入 2、 3之后数组被重新定义成了 n(2 To 3、 )
43、,只有两个数组元素,并且 n(k)=k,即输出 2 3。 【知识模块】 数组 17 【正确答案】 B 【试题解析】 本题考查数组的定义。题目要求定义个一个二维数组,已经指定Option Base为 0,因此选项 B)正确;选项 A)是一维数组;选项 C)数组大小为54;选项 D)数组定义错误。 【知识模块】 数组 18 【正确答案】 D 【试题解析】 本题考查二维数组的定义和使用。 Dima(5,一 2 To 2)表示定义一个二维数组,第一维的下标范围是 0到 5(6行 ),第二维的下标范围是 -2到 2(5列 ),数组的大小为 65=30。 【知识模块】 数组 19 【正确答案】 B 【试题
44、解析】 本题考查过程的定义和使用。由 p过程的调用 “Call p(a)”可知,过程 p有一个参数,且 参数类型为 Integer数组。 【知识模块】 数组 20 【正确答案】 B 【试题解析】 Array(arglist)函数用于将 arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。 【知识模块】 数组 21 【正确答案】 D 【试题解析】 使用 Array函数建立的数组其下标下界为 0, n的值是数组的上界即 9;在循环中 k从 0循环到数组长度的一半,每次输出 a(k)*a(n)的值然后
45、令 n1,故此容易得到每次输出的是数组两端值之积,依次向数组中间移动,即 1*10、2*9、 3*8、 4*7、 5*6。 【知识模块】 数组 22 【正确答案】 A 【试题解析】 InputBox函数将会返回用户在输入对话框中输入的文本,以字符串的形式返回:在第一个 For循环中从前到后依次取出字符串中的每一位数字,然后令对应的数组元素自加 1,其中数组的第一位放的是 0的个数,所以循环结束后数组中存放的是各个数字出现的个数。 【知识模块】 数组 23 【正确答案】 B 【试题解析】 本题 考查的考点是有关动态数组的。动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗
46、体层、标准模块或过程中用 Dim或 Public声明一个没有下标的数组 (括号不能省略 ),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。本题中由于数组下标从 0开始,所以单击 Commandl后输入 10,数组被重定义成了 11个元素:然后单击 Command2输入 5,数组又被重定义成了 6个元素,所以最后数组中有 6个元素。 【知识模块】 数组 24 【正确答案】 A 【试题解析】 本题考查的考点是有关数组的。本题只需要清楚知道最终输出的是什么就可以了,由于 x被赋值为 8,所以 M(x)也就是 M(8),其值为 4;将 4代换M(x),
47、可以知道最终输出的是 M(2+4)也就是 M(6),所以最终输出结果为 6。 【知识模块】 数组 25 【正确答案】 A 【试题解析】 在本题的循环中分别将 arr(6)到 arr(10)的数组元素赋值为 1 5,而 arr(0)到 arr(5)的数组元素没有被赋值,将保留默认初值 0,即最后标签上显示的是 arr(0)+arr(5)=0。 【知识模块】 数组 26 【正确答案】 B 【试题解析】 本题中变量 Start存放的是数组的下界, Finish存放数组的上界,因此 For循环将遍历整个数组;在每次循环中将数组元素累加到累加和变量 Sum中,循环结束后用累加和变量除以数组上界,由于数组
48、下界从 0开始,即求出数组平均值。 【知识模块】 数组 27 【正确答案】 C 【试题解析】 本题中定义了一个子过程 FindMax,第一个形参是一个数组,第二个形参是一个整型值,所以调用此过程的实参也应该是一个数组和一个整型变量;在过程 中遍历整个数组,首先让数组的第一个元素为最大值,然后依次用数组元素和 Max进行比较,若其比 Max大则令其成为新的最大值,所以 For循环次数等于 a数组的元素数,参数 Max用于存放找到的最大值;子过程没有返回值,也无需增加一条返回最大值的语句 FindMax=Max。 【知识模块】 数组 28 【正确答案】 D 【试题解析】 本题是一个二维数组的赋值问
49、题,要判断清哪一个数组元素的值被赋值成了多少。首先确定 a(1, 1)=1, a(1, 2)=2, a(1, 3)=3, a(2, 1)=2, a(3,1)=3;然后 按照公式计算其余的元素。 【知识模块】 数组 29 【正确答案】 D 【试题解析】 随机数函数 Rnd的功能是用于产生一个小于 l但大于或等于 0的随机数,本题中产生的整数不会大于 99;后一个二重循环用于遍历整个二维数组并且进行比较,如果数组元素的值大于 x则成为新的最大值,小于 y则成为新的最小值,循环结束后 x是二维数组各元素中的最大数, y是二维数组各元素中的最小数。 s中存放的是二维数组对角线元素之和。 【知识模块】 数组 30 【正确答案】 B 【试题解析】 打开文件的基本格式为: OpenFileName For Mode As#FileNumber。打开方式主要有 Output、 Append、 Input、 Random等几种。本题中打开了两个文件,其中 1号文件用于读取, 2号文件用于写入。当进行读取时循环条件应该为 Not EOF(1)即还没有读取到文件结尾。 【知识模块】 数组 31 【正确答案】 D 【试题解析】 本题中使用了一个循环为 b数组进行赋值,每个元素的值是对应