文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
※数组题型分析
29. 以下有关数组的说明中,错误的是___29___。
(A)根据数组说明的方式,可将数组分为动态数组和静态数组 (B)在过程中,不能用Private语句定义数组
(C)利用ReDim语句重新定维时,不得改变已经定义说明过的数组的数据类型 (D)数组重新定维后,原有的数组元素内容将不予保留 答案:D
分析:要保留数组元素原有的内容用Preserve语句。 26.下面有关数组处理的叙述中,不正确的是 26 。
①在过程中用ReDim语句定义的动态数组,其下标的上下界可为赋了值的变量 ②在过程中,可以使用Dim、Private和Static语句定义数组
③用ReDim语句重新定义动态数组时,不得改变该数组的数据类型 ④可用Public语句在窗体模块的通用说明处定义一个全局数组
(A)①②③④ (B)①③④ (C)①②③ (D)②④
答案:D
分析:在过程中不能用Private定义数组;Public用在标准模块中定义数组。
31. 名为sort的Sub子过程的形式参数为一数组,以下的定义语句中正确的是___31___。 (A)Private Sub sort(A() As Integer) (B)Private Sub sort(A(10) As Integer) (C)Private Sub sort(ByVal A() As Integer) (D)Private Sub sort(A(,) As Integer) 答案:A
分析:数组参数必须为ByRef方式(传地址方式)传送。 27. 下列关于数组的叙述中,错误的是___27___。 (A)在过程中可以用Dim语句对形参数组进行说明 (B)数组是同类变量的一个有序的集合 (C)数组元素可以是控件
(C)数组在使用之前,必须先用数组说明语句进行说明 答案:A
分析:形参中不使用Dim语句说明变量和数组。
31. 某过程的说明语句中,正确的数组说明语句是___31___。 Const N As Integer=4 Dim L As Integer
① Dim X(L) As Integer ② Dim A(K) As Integer
Const K As Integer=3 ③ Dim B(N) As Integer
④ Dim Y(2000 to 2008) As Integer (A)①②④ (B)①③④ (C)③④ (D)②③
1
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
答案:C
分析:在定义数组时,每一维的元素个数必须是常数,不能是变量或表达式。 (27)下列语句中的 [27] 语句可以用来正确地声明一个动态数组。
(A)Private A(n) As Integer (B)Dim A() As Integer (C)Dim A(,) As Integer (D)Dim A(1 to n) 答案:B
分析:给数组附以一个空维数表,这样就将数组声明为动态数组。
25.在窗体的通用声明处有语句Dim A() As Single,以下在某事件过程中重定义此数组的一组正确语句是: 25 。
(A) ReDim A(3,3) (B) ReDim A(3,3)
ReDim A(4,4) As Integer ReDim Preserve A(4,4) (C) ReDim A(3,3) (D) ReDim A(3,3)
ReDim A(3,3) As Integer ReDim Preserve A(3,4)
答案:D
分析:ReDim语句在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。
28.定义两个过程Private Sub1(St() As String)和Private Sub2(Ch() As String*6),在调用过程中用Dim S(3) As String*6,A(3) As String定义了两个字符串数 组。下面调用语句中正确的有 28 。
①Call Sub1(S) ②Call Sub1(A) ③Call Sub2(A) ④Call Sub2(S)
(A)①② (B)①③ (C)②③ (D)②④
答案:D
分析:实参和形参的类型要对应。
27.以下有关控件数组的说法中错误的是_(27)_。
(A)控件数组由一组具有共同名称和相同类型的控件组成 (B)控件数组中的每一个控件共享同样的事件过程
(C)控件数组中的每个元素的下标由控件的Index属性指定 (D)同一控件数组中的元素只能有相同的属性设置值 答案:D 分析:
27.下列有关数组的说法中,不正确的是 。 (A)在窗体模块中不可以定义全局数组
(B)可以使用Erase语句释放所有数组所占据的存储空间
(C)语句Dim X(3.6+2) As Integer定义了一个维上界是6的一维的整形数组 (D)形参数组的类型可以是定长字符串类型 答案:B
分析:使用Erase语句重新初始化固定大小的数组中的元素,以及释放动态数组存储空间。
29.下面有关数组的说法中,错误的是 。
A)数组必须先定义后使用
2
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
B)数组形参可以是定长字符串类型
C)Erase语句的作用是对已定义数组的值重新初始化 D)定义数组时,数组维界值可以不是整数
解析:Erase语句重新初始化大小固定的数组的元素,以及释放动态数组的存储空间。 答案:C
28. 以下有关数组的说法中,正确的是_____。
A.数组是有序变量的集合,序列中的变量类型可以不同
B.数组下标用以确定数组元素在数组中的位置,下标取值只能是0或1 C.在一定条件下动态数组可以反复改变其维数与大小 D.固定大小数组也可以使用ReDim语句改变其大小 答案:C
分析:固定大小数组不能使用ReDim语句改变其大小。 28.下面有关数组的说法中, 是错误的。
A) 在模块中由于未使用Option Explicit语句,所以数组不用先定义就可以使用,只不过是Variant类型
B) 过程定义中,形参数组可以是定长字符串类型
C) Erase语句的作用是对固定大小数组的值重新初始化或收回分配给动态数组的存储空间 D) 定义数组时,数组维界值可以不是整数 答案:C
24.以下说法不正确的是 24 。
A) 使用不带关键字Preserve的ReDim语句可以重新定义数组的维数 B) 使用不带关键字Preserve的ReDim语句可以改变数组各维的上、下界 C) 使用不带关键字Preserve的ReDim语句可以改变数组的数据类型
D) 使用不带关键字Preserve的ReDim语句可以对数组中的所有元素进行初始化 答案:C
27. 以下对数组参数的说明中,错误的是 27 。 A) 在过程中可以用Dim语句对形参数组进行声明 B) 形参数组只能按地址传递
C) 实参为动态数组时,可用ReDim 语句改变对应形参数组的维界 D) 只需把要传递的数组名作为实参,即可调用过程 答案:A
24.以下有关数组参数的说明中正确的是 24 。 A)在过程中也可用Dim语句对形参数组进行说明
B)动态数组作为实参时,可用ReDim语句在过程中改变对应形参数组的维界 C)调用过程时,数组名不能作为实参 D)数组可以按地址传递也可以按值传递 答案:B
30.下面有关数组的说法中,正确的是 30 。 A) 数组的维下界不可以是负数
3
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
B) 模块通用声明处有Option Base 1,则模块中数组定义语句Dim A(0 To 5) 会与之冲突 C) 模块通用声明处有Option Base 1,模块中Dim A(0 To 5),则A数组第一维维下界为0 D) 模块通用声明处有Option Base 1,模块中Dim A(0 To 5),则A数组第一维维下界仍为1 答案:C
解析:以模块中Dim的定义为优先。
25.下面有关数组处理的叙述中,正确的是________。
A)在过程中使用ReDim语句可以改变动态数组的数据类型 B)在过程中,可以使用Dim、Private和Static语句来定义数组
C)用ReDim语句重新定义动态数组时,可以改变数组的大小,但不能改变数组的维数 D)不可以用Public语句在窗体模块的通用处说明一个全局数组 答案:D
25. 下列有关数组的叙述中,不正确的是(25)。
①在过程中使用ReDim语句定义的动态数组,其下标的上下界可以是变量 ②数组作为形式参数时,传递的是每一个数组元素的值
③在窗体模块的通用说明处可以使用Public说明一个全局数组
④数组定义语句中可以用负数或小数来指定某一维的维下界或维上界的值 A)②③ B)①③④ C)①②③④ D)③④ 答案:A
27. 下列有关控件数组的说法中,错误的是(27)。
A)控件数组由一组具有相同名称和相同类型的控件组成,不同类型的控件无法组成控件数组 B)控件数组中的所有控件不得具有各自不同的属性设置值 C)控件数组中的所有控件共享同一个事件过程
D)控件数组中每个元素的下标由控件的Index属性指定 答案:B
25.以下说法中,错误的是 25 。
A)使用缺省Preserve关键字的ReDim语句可以改变数组的维数和大小 B)ReDim语句只能出现在过程中
C)使用ReDim语句重新定义的动态数组,只能比原数组大 D)使用ReDim语句可以对动态数组的所有元素进行初始化 答案:C
4. 执行下面程序后,A(1,3)的值是___(4)___,A(2,2)的值是___(5)___,A(3,1)的值是___(6)___。 Option Explicit Private Sub Form_Click() Dim A(3, 3) As Integer, I As Integer Dim J As Integer, K As Integer, N As Integer For K = 1 To 5 If K <= 3 Then K 1 2 3 4 I 1 1 2 1 2 3 N 1 2 3 4 5 6 K-3+I,4-I I,K-I+1 1,1 1,2 2,1 1,3 2,2 3,1 A(1,1) 1 A(2,1) 3 A(3,1) 6 A(1,2) 2 A(2,2) 5 A(3,2) 8 4 7 9 A(1A(2A(3文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
For I = 1 To K N = N + 1 A(I, K - I + 1) = N Next I Else For I = 1 To 6 - K N = N + 1 A(K - 3 + I, 4 - I) = N Next I End If Next K For K = 1 To 3 For I = 1 To 3 Print A(K, I); Next I Print Next K End Sub 4 5 1 2 1 7 8 9 2,3 3,2 3,3 答案: 分析:
4. 执行下面程序后,A(1,3)的值是___(1)___,A(2,2)的值是___(5)___,A(3,1)的值是___(9)___。 Option Explicit Private Sub Form_Click() Dim A(3, 3) As Integer, I As Integer Dim J As Integer, K As Integer, N As Integer N = 9 For K = 5 To 1 Step -1 If K >= 3 Then For I = 1 To 6 - K A(K - 3 + I, I) = N N = N - 1 Next I Else For I = 1 To K A(K - I + 1, 3 - I + 1) = N N = N - 1 Next I 6 2 1 8 5 3 9 7 4 5