设有如下事件过程: 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(

admin2015-08-28  28

问题 设有如下事件过程:
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
  Do While x>=y
    x=x-y
  Loop
  fun=x
End Function
程序运行时的输出结果是(  )。

选项 A、4 0 1 0 3 0 0 4 0
B、0 3 3 5 1 3 5 1 2
C、9 -5 3 -5 7 -2 -4 7-2
D、9 3 3 5 7 3 5 7 2

答案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 。
转载请注明原文地址:https://jikaoti.com/ti/1XJ0FFFM
0

最新回复(0)