考题
下面的程序代码实现将一个一维数组中元素向右循环移动,移位次数由文本框Text输入。例如数组各元素的值依次为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 ______ Step-1_______Next kx(LBound(x))=jEnd SubPrivate Sub Command1_Click()Dim a(10)As IntegerDim i As IntegerDim j As IntegerDim k As IntegerFor i=0 To 10a(i)=iNext ij=Val(Text1.Text)k=0Dok=k+1Call MoveRight(a)Loop Until k=jFor i=0 To 10Print a(i);Next iEnd Sub
考题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】函数void rcr(int a[],int n,int k)的功能是:将数组a中的元素s[0]~9[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]的值移至9[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=0while(count<n) {j=i;t=i;temp =a[1]; /*备份a[i]的值*//*移动相关元素,直到计算出a[i]应移动到的目标位置*/while((j=(2))! =i){a[t]=a[j];t=(3);count++;}(4)= temp;count ++;(5);}}}
考题
下面程序的功能是:用Array函数建立一个含有8个元素的数组,然后查找并在文本框Textl中输出该数组中各元素的最小值。请填空。End Sub
考题
下面的程序代码实现将一个一维数组中元素向右循环移动,移位次数由文本框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【 】Step -1【 】Next kx(LBeund(x)) = jEnd SubPrivate Sub Command1_click()Dim a(10) As IntegerDim i As IntegerDim j As IntegerDim k As IntegerFor i = 0 To 10a(i) = iNext ij = Val(TextText)k=0Dok=k+1Call MoveRight(A)Loop Until k = jFor i = 0 To 10Print a(i);Next iEnd Sub
考题
阅读下列函数说明和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(countn){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) ;}}}
考题
关于数组的操作,以下说法正确的是()?A.数组中插入数据效率低,插入数据的时候,插入点位置后面的数据在内存中都要向后移动。B.数组中删除数据效率低,删除数据的时候,被删除数据位置后面的数据在内存中都要向前移动。C.数组随机读取效率很高,因为数组是连续的,通过数组起始地址,和元素下标,就可以算出每一个数据的内存地址,直接直接找到对应地址的数据。D.数组随机读取效率很低,因为数组是连续的,必须从第一个元素开始查找,直到对应元素的地址,再访问这个数据。
考题
有一严格升序的整型数组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,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。
考题
【单选题】微信小程序中wxml文件中如何编写循环结构?A.<view for=“{{页面绑定的数组对象}}”item=”{{存放数组各元素的变量}}”>#B.<view wx:for=“{{页面绑定的数组对象}}”wx:key=”{{存放数组各元素的变量}}”>#C.<view wx:for=“{{页面绑定的数组对象}}” wx:key =”存放数组各元素的变量”>#D.以上均不正确