当前位置:首页 > 江苏省计算机二级vb分章节解析
第5章 数组
一、本章知识点
1、数组与数组元素
数组是一组按一定顺序排列的数据集合形式如下: 数组名(下标1[,下标2,?]) 2、数组的维数
一个下标的数组称为一维数组,两个下标的数组称为二维数组,?? 3、声明语句
Dim|Static|Private|Public数组名([下界1 To] 上界1[,[下界2 To] 上界2 ?])[As数据类型] 4、数组的类型
与变量的类型相同,不能在窗体的通用声明处声明全局数组。 5、与数组相关的函数
LBound函数、UBound函数、Array函数 6、动态数组的定义
ReDim [Preserve] 变量(下标) As 数据类型 7、数组刷新语句(Erase)
功能是清除静态数组的内容,或者释放动态数组占用的存储空间 8、数组元素的赋值
(1)利用赋值语句为数组元素赋值 (2)利用循环语句为数组元素赋值
(3)利用InputBox函数为数组元素赋值 (4)利用Array函数为数组元素赋值 9、数组元素的输出
通常采用循环方式输出 10、控件数组
其数组元素由一组相同类型的控件组成 (1)件数组具有相同的控件名
(2)控件数组中的控件具有相同的属性设置 (3)所有控件共享相同的事件过程
二、试题与解析
选择题
1.下面有关数组的说法中,错误的是________。
A. 数组必须先定义后使用 B. 数组形参可以是定长字符串类型 C. Erase语句的作用是对已定义数组的值重新初始化
D. 定义数组时,数组维界值可以不是整数 【答案】C
【解析】Erase语句功能是清除静态数组的内容,或释放动态数组占用的存储空间。定义数组时,数组维阶若不是整数,自动对其四舍五入。
2.在窗体模块代码窗口的通用声明处,可以使用________语句说明数组。 ①Public A(10) As Integer ②Dim A(IO) As Integer ③Private A(IO) As Integer ④Static A(10) As Integer A.①② B.②③ C.③④ D.①④ 【答案】B
【解析】定义数组时,在过程中可用Dim和Static定义局部数组和静态数组,在模块通用声明处可用Private和Dim定义模块级数组,Public只能在标准模块的声明处定义全局数组。 3.以下有关ReDim语句用法的说明中,错误的是__________。 A.ReDim可用于定义一个新数组
B.ReDim语句既可以在过程中使用,也可以在模块的通用声明处使用 C.无Perserve关键字的ReDim语句,可重新定义动态数组的维数 D.在ReDim语句中,可使用变量说明动态数组的大小 【答案】B
填空题
1.执行下面程序,单击按钮Command1,A(1,1)的值是_____1____,A(1,4)的值是____2____,A(4,1)的值是____3_____,A(4,4)的值是_____4______。
Option Base 1
Private Sub Command1_Click()
Dim A() As Integer, I As Integer, J As Integer Dim K As Integer, n As Integer n=4
ReDim A(n, n) I=1:J=n: A(I, J)=l For K=2 To n*n If I+1>n Then I=n-J+2: J=1
ElseIf I+1<=n And J+1>n Then J=J-I:I=1 E1se
I=I+1:J=J+1 End If A(I, J)=K Next K
For I=1 To n For J=l To n Print A(I, J); Next J Print Next I
End Sub 【答案】(1)7(2)1(3)16(4)10
第6章 过程
一、本章知识点
1、建立Sub过程
格式如下:
[Static][Private][Public] Sub过程名[(参数表)] ?
[Exit Sub]
?
End Sub 2、调用Sub过程
(1)用Call语句调用Sub过程 Call 过程名[(实际参数)]
(2)把过程名作为一个语句来使用 过程名 [实参1[,实参2, ?]] 3、建立Function过程
[Static][Private][Public]Function函数名[(参数表)][As类型] ?
[函数名=表达式] [Exit Function] ? End Function 4、调用Function过程
函数名([实参表]) 5、形参与实参
形参是在过程的声明中出现的变量,实参则是在调用过程时传递给过程的常量、变量、表达式和数组。 6、按值传递
形参表的参数前使用关键词ByVal,称为按值传递 7、按地址传递
形参表的参数前使用关键词ByRef(通常省略) 8、数组参数的传递
传递方式只能是按地址传递 9、递归的概念
递归是一种过程自身调用自身的调用机制,递归分为两种类型:一种是直接递归,即在过程中调用本身;另一种是间接递归,即过程间接地调用自身。 10、局部变量
该变量只能在本窗体(或本模块)中有效,在其他窗体或模块中不能引用该变量。
11、模块级变量
在窗体模块的通用声明段中声明的变量 12、全局变量
全局变量可以被应用程序中的任何一个窗体和模块直接访问 13、同名变量
在一个窗体中可以包括许多过程,在不同过程中定义的局部变量可以同名 14、静态变量
退出过程时,其局部变量的值被保留,当再次调用该过程时,其值还能使用的变量为静态变量
二、试题与解析
选择题
1.下面定义Sub子过程的各个语句中,正确的语句是________。 ① Private Sub Sub1(A( ) As String) ② Private Sub Sub1(A(1 To 10 ) As String*8) ③ Private Sub Sub1(S As String) ④ Private Sub Sub1(S As String*8)
A.①②③④ B.①②③ C.①③④ D.①③ 【答案】D
【解析】形参可以是:(1)除定长字符串之外的合法变量名(数组可以是定长的字符串);(2)后面跟有左、右括号的数组名。此题中的②数组A不能有维数及上下限说明,④为定长字符串。
2.程序中有两个过程Private Sub Fun1(S As String)和Private Sub Fun2(a() As String* 6),在调用过程中用Dim St(6) As String*6定义了一个字符串数组。下面调用语句中正确的是________。
①Call Fun1(St(3)) ②Call Fun2(St) ③Call Fun1(St) ④Call Fun2(st(6)) A.①② B.①③ C.②③ D.②④ 【答案】A
【解析】在函数Fun1中形参为字符型变量,调用该函数时实参应为字符型变量或数组的某个元素,Fun2中形参为数组,调用该函数时实参也应为数组。③在调用Fun1时实参为数组, ④在调用Fun2时实参为数组的下标为6的元素。
3.下面关于过程参数的说法,错误的是___________。 A.过程的形参不可以是定长字符串类型的变量
B.形参是定长字符串型的数组,则对应的实参必须是定长字符串型数组,且长度相同 C.若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合 D.按值传递参数,形参和实参的类型可以不同,只要相容即可 【答案】B
4.以下有关事件过程的说法中,错误的是___________。 A.标准模块中不能包含事件过程
B.事件过程都是无参(没有形式参数)的过程
共分享92篇相关文档