下列程序的功能是:输入l0个整数。‘Private sub Command2_Click Dim i,j,k,temp,arr(11)As Integer Dimresult As String For k=1T0 10 arr(k)=Val(InputBox( “请输入第”&k&”个数:”,”数据输入窗口”)) Next k i=1 J=10 Do Temp=arr(i) arr(i)=arr(j) arr(j)=tempi=i+1 j=__________LoopWhileresule=””For k

题目

下列程序的功能是:输入l0个整数。‘Private sub Command2_Click Dim i,j,k,temp,arr(11)As Integer Dimresult As String For k=1T0 10 arr(k)=Val(InputBox( “请输入第”&k&”个数:”,”数据输入窗口”)) Next k i=1 J=10 Do Temp=arr(i) arr(i)=arr(j) arr(j)=tempi=i+1 j=__________LoopWhileresule=””For k=1 To 10 result=result&arr(k)&Chr(13)Nextk MsgBoxresult End Sub 横线处应填写的内容是( )。

A.J-i i<j

B.j+1 i<j

C.j+1 i>j

D.J-1 i>j


相似考题

4.阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。【说明】下面是一个用C编写的快速排序算法。为了避免最坏情况,取基准记录pivot时,采用从left、right和mid=[(left+right)/2]中取中间值,并交换到right位置的办法。数组a存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。void quicksort (int a[], int left, int right) {int temp;if (left<right) {hat pivot = median3 (a, left, right); //三者取中子程序int i = left, j = right-1;for(;;){while (i <j && a[i] < pivot) i++;while (i <j && pivot < a[j]) j--;if(i<j){temp = a[i]; a[j] = a[i]; a[i] = temp;i++; j--;}else break;}if (a[i] > pivot){temp = a[i]; a[i] = a[right]; a[right] = temp;}quicksort( (1) ); //递归排序左子区间quieksort(a,i+1 ,right); //递归排序右子区间}}void median3 (int a[], int left, int right){ int mid=(2);int k = left;if(a[mid] < a[k])k = mid;if(a[high] < a[k]) k = high; //选最小记录int temp = a[k]; a[k] = a[left]; a[left] = temp; //最小者交换到 leftif(a[mid] < a[right]){temp=a[mid]; a[mid]=a[right]; a[right]=temp;}}消去第二个递归调用 quicksort (a,i+1,right)。 采用循环的办法:void quicksort (int a[], int left, int right) {int temp; int i,j;(3) {int pivot = median3(a, left, right); //三者取中子程序i = left; j = righi-1;for (;; ){while (i<j && a[i] < pivot)i++;while (i<j && pivot <a[j]) j--;if(i <j) {temp = a[i]; a[j]; = a[i]; a[i]=temp;i++; j--;}else break;}if(a[i]>pivot){(4);a[i]=pivot;}quicksoft ((5)); //递归排序左子区间left = i+1;}}

参考答案和解析
正确答案:A
本题中第一个循环是将输入的数放进数组中,在第二个循环中进行逆序交换,a(1)是和a(10)进行交换,所以当i=i+1时,j=j-1,当i=5,j=5时,会停止循环,所以条件必须为i<j。
更多“下列程序的功能是:输入l0个整数。‘Private sub Command2_Click Dim i,j,k,temp,arr(11)As Integer ”相关问题
  • 第1题:

    下列程序的功能是:输入10个整数,逆序后输出。请在程序空白处填入适当语句使程序完成指定的功能。

    Private Sub Command2_Click()

    Dim i, j, k,temp, arr(11) As lnteger

    Dim result As String

    For k=1 To 10

    arr(k) =Val (InputBox( "请输入第" & k & "个数:","数据输入窗口"))

    Next k

    i=1

    j = 10

    Do

    temp=arr(i)

    arr(i)=arr(j)

    arr(j)=temp

    i=i+1

    j=【12】

    Loop While【13】

    result =""

    For k=1 To 10

    result=result & arr(k) & Chr(13)

    NeXt k

    MsgBox result

    End Sub


    正确答案:

    【12】
    【答案】:j-1
    【知识点】:VBA程序中循环结构的循环变量的设计
    【解析】:此程序的功能是实现10个整数的逆序,变量i从第1个数向后移动需要不断加1,变量j从第10个数向前移动需要不断减1,故此空应填j-1。

    【13】
    【答案】:i>j
    【知识点】:VBA程序中的循环结构
    【解析】:此程序是用循环结构实现的,循环结束的条件是变量i和j从两边移到中间两个变量进行数据交换后,下次不再进行数据交换,此时变量i的值大于j的值,故此空应填i>j。

  • 第2题:

    运行下列过程,当输入一组数据:l0,20,50,80,40,30,90,100,60,70,输出的结果应该是( )。Sub plDim i,j,arr(11)AsInteger

    x=1

    Whilek<=10

    arr(k)=VaI(InputBox(”请输入第”&k&”个数:”,”输入窗口”))k=k+1

    Wend

    For i=1T09J=i+1

    Ifarr(i)>arr(j)Thentemp=arr(i)

    arr(i)=art(j)

    arr(j)=temp

    EndIfDebu9.Printarr(i)

    NextiEnd Sub

    A.无序数列

    B.升序数列

    C.降序数列

    D.原输入数列


    正确答案:A
    本题中的第一个循环是将输入的数据放到数组中,第二个循环是一个单循环,如果要进行数列排序,必须使用二重循环才可以实现,所以此时输出的是一个无序数列。

  • 第3题:

    11、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空()。 int main() { int i=0,j,k; do{i++;k=316-13*i;}while(_______ ); j=k/11; printf(“316=13*%d+11*%d”,i,j); return 0; }

    A.k / 11

    B.k / 11 == 0

    C.k % 11 == 0

    D.k % 11


    B 解析:程序的设计思想是每次将316减去13的倍数,然后判断差值是否能被11整除,如果不能整除,则继续循环,直到能被11整除为止。

  • 第4题:

    下列程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,则在划线处应填人的选项是 int i=0,j,k; do {i++;k=316-13*i;}while (_______); j=k/11; System.out.pfintln(i+","+j);

    A.k/11

    B.k%11

    C.k/Il==0

    D.k%11==0


    正确答案:B
    解析:本题的关键是两个加数能分别被13和11接除,在i=0时,直接将316赋值给k,当k%ll的值为0时,则不必执行j=k/Il,输出结果,所以应填入k%11。

  • 第5题:

    20、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空()。 int main() { int i=0,j,k; do{i++;k=316-13*i;}while(_______ ); j=k/11; printf(“316=13*%d+11*%d”,i,j); return 0; }

    A.k / 11

    B.k / 11 == 0

    C.k % 11 == 0

    D.k % 11


    B 解析:程序的设计思想是每次将316减去13的倍数,然后判断差值是否能被11整除,如果不能整除,则继续循环,直到能被11整除为止。