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

admin2010-03-30  26

问题 下面的程序代码实现将一个一维数组中元素向右循环移动,移动次数由文本框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 Integer
        Dim j As Integer
        Dim k As Integer
        i=UBound(x)
        j=x(i)
        For k=i To【  】 Step—1
           【  】
        Next k
        x(LBound(x))=j
        End 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 10
                Print a(i);
           Next i
       End Sub

选项

答案 LBound(x)+1, x(k)=x(k-1)

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

随机试题
最新回复(0)