1、完整wordVB 过程习题第六章 过程习题一、选择题1. 下列叙述中正确的是( c ). (A)在窗体的Form_Load事件中定义的变量是全局变量 (B)局部变量的作用域可以超出所定义的过程 (C)在某个Sub过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但其作用域只局限于该过程。 (D)在调用过程时,所有局部变量被系统初始化为0 2. 下列四个叙述中,错误的是( c ). (A)过程内用Dim语句定义的变量,它的作用域是此过程 (B)过程内用Static语句定义的变量,它的生存期与整个过程的运行期相同 (C)过程内用Dim语句定义的变量,它的生存期与整个过程的运行期相同 (D
2、)若在模块的“通用声明”中写上语句:Option Explicit,则该模块的所有变量必须先说明后引用3. 在过程定义中用( c )表示形参的传值。 (A)Var (B)ByDef (C)ByVal (D)Value4. 若已编写了一个Sort子过程,在该工程中有多个窗体,为了方便地调用Sort子过程,应该将该过程放在( b )中。(A)窗体模块 (B)标准模块 (C)类模块 (D)工程5. 在过程中定义的变量,若希望在离开该过程后,还能保存过程中局部变量的值,则应使用( d )关键字在过程中定义局部变量。 (A)Dim (B)Private (C)Public (D)Static6. 下面子
3、过程语句说明合法的是( 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)过程的定义不可以嵌套,但过
4、程的调用可以嵌套(C)过程的定义和调用均不可以嵌套(D)过程的定义和调用均可以嵌套9. 以下叙述中错误的是( c )。 (A)一个工程中只能有一个Sub Main过程(B)窗体的Show方法的作用是将指定的窗体装入内存并显示该窗体(C)窗体的Hide方法和Unload方法的作用完全相同(D)若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体10。 以下叙述中错误的是( d ).(A)如果过程被定义为Static类型,则该过程中的局部变量都是Static类型(B)Sub过程中不能嵌套定义Sub过程(C)Sub过程中可以嵌套调用Sub过程(D)事件过程中可以像通用过程一样由用户定义过程名1
5、1. 定义带可变参数的过程,使用的关键字是( c )。 (A)Optional (B)Option (C)ParamArray (D)Private12。 定义带可选参数的过程,使用的关键字是( a ).(A)Optional (B)Option (C)ParamArray (D)Private二、填空题1. 在过程定义的首部出现的变量名叫做( 形式参数 )参数,而在调用过程中传送给过程的( 常量 )、( 变量 )、( 数组元素 )或( 表达式 )叫做( 实在参数 )参数。2。 定义和调用函数或过程时参数传递的两种方法是(按值传递 )和(按地址传递 )。3。 在窗体的通用段用Dim语句定义的变
6、量是(窗体级)级变量,它只能在(本窗体)中使用。4. 全局级过程在定义时可以默认,也可以使用关键字( public )进行显示声明;窗体/模块级的过程声明时要用关键字( private )。5。 用ParamArray关键字声明可变参数时,被声明的参数只能是(变体类型数组 )。6。 在带可选参数的过程中,使用(isming )函数来测试可选参数是否被选。三、分析运行结果1. 阅读程序Function f(a As Integer) Static cb = 0: b = b + 1 c = c + 1: f = a + b + cEnd FunctionPrivate Sub command1_
7、click() Dim a As Integer a = 2 For i = 1 To 3 Print f(a); Next iEnd Sub程序运行后,单击命令按钮,输出结果为:2。 阅读程序Sub s(x As Single, y As Single) t = x x = t / y y = t Mod yEnd SubPrivate Sub command1_click() Dim a As Single, b As Single a = 5 b = 4 s a, b Print a, bEnd Sub程序运行后,单击命令按钮,输出结果为:3。 阅读程序Function M(x%, y%
8、) As Integer M = IIf(x y, x, y)End FunctionPrivate Sub command1_click() Dim a As Integer, b As Integer a = 1 b = 2 Print M(a, b)End Sub程序运行后,单击命令按钮,输出结果为:4。 阅读程序Sub Inc(a As Integer) Static x As Integer x = x + a Print x;End SubPrivate Sub command1_click() Inc 2 Inc 3 Inc 4End Sub程序运行后,单击命令按钮,输出结果为:
9、5。 阅读程序:Sub p(b() As Integer) For i = 1 To 4 b(i) = 2 * i Next iEnd SubPrivate 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 iEnd Sub程序运行后,单击命令按钮,输出结果为:6. 阅读程序:Function fun(ByVal num As Long) As Long Dim k As Long k = 1 num =
10、Abs(num) Do While num k = k * (num Mod 10) num = num 10 Loop fun = kEnd FunctionPrivate Sub command1_click() Dim n As Long, r As Long n = Val(InputBox(”请输入一个数:”)) r = fun(n) Print rEnd Sub程序运行后,单击命令按钮,输入1234,输出结果为:7。 阅读程序:Function func(a%, b%) As Integer Static m As Integer, i As Integer m = 0 i = 2
11、 i = i + m + 1 m = i + a + b func = mEnd FunctionPrivate Sub command1_click() Dim k%, m%, p% k = 4 m = 1 p = func(k, m) Print p; p = func(k, m) Print pEnd Sub程序运行后,单击命令按钮,输出结果为:8. 阅读程序:Dim a%, b%, cPublic Sub p1(x, y) Dim c x = 2 x: y = y + 2: c = x + yEnd SubPublic Sub p2(x%, ByVal y%) Dim c% x = 2
12、 * x: y = y + 2: c = x + yEnd SubPrivate Sub command1_click() a = 2: b = 4: c = 6 Call p1(a, b) Print a, b, c Call p2(a, b) Print a, b, cEnd Sub程序运行后,单击命令按钮,输出结果为:9。 阅读程序:Private Sub command1_click() Dim m%, i, x(10) For i = 0 To 4 x(i) = i + 1 Next i For i = 1 To 2 Call proc(x()) Next i For i = 0 T
13、o 4 Print x(i) Next iEnd SubPublic Sub proc(a() Static i Do a(i) = a(i) + a(i + 1) i = i + 1 Loop While i y, x, y)End FunctionPrivate Sub command1_click() Dim a As Integer, b As Integer a = 100 b = 200 Print M(a, b)End Sub程序运行后,单击命令按钮,输出结果为:17。 阅读程序:Private i As IntegerPrivate Sub abc() a = Chr(Asc(
14、”A”) + i) b = Chr(Asc(Z”) - x) Print a & b; ”;;End SubPrivate Sub command1_click() Dim x As Integer For i = 0 To 4 x = x + 1 abc Next iEnd Sub程序运行后,单击命令按钮,输出结果为:四、简答题1.子过程与函数过程的异同点是什么?2.什么是形参?什么事实参?3.调用子过程或函数过程时,实参与形参的对应关系如何?应注意什么问题?4.值传递与地址传递的选择与其特点是什么?5.在VB中,形参若是数组,不要说明数组元素的个数,即以数组名和圆括号表示,在过程体内如何表
15、示数组的上下界?6.在Form1窗体通用声明部分声明的变量,可否在Form2窗体中的过程被访问?7.要使变量在某事件过程中保值,有哪几种变量声明的方法?8.指出下面过程语句说明中的错误:(1)Sub f1(n%) as integer (2)Function f1(f1)(3)Sub f1(ByVal n%() (4)Sub f1(x(i)as integer)9.已知有如下求两个平方数和的fsum子过程:Public Sub fsum(sum, byval m%, byval n) Sum=m*m+nnEnd Sub在事件过程中有如下变量声明:Dim a,b,c!a=10b=20则指出如下过程调用语句错误所在:(1)fsum 3,4,5 (2)fsum c, a, b (5)call fsum c, a, b(3)fsum a+b, a, b (4)call fsum(sqr(c), sqr(a), sqr(b))
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1