下面的程序代码实现将一个一维数组中元素向右循环移动,移动次数由文本框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
第1题:
阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素a[0]~a[n-1]循环向右平移k个位置。
为了达到总移动次数不超过n的要求,每个元素都必须只经过一次移动到达目标位置。在函数rcr中用如下算法实现:首先备份a[0]的值,然后计算应移动到a[0]的元素的下标p,并将a[p]的值移至a[0];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[0]的备份值移到正确位置。
若此时移动到位的元素个数已经为n,则结束;否则,再备份a[1]的值,然后计算应移动到a[1]的元素的下标p,并将a[p]的值移至a[1];接着计算应移动到a[p]的元素的下标q,并将a[q]的值移至a[p];依次类推,直到将a[1]的备份值移到正确位置。
若此时移动到位的元素个数已经为n,则结束;否则,从a[2]开始,重复上述过程,直至将所有的元素都移动到目标位置时为止。
例如,数组a中的6个元素如图1(a)所示,循环向右平移两个位置后元素的排列情况如图1(b)所示。
【函数】
void rcr(int a[],int n,int k)
{int i,j,t,temp,count;
count=0;/*记录移动元素的次数*/
k=k%n;
if( (1) ){/*若k是n的倍数,则元素无须移动;否则,每个元素都要移动*/
i=0;
while(count<n){
j=i;t=i;
temp=a[i];/*备份a[i]的值*/
/*移动相关元素,直到计算出a[i]应移动到的目标位置*/
while((j= (2) )!=i){
a[t]=a[j];
t= (3) ;
count++;
}
(4) =temp;count++;
(5) ;
}
}
}
第2题:
有一严格升序的整型数组A,元素个数为n。现将其前k(0≤k≤n)个元素整体移动到数组后面,得到数组B,使B数组的前n-k个元素恰好是A数组的后n-k个元素,B数组的后k个元素恰好是A数组的前k个元素,且前后两部分的内部升序仍保持不变。请设计一个算法在B数组中查找某个给定元素value。算法设计在函数searchValue中,函数头可采用searchValue(int B[ ], int value)。那么你设计的高效算法的时间复杂度是
A.O(n)
B.O(n^0.5)
C.O(log n)
D.O((log n)^2)
第3题:
【单选题】微信小程序中wxml文件中如何编写循环结构?
A.<view for=“{{页面绑定的数组对象}}”item=”{{存放数组各元素的变量}}”>#B.<view wx:for=“{{页面绑定的数组对象}}”wx:key=”{{存放数组各元素的变量}}”>#C.<view wx:for=“{{页面绑定的数组对象}}” wx:key =”存放数组各元素的变量”>#D.以上均不正确第4题:
关于数组的操作,以下说法正确的是()?
A.数组中插入数据效率低,插入数据的时候,插入点位置后面的数据在内存中都要向后移动。
B.数组中删除数据效率低,删除数据的时候,被删除数据位置后面的数据在内存中都要向前移动。
C.数组随机读取效率很高,因为数组是连续的,通过数组起始地址,和元素下标,就可以算出每一个数据的内存地址,直接直接找到对应地址的数据。
D.数组随机读取效率很低,因为数组是连续的,必须从第一个元素开始查找,直到对应元素的地址,再访问这个数据。
第5题:
旋转数组(包括重复元素)的最小数字。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。