VB__过程练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
练习题
一、选择题
1.要想在过程调用后返回两个结果,下面过程定义语句中语法正确的是_______。
A.Sub swap(By Val m,By Val n) B.Sub swap(m, By Val n)
C.Sub swap(m, n) D.Sub swap(By Val m, n)
2.在过程调用中,参数的传递可以分为按值传递和_______两种方式。
A.按参数传递B.按数值传递C.按地址传递D.按位置传递
3.Sub过程与Function过程最根本的区别是_______。
A.Sub过程可以直接使用过程名调用,而Function过程不可以
B.Function过程可以有参数,而Sub过程不可以
C.两种过程参数传递方式不同
D.Sub过程的过程名不能返回值,而Function过程能通过过程名返回值
4.在参数传递过程中,使用关键字_______来修饰参数,可以使之按值传递。
A.ByVal B.ByRef C.Value D.reference
5.可以执行“工具”菜单中的_______命令来建立通用过程。
A.添加过程B.通用过程C.添加模块D.添加窗体6.假定已定义一个过程Public Sub Cir(a As Single, b As Single),则正确的调用语句是_______。A,2
A.Cir 3,8 B.Call Cir x, y
C.Call Cir 2*x, y D.Call Cir (3,8, y)
7.在窗体模块的通用声明中声明变量时,不能使用_______关键字。
A.Dim B.Public C.Private D.Static
8. 在窗体上添加一个名称为Command1的命令按钮,再添加两个名称分别为Label1、Label2的标签,然后编写如下程序代码:
Private x As Integer
Private Sub Command1_Click()
a = 6:
b = 4
Call sub1(a, b)
Label1.Caption = a
Label2.Caption = b
End Sub
Private Sub sub1(ByVal x As Integer, ByVal y As Integer)
a = x * x
b = y * y
End Sub
程序运行后单击命令按钮,则两个标签中显示的内容分别是_______。
A.36和4 B.6和4 C.36和8 D.6和8
9.以下叙述中错误的是_______。
A.不能在标准模块中定义Static型变量。
B.语句Dim a, b As Integer声明了两个整形变量
C.窗体级变量必须先声明后使用
D.在事件过程或通用过程内定义的变量是局部变量
10.设有如下通用过程:
Public Function fun(x As Integer)
Dim y As Integer
x = 30: y = 4
fun = x * y
End Function
在窗体上添加一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Static x As Integer
x = 20: y = 10
y = fun(x)
Print x; y
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是_______。
A.20 10 B.30 10 C.20 4 D.30 120
11.以下叙述中,不正确的是_______。
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 = x
x = t / y
y = t Mod y
End Sub
在窗体中添加一个命令按钮(名为Command1),编写如下事件过程:
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
a = 5:
b = 4
Call sfun(a, b)
MsgBox a & Chr(10) + Chr(10) & b
End Sub
打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为_______。
A.1和1 B. 1.25和1 C. 1.25和4 D.5和4
15. 使用Function语句定义一个函数过程,其返回值的类型为_______。
A.只能是符号常量
B.是除数组之外的简单数据类型
C.可在调用时由运行过程决定。
D.由函数定义时As子句声明
16. 为达到把a、b中的值交换后输出的目的,某人编程如下:
Private Sub Command1_Click()
a% = 10: b% = 20
Call swap(a, b)
Print a, b
End Sub
Private Sub swap(ByVal a As Integer, ByVal b As Integer)
c = a: a = b: b = c
End 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 -1
s = s & Mid(ch, k, 1)
Next k
ch = s
End Sub
Private Sub Command1_Click()
ch$ = "ABCDEF"
proc ch
Print ch
End Sub
A.ABCDEF B. A C.FEDCBA D. F
18.在窗体上绘制一个名为Command1的命令按钮和两个名为Label1、Label2的标签,然后编写如下程序:______
Private x As Integer
Private Sub proc(a As Integer, ByVal b As Integer)
x = a * a