编写如下程序代码: Private Sub Command1_Click() Const n = 5 Dim arrx(n) As Integer For i = 1 To 5 arrx(i) = i * i Next

admin2019-03-08  23

问题 编写如下程序代码:
Private Sub Command1_Click()
   Const n = 5
   Dim arrx(n) As Integer
   For i = 1 To 5
      arrx(i) = i * i
   Next i
   Call swap(arrx(), n)
   For i = 1 To n
      Print arrx(i);
   Next
End Sub
Public Sub swap(a() As Integer, k As Integer)
   For i = 1 To k / 2
      t = a(i)
      a(i) = a(k - i + 1)
      a(k - i + 1) = t
   Next
End Sub
程序运行后,单击命令按钮Command1,输出结果为(    )。

选项 A、1   4   9   4   1
B、4   1   9   25   16
C、1   4   9   16   25
D、25   16   9   4   1

答案D

解析 Visual Basic允许把数组作为实参传送到过程中,当用数组作为过程的参数时,使用的是"传地址"方式。本题中首先在Command1_Click过程中定义一个数组,并通过For循环给数组中的元素赋值,arrx(1)=1;arrx(2)=4;arrx(3)=9;arrx(4)=16;arrx(5)=25;在swap过程中,形参是数组,通过For循环将数组首尾元素交换。当i=1时,t=a(1)=1,a(1)=a(5)=25,a(5)=t=1,a(1)与a(5)交换成功;当i=2时,t=a(2)=4,a(2)=a(4)=16;a(4)=t=4,a(2)与a(4)交换成功。循环执行2次结束,由于是按地址传递,主调过程Command1_Click中数组元素的值即发生了交换,数组元素输出结果为:25 16 9 4 1。故D选项正确。
转载请注明原文地址:https://kaotiyun.com/show/tYFp777K
0

最新回复(0)