为达到把a、b中的值交换后输出的目的,某人编程如下: Private Sub Commandl Click() a%=10:b%=20 Call swap(a,b) Print a,b End Su

admin2012-09-07  22

问题 为达到把a、b中的值交换后输出的目的,某人编程如下:
    Private Sub Commandl 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

解析 本题考查参数传递。Ⅷ过程调用中,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此参数为传值调用;若用ByRef声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递(即形参的结果会传递给实参)。本题中为了实现数据的交换,要求进行传址调用,因此形参前面不应用BvVal声明。
转载请注明原文地址:https://kaotiyun.com/show/NJhp777K
0

最新回复(0)