窗体上有一个名为Command1的命令按钮,并有下面的程序:
Private Sub Command1_Click()
Dim arr(5) As Integer
For k=1 To 5
arr(k)=k
Next k
Prog arr()
For k=1 To 5
Print arr(k)
Next k
End Sub
Sub prog(a() as Integer)
n=Ubound(a)
For i=n To 2 Step-1
For j=1 To n-1
if a(j)<a(j+1) Then
t=a(j):a(j)=a(j+1):a(j+1)=t
End If
Next j
Next i
End Sub
程序运行时,单击命令按钮后显示的是
A) 1 2 3 4 5
B) 5 4 3 2 1
C) 0 1 2 3 4
D) 4 3 2 1 0
参考答案:B
解析: 本题中的prog过程的作用是采用冒泡法对a数组中的所有数据进行由大到小的顺序排序。在事件过程Command1_Click中调用过程prog时将数组arr作为实参传递给形参数组a,形参是数组时,只能采用按地址传递方式传递参数,这样数组arr和数组a共享同一段地址空间,当在prog中对数组a完成排序之后,数组arr其实也就排好序了,所以在事件过程(Command1_Click中输出时,输出的是经过冒泡法由大到小方式排序的arr数组中的数据,所以输出的结果为:5 4 3 2 1。