编写如下程序: Private Sub Form_Click() Dim i As Integer, j As Integer Dim num As Integer Dim arr(3, 3) As Integer num = 1

admin2020-07-22  30

问题 编写如下程序:
Private Sub Form_Click()
   Dim i As Integer, j As Integer
   Dim num As Integer
   Dim arr(3, 3) As Integer
   num = 1
   For i = 1 To 3
      For j = 1 To 3
         arr(i, j) = num
         num = num + 1
      Next
   Next
   For i = 1 To 3
      For j = 1 To i
         Call change(arr, i)
      Next
   Next
   For i = 1 To 3
      For j = 1 To 3
         Print arr(i, j);
      Next
      Print
   Next
End Sub
Sub change(a() As Integer, i As Integer)
   m = UBound(a, 2)
   temp = a(i, m)
   For k = m - 1 To 1 Step -1
      a(i, k + 1) = a(i, k)
   Next
   a(i, 1) = temp
End Sub
程序运行后,单击窗体,输出结果为

选项 A、3  1  2  5  6  4  7  8  9
B、3  1  2  6  4  5  9  7  8
C、3  2  1  6  5  4  9  8  7
D、2  1  3  4  6  5  9  8  7

答案A

解析 利用For循环,对数组arr赋值。 arr(3, 3)=[0,0,0,0;0,1,4,7;0,2,5,8;0,3,6,9]。在过程chang中,UBound函数返回为指定的数组维可用的最大下标,这里返回arr的第二维的最大下界。在过程change中,首先 temp被赋值为数组arr的第i行的最后一列的值。过程change下面的语句就是利用For循环将前一列值赋值给后一列。最后将最后一列的值赋值给第一列。利用For i = 1 To 3 For j = 1 To i语句,i次调用 change(arr, i),当i=1时,调用change(arr, 1)一次,当i=2时,调用change(arr, 2)二次;当i=3时,调用change(arr, 3)三次。故得arr(3, 3)=[0,0,0,0;0,3,5,7;0,2,6,8;0,1,4,9],故A项正确。
转载请注明原文地址:https://kaotiyun.com/show/0yHp777K
0

随机试题
最新回复(0)