(D)在调用过程时,所有局部变量被系统初始化为0 2. 下列四个叙述中,错误的是(C )。
(A)过程内用Dim语句定义的变量,它的作用域是此过程
(B)过程内用Static语句定义的变量,它的生存期与整个过程的运行期相同 (C)过程内用Dim语句定义的变量,它的生存期与整个过程的运行期相同
(D)若在模块的“通用声明”中写上语句:Option Explicit,则该模块的所有变量必须先说明后引用 3. 在过程定义中用(C )表示形参的传值。
(A)Var (B)ByDef (C)ByVal (D)Value
4. 若已编写了一个Sort子过程,在该工程中有多个窗体,为了方便地调用Sort子过程,应该将该过程放在
( B )中。
(A)窗体模块 (B)标准模块 (C)类模块 (D)工程
5. 在过程中定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用( D )关
键字在过程中定义局部变量。
(A)Dim (B)Private (C)Public (D)Static 6. 下面子过程语句说明合法的是( D )。
(A)Sub f1(Byval n%()) (B)Sub f1(n%) as integer
(C)Function f1%(f1%) (D)Function f1(Byval n%)
7. 要想从子过程调用后返回两个结果,下面子过程语句说明合法的是( C )。 (A)Sub f1(Byval n%, Byval m%) (B)Sub f1(n%, Byval m%)
(C)Sub f1(n%, m%) (D)Sub f1(Byval n%, m%) 8. 在VB应用程序中,以下正确的描述是( B )。 (A)过程的定义可以嵌套,但过程的调用不能嵌套
(B)过程的定义不可以嵌套,但过程的调用可以嵌套 (C)过程的定义和调用均不可以嵌套 (D)过程的定义和调用均可以嵌套 9. 以下叙述中错误的是( C )。
(A)一个工程中只能有一个Sub Main过程
(B)窗体的Show方法的作用是将指定的窗体装入内存并显示该窗体 (C)窗体的Hide方法和Unload方法的作用完全相同
(D)若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体
36
10. 以下叙述中错误的是( D )。
(A)如果过程被定义为Static类型,则该过程中的局部变量都是Static类型 (B)Sub过程中不能嵌套定义Sub过程 (C)Sub过程中可以嵌套调用Sub过程
(D)事件过程中可以像通用过程一样由用户定义过程名 11. 定义带可变参数的过程,使用的关键字是( C )。
(A)Optional (B)Option (C)ParamArray (D)Private 12. 定义带可选参数的过程,使用的关键字是( A )。
(A)Optional (B)Option (C)ParamArray (D)Private 二、填空题
1. 在过程定义的首部出现的变量名叫做( 形式 )参数,而在调用过程中传送给过程的(常数、变
量、数组元素、表达式)叫做( 实在 )参数。
2. 定义和调用函数或过程时参数传递的两种方法是(按值传递,按地址传递)。
3. 在窗体的通用段用Dim语句定义的变量是(窗体)级变量,它只能在(本窗体)中使用。
4. 全局级过程在定义时可以默认,也可以使用关键字( Public )进行显示声明;窗体/模块级的过程声明时
要用关键字( Private)。
5. 用ParamArray关键字声明可变参数时,被声明的参数只能是(变体类型数组)。 6. 在带可选参数的过程中,使用(IsMissing )函数来测试可选参数是否被选。
三、分析运行结果
1. 阅读程序
Function f(a As Integer) Static c
b = 0: b = b + 1 c = c + 1: f = a + b + c End Function
Private Sub command1_click()
37
Dim a As Integer a = 2 For i = 1 To 3 Print f(a); Next i
End Sub程序运行后,单击命令按钮,输出结果为:4 5 6 2. 阅读程序
Sub s(x As Single, y As Single) t = x x = t / y y = t Mod y End Sub
Private Sub command1_click() Dim a As Single, b As Single a = 5 b = 4 s a, b Print a, b End Sub
程序运行后,单击命令按钮,输出结果为:1.25 1 3. 阅读程序
Function M(x%, y%) As Integer M = IIf(x > y, x, y) End Function
Private Sub command1_click() Dim a As Integer, b As Integer a = 1 b = 2 Print M(a, b)
38
End Sub
程序运行后,单击命令按钮,输出结果为:2 4. 阅读程序 Sub Inc(a As Integer) Static x As Integer x = x + a Print x; End Sub
Private Sub command1_click() Inc 2 Inc 3 Inc 4 End Sub
程序运行后,单击命令按钮,输出结果为:2 5 9 5. 阅读程序: Sub p(b() As Integer) For i = 1 To 4 b(i) = 2 * i Next i End Sub
Private Sub command1_click() Dim a(1 To 4) As Integer a(1) = 5 a(2) = 6 a(3) = 7 a(4) = 8 p a() For i = 1 To 4 Print a(i); Next i
39
End Sub程序运行后,单击命令按钮,输出结果为:2 4 6 8 6. 阅读程序:
Function fun(ByVal num As Long) As Long Dim k As Long k = 1
num = Abs(num) Do While num k = k * (num Mod 10) num = num \\ 10 Loop fun = k End Function
Private Sub command1_click() Dim n As Long, r As Long
n = Val(InputBox(\请输入一个数:\ r = fun(n) Print r End Sub
程序运行后,单击命令按钮,输入1234,输出结果为:24 7. 阅读程序:
Function func(a%, b%) As Integer Static m As Integer, i As Integer m = 0 i = 2 i = i + m + 1 m = i + a + b func = m End Function
Private Sub command1_click() Dim k%, m%, p%
40