问题 单项选择题

下面程序运行后,单击命令按钮,输出的结果是( )。
Private Sub Command1_Click()
Dim a%(1 To 4),b%(2 To 6),i%,str1#, str2#
For i=1 To 4
a(i)=1
Next
For i=2 To 6
b(i)=i
Next
str1=YAG(A)
str2=YAG(B)
Print "str1="; str1; "str2=": str2
End Sub
Function YAG(a() As Integer)
Dim t#,i%
t=1
For i=LBound(A) To UBound(A)
t=t*a(i)
Next
YAG=t
End Function

A) str1=24 str2=720
B) str1=12 str2=360
C) str1=24
str2=180
D) str1=36 str2=720

答案

参考答案:A

解析: 程序首先调用循环语句为数组a、b赋值,其中a(i)=i,b(i)=i,且数组a的上下界分别为1和4,数组b的上下界分别为2和6,接着将数组a作为参数调用YAG过程。在YAG过程中,定义了两个变量t及i,i作为循环语句For的变量,它的初始值和终值分别为数组的上下界,循环体为t=t*a(i),即将a(i)的值乘以t,然后再赋给t,当循环结束后,程序返回的就是数组a中的备元素的积。同理程序将数组b作为参数传递给YAG过程后返回数组b中备元素的积。

单项选择题
单项选择题