为达到把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) 调用swap过程的语句错误,应改为Call swap a,b
B) 输出语句错误,应改为Print"a","b"
C) 过程的形式参数有错,应改为swap(ByRef a As Integer,ByRefb As Integer)
D) swap中3条赋值语句的顺序是错误的,应改为a=b:b=c:c=a
参考答案:C
解析: 过程是构成程序的一个模块,常用来完成一个相对独立的功能。Sub过程一般用于调用后只执行一组代码来完成相应操作,但不需返回任何值的情况。Sub过程的参数有两种传递方式:按值传递(ByVal)和按址传递(ByRef),默认为按值传递。调用过程有两种方式,一种是:过程名参数1,参数2,…;另一种是:Call过程名(参数1,参数2,…)。本题要求通过调用过程swap来交换a,b的值,故应使用按址传递(ByRef)方式传递参数。