问题 填空题

下列程序的功能是:单击窗体时随机生成20个两位数依次赋值给一个由20个元素组成的数组,然后把数组反序存放,再输出。
Option Base 1
Private Sub Form Click()
Dim a(20)As Integer,i As Integer
Dim t As Integer,j As Integer
Randomize
For i=1 To 20
a=10+Int(90*Rnd)
Print a(i);
Next
Print
i=1: 【4】
Do While i<j
t=a(i): 【5】 a(j)=t
i=i+1: j=j-1
Loop
For i=1 To 20
Print a(i);
Next i
Print
End Sub

答案

参考答案:j=20 a(i)=a(j)

解析: 数组逆序存放其实就是把数组的第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,直到所有的元素都交换完毕。算法可描述如下:用变量i记下第一个元素的下标1,用变量j记下最后一个元素的下标20:交换a(i)和a(j);i加1指向后一个元素, j减1指向前一个元素:重复上述步骤,直到i≥j为止。【4】处应该填写j赋最后一个元素的下标,为"j=20"。【5】处是a(i)和a(j)交换的一条语句,应填“a(i)=a(j)”。

选择题
单项选择题