选择题
36.
设有以下两个过程:
Sub S1(a As Integer, b As Integer)
t=a
a=b
b=t
End Sub
Sub s2(ByVal a As Integer, ByVal b As Integer)
t=a
a=b
b=t
End Sub
下列说法中正确的是______。
A、
过程S1能实现两个变量值的交换,S2不能
B、
过程S2能实现两个变量值的交换,S1不能
C、
过程S1和S2都不能实现两个变量值的交换
D、
过程S1和S2都能实现两个变量值的交换
【正确答案】
A
【答案解析】
在VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用ByVal声明,说明此时参数为传值调用;若形参用ByRef声明,说明此时参数为传址调用,即形参的结果会传递给实参。本题中S1的过程为传址调用,所以S1中交换的两个形参会影响到实参,可以实现实参的交换。S2过程为传值调用,S2中交换的两个形参不会影响到实参,也就不能实现实参的交换。
提交答案
关闭