选择题
假定有如下两个过程:
Sub S1(ByVal x As Integer,ByVal Y As Integer)
Dim t As Integer
t=x
x=y
y=t
End Sub
Sub S2(x As Integer,y As Integer)
Dim t As Integer
t=x:x=y:y=t
End Sub
下列说法正确的是______。
A、
用过程S1可以实现交换两个变量的值的操作,S2不可以实现
B、
用过程S2可以实现交换两个变量的值的操作,S1不可以实现
C、
用过程S1和S2都可以实现交换两个变量的值的操作
D、
用过程S1和S2都不可以实现交换两个变量的值的操作
【正确答案】
B
【答案解析】
过程S1参数声明为按值传递(ByVal),过程调用时被调用过程内部对形参的操作引起的形参值的变化不会反馈、影响实参的值,因此,S1不可以实现交换两个变量的值的操作。过程S2缺省参数传递方式的声明,默认为按地址传递(ByRef),过程调用时被调用过程内部对形参的操作引起的形参值的变化会影响实参的值,因此,S2可以实现交换两个变量的值的操作。
提交答案
关闭