单选题
设有如下事件过程:
Private Sub Command1_Click()
Dim a
a=Array(12,3,8,5,10,3,5,9,2,4)
For k=1 To 9
Print fun(a(k-1),a(k));" ";
Next k
End Sub
Private Function fun(x,y)As Integer
DoWhile x>=y
x=x-y
Loop
fun=x
End Function
程序运行时的输出结果是______。
【正确答案】
B
【答案解析】 [解析] 数组默认下标为0,因此数组a中的元素a(0)=12,a(1)=3,a(2)=8,a(3)=5,a(4)=10,a(5)=3,a(6)=5,a(7)=9,a(8)=2,a(9)=4。
k=1时,fun(a(k-1),a(k))即fun(a(0),a(1)),即fun(12,3),过程中x=x-y=12-3=9-3=6-3=3-3=0,函数返回0;
k=2时,fun(a(k-1),a(k))即fun(a(1),a(2)),即fun(3,8),x>=y不成立,函数直接返回3;
k=3时,fun(a(k-1),a(k))即fun(a(2),a(3)),即fun(8,5),过程中x=x-y=8-5=3,函数返回3;
k=4时,fun(a(k-1),a(k))即fun(a(3),a(4)),即fun(5,10),x>=y不成立,函数直接返回5;
k=5时,fun(a(k-1),a(k))即fun(a(4),a(5)),即fun(10,3),过程中x=x-y=10-3=7-3=4-3=1,函数返回1;
k=6时,fun(a(k-1),a(k))即fun(a(5),a(6)),即fun(3,5),x>=y不成立,函数直接返回3;
k=7时,fun(a(k-1),a(k))即fun(a(6),a(7)),即fun(5,9),x>=y不成立,函数直接返回5;
k=8时,fun(a(k-1),a(k))即fun(a(7),a(8)),即fun(9,2),过程中x=x-y=9-2=7-2=5-2=3-2=1,函数返回1;
k=9时,fun(a(k-1),a(k))即fun(a(8),a(9)),即fun(2,4),x>=y不成立,函数直接返回2;
因此程序输出结果为0 3 3 5 1 3 5 1 2,B选项正确。
提交答案
关闭