[填空题] 下面的程序代码实现将一个一维数组中元素向右循环移动,移动次数由文本框Text1输入。例如数组各元素的值依次为0,1,2,3,4,5,6,7,8,9,10;移动三次后,各元素的值依次为8,9

21 查阅

[填空题] 下面的程序代码实现将一个一维数组中元素向右循环移动,移动次数由文本框Text1输入。例如数组各元素的值依次为0,1,2,3,4,5,6,7,8,9,10;移动三次后,各元素的值依次为8,9,10,0,1,2,3,4,5,6,7。 Private Sub MoveRight(x()As Integer)Dim i As IntegerDim j As IntegerDim k As Integeri=UBound(x)j=x(i)For k=i To 【9】 Step—1 【10】 Next kx(LBound(x))=jEnd Sub Private Sub Command1_Click() Dim a(10) As Integer Dim i As Integer Dim j As Integer Dim k As Integer For i=0 To 10 a(i)=i Next i j=Val(Text1.Text) k=0 Do k=k+1 Call MoveRight(a) Loop Until k=j For i=0 To 10Print a(i); Next i End Sub

参考答案:

[9] LBound(x)+1

[10] x(k)=x(k-1) 使用LBound函数和UBound函数可以返回数组的下界值和上界值。题中要实现将—个一维数组中元素向右循环移动,即每移动最右端一个数时,同时其它各个数在数组中的位置都发生了变化,相应位置上的数组下标要比移动前大1,[10]处应体现出这种变化,用C语句来表示为x(k)=x(k-1)。在循环移动的过程中,循环次数由k来控制。但k的值不能取数组元素个数的值,因为这样的话就回到了移动前的初始状态,故循环次数控制到元素个数值减1,就可以完成数组中元素的循环移动。故[9]处应填LBound(x)+1,而不是LBound(x)。

计算机考试