万能百科  > 计算机   > 

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

2021-07-20   

[填空题] 下面的程序代码实现将一个一维数组中元素向右循环移动,移动次数由文本框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 【9】 Step—1

【10】

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

正确答案:

[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)。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签