当前位置:文档之家› VB 过程练习题

VB 过程练习题

练习题一、选择题1.要想在过程调用后返回两个结果,下面过程定义语句中语法正确的是_______。

A.Sub swap(By V al m,By V al n) B.Sub swap(m, By V al n)C.Sub swap(m, n) D.Sub swap(By V al m, n)2.在过程调用中,参数的传递可以分为按值传递和_______两种方式。

A.按参数传递B.按数值传递C.按地址传递D.按位置传递3.Sub过程与Function过程最根本的区别是_______。

A.Sub过程可以直接使用过程名调用,而Function过程不可以B.Function过程可以有参数,而Sub过程不可以C.两种过程参数传递方式不同D.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值4.在参数传递过程中,使用关键字_______来修饰参数,可以使之按值传递。

A.ByV al B.ByRef C.V alue D.reference5.可以执行“工具”菜单中的_______命令来建立通用过程。

A.添加过程B.通用过程C.添加模块D.添加窗体6.假定已定义一个过程Public Sub Cir(a As Single, b As Single),则正确的调用语句是_______。

A,2A.Cir 3,8 B.Call Cir x, yC.Call Cir 2*x, y D.Call Cir (3,8, y)7.在窗体模块的通用声明中声明变量时,不能使用_______关键字。

A.Dim B.Public C.Private D.Static8. 在窗体上添加一个名称为Command1的命令按钮,再添加两个名称分别为Label1、Label2的标签,然后编写如下程序代码:Private x As IntegerPrivate Sub Command1_Click()a = 6:b = 4Call sub1(a, b)Label1.Caption = aLabel2.Caption = bEnd SubPrivate Sub sub1(ByV al x As Integer, ByV al y As Integer)a = x * xb = y * yEnd Sub程序运行后单击命令按钮,则两个标签中显示的内容分别是_______。

A.36和4 B.6和4 C.36和8 D.6和89.以下叙述中错误的是_______。

A.不能在标准模块中定义Static型变量。

B.语句Dim a, b As Integer声明了两个整形变量C.窗体级变量必须先声明后使用D.在事件过程或通用过程内定义的变量是局部变量10.设有如下通用过程:Public Function fun(x As Integer)Dim y As Integerx = 30: y = 4fun = x * yEnd Function在窗体上添加一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Static x As Integerx = 20: y = 10y = fun(x)Print x; yEnd Sub程序运行后,如果单击命令按钮,则在窗体上显示的内容是_______。

A.20 10 B.30 10 C.20 4 D.30 12011.以下叙述中,不正确的是_______。

A.过程中的形式参数是局部变量。

B.不同的过程中可以使用相同名字的局部变量。

C.在一个过程内定义的变量只在本过程范围内有效。

D.在一个过程内的局部变量与全局变量同名时,起作用的是全局变量。

12.以下关于过程的叙述中,错误的是_______。

A.函数过程的返回值可以有多个。

B.事件过程是由某个事件触发而执行的过程。

C.不能在事件过程中定义通用过程。

D.可以在事件过程中调用过程。

13.以下关于过程参数的叙述中,错误的是_______。

A.按值传递参数,形参和实参的类型可以不同,只要相容即可。

B.若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合。

C.形参的数据类型如果是String,它可以是定长的,但在调用时对应的实参只能是定长的。

D.在过程被调用之前,形参未被分配内存,只是说明形参的类型和在过程中的作用。

14.假设有如下过程:Public Sub sfun(x As Single, y As Single)t = xx = t / yy = t Mod yEnd Sub在窗体中添加一个命令按钮(名为Command1),编写如下事件过程:Private Sub Command1_Click()Dim a As SingleDim b As Singlea = 5:b = 4Call sfun(a, b)MsgBox a & Chr(10) + Chr(10) & bEnd Sub打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为_______。

A.1和1 B. 1.25和1 C. 1.25和4 D.5和415. 使用Function语句定义一个函数过程,其返回值的类型为_______。

A.只能是符号常量B.是除数组之外的简单数据类型C.可在调用时由运行过程决定。

D.由函数定义时As子句声明16. 为达到把a、b中的值交换后输出的目的,某人编程如下:Private Sub Command1_Click()a% = 10: b% = 20Call swap(a, b)Print a, bEnd SubPrivate Sub swap(ByV al a As Integer, ByV al b As Integer)c = a: a = b: b = cEnd Sub在运行时发现输出结果错了,需要修改。

下面列出的错误原因和修改方案中正确的是_________。

A.输出语句错误,应改为:“Print "a", "b"”B.调用swap过程的语句错误,应改为“Call swap a,b”C.过程的形式参数有错,应改为:“swap(ByRef a As Integer,ByRef b As Integer)”D.swap中3条赋值语句的顺序是错误的,应改为“a=b:b=c:c=a”17.下面程序的输出结果是_______:Private Sub proc(ch As String)s = " "For k = Len(ch) To 1 Step -1s = s & Mid(ch, k, 1)Next kch = sEnd SubPrivate Sub Command1_Click()ch$ = "ABCDEF"proc chPrint chEnd SubA.ABCDEF B.A C.FEDCBA D. F18.在窗体上绘制一个名为Command1的命令按钮和两个名为Label1、Label2的标签,然后编写如下程序:______Private x As IntegerPrivate Sub proc(a As Integer, ByV al b As Integer)x = a * ay = b + bEnd SubPrivate Sub Command1_Click()x = 5: y = 3Call proc(x, y)Label1.Caption = xLabel2.Caption = yEnd SubA.25和3 B.5和3 C.25和6 D.5和619. 有如下函数:Function fun(a As Integer, n As Integer) As IntegerDim m As IntegerWhile a >= na = a - nm = m + 1Wendfun = mEnd Function该函数的返回值是________。

A.a加b的和B.a减n的差C.a乘以n的乘积D.a除以n的商(不含小数部分)20.以下是一个能返回数组a中最大数的函数过程代码:Function maxval(a() As Integer) As IntegerDim max%max = 1For i = 2 To 10If a(i) > a(max) Then max = kNext imaxval = maxEnd Function程序运行时,发现函数过程的返回值是错的需要修改,下面的修改方案中正确的是______。

A.语句“max = 1”应改为“max = a(1)”B.语句“For i = 2 To 10”应改为“For i = 1 To 10”C.if语句“max = k”应改为“max = a(k)”D.语句“maxval = max ”应改为“maxval = a(max)”二、判断题1.Sub过程中不能嵌套定义Sub过程。

( )2.事件过程可以像通用过程一样同用户定义过程名。

( )3.函数过程形参的类型与函数返回值的类型没有关系。

()4.在函数过程中,过程的返回值可以有多个。

()5.用数组作为过程的参数时,既能以传值方式传递,也能以传地址方式传递。

()6.形式参数是数组时,不能进行维数说明,只能以一对空括号表示,且括号不能省略。

()7.形式参数只在所在过程中有效,因此属于局部变量。

()8.在不同的模块中可以声明定义相同名字的模块级变量,它们代表不同的对象,而且作用域范围不同,因此互不干扰。

()9.过程名前加Static,表示该过程内的局部变量都是静态变量。

()10.事件过程有无参数,由VB所提供的具体事件本身所决定,用户也可以添加。

()11.过程中引用的变量,总是同名变量中作用范围最小的那一个。

()12.Sub子过程的过程名不能和同一级别的变量重名。

()13.如果形参的数据类型是String,它只能是定长的,但在调用时对应的实参可以是定长的。

()14.函数只能出现在表达式中,其功能是求得函数的返回值。

()15.按值传递参数,形参和实参的类型可以不同,只要相容即可。

()16.若形参是按地址传递的参数,形参和实参不能以按值传递方式进行形实结合。

()17.当实参是常量、表达式形式,则不论其对应形参前定义成什么方式,系统都强制按值传递参数。

( )18.在标准模块中定义的全局变量,在本应用程序的任何一个过程中都可直接用它的变量名来访问。

()19.当访问其他窗体模块中定义的全局变量时,用定义它的窗体模块名作为全局变量的前缀或可以直接用它的变量名来访问它,都能正确地引用。

()20.窗体中凡被声明为Private的变量只能在某个指定的过程中使用。

相关主题