下列程序的功能是:输入l0个整数。‘Private sub Command2_Click Dim i,j,k,temp,arr(11)As Integer

题目

下列程序的功能是:输入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

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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整除为止。

第2题:

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整除为止。

第3题:

运行下列过程,当输入一组数据: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
本题中的第一个循环是将输入的数据放到数组中,第二个循环是一个单循环,如果要进行数列排序,必须使用二重循环才可以实现,所以此时输出的是一个无序数列。

第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题:

下列程序的功能是:输入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。

第6题:

运行下列过程,当输入一组数据:10,20,50,80,40,30,90,100,60.70,输出的结果应该是

sub pl( )

Dim i, j, arr(11)As Integer

k=1

While k<=10

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

k=k+1

Wend

For i=1 T0 9

j=i+1

If arr(i) >arr(j) Then

temp=arr (i)

arr(i)=arr (j)

arr(j)=temp

End If

Debug Print arr(i)

Next i

End Sub

A)升序数列

B)降序数列

C)无序数列

D)原输入数列


正确答案:A
【答案】:A
【知识点】:VBA编程
【解析】:本题中的For循环是一个单循环,i从1开始,每次递增1,循环9次,之后判断前一个数是否大于后一个数,如果大于则两者交换,之后输出。当i=1时,j=2,arr(1)小于arr(2)不交换,输出arr(1)为10。以此类推,输出arr(2)为20,arr(3)为50。当i=4时,j=5,arr(4)大于arr(5),两者交换,输出arr(4)为交换后的40,由此可以看出结果是无序数列。故本题答案为A。

第7题:

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

A.k/11

B.k%11

C.k/11==0

D.k%11==0


正确答案:B
解析:本题的关键是两个加数分别能被13和11整除。当k%11的值为0时,则退出循环,将执行j=k/11;语句,输出结果,所以该表达式合理的条件是k%11。

第8题:

阅读下列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; //最小者交换到 left

if(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;

}

}


正确答案:(1)alefti-1 (2)(left+right+1)/2 (3)while(leftright) (4)a[right)=a[i] (5)aleft i-1
(1)a,left,i-1 (2)(left+right+1)/2 (3)while(leftright) (4)a[right)=a[i] (5)a,left, i-1 解析:(1)a,left,i-1
递归排序左子区间,从left到i-1元素,不包括i元素。
(2)(left+right+1)/2
三者取中子程序median3(a,left,right),取基准记录pivot时,采用从left、right和 mid=[(left+right)/2]中取中间值,并交换到right位置的办法。
(3)while(leftright)
循环直到left和right相遇。
(4)a[right)=a[i]
若a[i]>pivot则让a[right]=a[i]而让a[i]=pivot;。
(5)a,left, i-1
递归排序左子区间,从left到i-1元素,不包括i元素。

第9题:

阅读下列Java程序和程序说明, 将应填入(n)处的字句写在答题纸的对应栏内。

【说明】数据排序。将给定的n个整数分别按照升序和降序进行排列。

class SortInt_1

{

int i, j, k, temp;

void SortInt(int a1, a2[]){//升序排序

for(i=0; i<a1-1; i++){

k=i;

for(j=i+1 ;j<a1 ;j++)

if ((1)) k=j;

if(k!=i){

temp=a2[i];a2[i]=a2[k];a2[k]=temp;

}

}

}

}

class Sortlnt_2 (2)

{

int i, j, k, temp;

void Sortlnt(int a1,a2[]){//降序排序

for(i=0;i<a1-1 ;i++) {

k=i;

for(j=i+1 ;j<a1 ;j++)

if ((3)) k=j;

if(k!=i){

temp=a2[i];a2[i]=a2[k];a2[k]=temp;

}

}

}

}

Class TestOverLoad {

Public static void main(String args[])

{

int a[]={10,55,100,35,87,90,100,16};

Sortlnt_1 newlnt1=(4);

Newlnt1. SortInt(a. length, a);//调用SortInt_1类的方法

System. out. println("升序排列的数据");

For(int i=0;i<8;i++)

System. out. print(a[i]+" ");

system. out. println();

SortInt_2 newInt2=new sortint_2(); //创建类SortInt_2的对象

(5);

System. out. println("降序排列的数据: ");

For(int i=0;i<8;i++)

System. out. print(a[i]+" ");

}

}


正确答案:(1) a2[j]a2[k] (2) extends SortInt_1 (3) a2[j]>a2[k] (4) new SortInt_1() (5) Newint2.SortInt(a. length a)
(1) a2[j]a2[k] (2) extends SortInt_1 (3) a2[j]>a2[k] (4) new SortInt_1() (5) Newint2.SortInt(a. length, a) 解析:(1) a2[j]a2[k]
选择排序的判断条件,k是最小元素的下标。
(2) extends SortInt_1
类的多态,SortInt2由类SortInt1派生而来。
(3) a2[j]>a2[k]
选择排序的判断条件,k是最大元素的下标。
(4) new SortInt_1()
创建类SortInt1的对象,再调用SortInt1类的方法进行升序排序。
(5) Newint2.SortInt(a. length, a)
调用SortInt2类的方法,实现降序排序。
本题采用选择排序的方法,第1、3空考查对算法的掌握,两空可互相对照,第2、4、 5空考查对Java语言的掌握情况,两空亦可互相对照,难度不大。