问题 填空题

在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
Option Base 1
Private Sub Command1_Click()
Dim a(10) As Integer
For i=1 To 10
a(i)=i
Next i
Call swap( (10) )
For i=1 To 10
Print a(i);
Next
End Sub
Sub swap(b() As Integer)
n= (11)
For i=1 To n/2
t=b(i):b(i)=b(n):b(n)=t
(12)
Next
End Sub
上述程序的功能是:通过调用过程swap调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,……。请填空。

答案

参考答案:(10)a (11)UBound(b) (12)n=n-1

解析: 程序先用一个For循环为数组赋值,再调用swap过程交换数组中的值,最后再用一个For循环输出交换后的数组a中的值。第[10]空是填写调用swap过程的参数,根据swap过程的定义可知,此处应填一个数组名,所以第[10]空填a。第[11]空是为变量n赋一个值,从循环体来看,循环第一次时是做b(1)与b(n)的数值交换,所以n应该是数组b的最大下标,所以第[11]空填写UBound(b)。开始时n=10,执行了b(1)和b(10)的交换;第二次交换时i=2,n值应该为9;第三次交换时i=3,n值应该为8,以此类推,也就是说,随着循环的进行,n值应每次减1,所以第[12]空填写n=n-1。
从表面上看交换的是数组b的元素值,由于调用swap过程时采用传地址方式传递参数,a和b共享同一段地址空间,所以交换数组b的元素,实际上也就是交换数给a的元素值。

多项选择题
单项选择题