问题
单项选择题
有下列程序,程序运行后单击命令按钮,则输出的结果为( )。 Private Sub Command1_Click() Dim a%(1 To 4), b%(3 To 6), i%, s1#, s2# For i= 1 To 4a(i) = i Next i For i=3 To 6 b(i)=i Next i s1=Factorial (a) s2=Factorial (b) Print "s1="; s1; "s2="; s2 End Sub Function Factorial(a() As Integer) Dim t#, i% t=1 For i=LBound(a) To UBound(a) t=t*a(i) Next i Factorial=t End Function
A.s1=360 s2=24
B.s1=24 s2=360
C.s1=24 s2=24
D.s1=360 s2=360
答案
参考答案:B
解析: Factorial函数的作用是计算参数数组a元素的累计乘积,即将数组a的元素从下界到上界循环相乘。在主调过程中,Factorial (a)、Factorial(b)分别传递数组a和b,计算结果分别赋给s1和s2。 在定义子过程的参数时,如果在参数前加上ByVal,表示是“传值”参数,主调函数中参数的值不被改变,否则表示是“传地址”参数,参数值会被调用的子过程改变。