有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i=i;j--)if(x[j+有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1])

题目
有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+

有以下程序: main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

A.75310246

B.1234567

C.76310462

D.13570246


相似考题
参考答案和解析
正确答案:A
解析:主函数中定义了一个整型数组x,并初始化。接着执行了一个二重for循环,在该二重循环的作用是将数组的前4个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后4个元素按从小到大的顺序排序,故最后依次输出数组的个元素的值为75310246,所以,4个选项中选项A符合题意。
更多“有以下程序:main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+ ”相关问题
  • 第1题:

    有以下程序:includeusing namespace std;int main(){ inty=18,i=0,j,a[8]; do{ a[i]=

    有以下程序: #include <iostream> using namespace std; int main() { int y=18,i=0,j,a[8]; do{ a[i]=y%2; i++; y=y/2; }while(y>=1); for(j=i-1;i>=0;j--) cout<<a[j]; cout<

    A.1000

    B.10010

    C.110

    D.10100


    正确答案:B
    解析:本题考核一维数组元素的引用和一维数组的输出。程序中的do-while循环语句的执行过程如下:第1次循环时,i=0、y=18,把“y%2”的值0存入a[0],执行i++后,i的值变为1,再执行y=y/2;,使y的值变为9。同理,第2次循环后,a[1]的值为1,第3次循环后,a[2]的值变为0,第4次循环后,a[3]的值变为0,第5次循环后,a[4]的值为1,然后退出do-while循环体。for循环是输出从a[4]到a[0]的值,结果为:10010。

  • 第2题:

    有以下程序:include using namespace std;int main ( ){ int n[3],i,j,k = 2; for(i

    有以下程序: #include <iostream> using namespace std; int main ( ) { int n[3],i,j,k = 2; for(i = 0;i<k;i++) n[i] = O; for(i = O;i<k;i++) { for(j = O;j<k;j++) n[j] = n[i] + 1; } cout<<n [0 ] <<end1; return 0; } 上述程序运行后,输出结果是( )。

    A.0

    B.1

    C.2

    D.3


    正确答案:D
    解析:本题考核数组的定义、初始化及其使用。根据程序逐步分析:程序首先给数组n的所有元素赋初值0,然后执行一个嵌套的循环结构。嵌套循环的执行过程如下:①i=0时,j分别取值0、1,使得n[0]、n[1]的值分别变1、2,内层循环结束。②i=1时,对外层循环进行判断,符合循环条件,执行内层循环,j分别取值0、1,使得n[0]、n[1]的值变为3、3,退出内层循环。③i=2时,判断外层循环,不再符合循环条件,退出外层循环,执行cout语句,输出n[0]的值为3。

  • 第3题:

    有以下程序: include usingnamespacestd; intmain() { intnum[2][3],*p; intt,i,j,k=

    有以下程序: #include <iostream> using namespace std; int main() { int num[2][3],*p; int t,i,j,k=10; p=num[0]; for(i=0;i<2;i++) { for(j=0;j<3;j++) { k++; *p=k; for(t=2;t<*p;t++) { if(!(*p%t)) { j--; *p--; break; } *p++; } } cout<<*(p-1)<<end1; return 0; } 程序运行后的输出结果是( )。

    A.19

    B.11

    C.29

    D.23


    正确答案:C
    解析:本题考核数组与指针的关系。程序首先初始化指针p,让其指向二维数组num的首元素,即num[0][0]。程序中,第1个for循环是为二维数组的每行元素赋值而设置的循环,第2个for循环是为二维数组的每列元素赋值而设定的,第3个for循环是为判断数组元素是否是素数而设置的。在第3个for循环中,如果*p的值能被小于它的数整除(即不是素数),则执行“j--;*p--;”,然后跳出第3个for循环。j--的含义是让其前面的赋值语句重新赋值,而*p--的含义是使指针指向前一个单元。语句“*p++;”将指针移到下一个单元,在下一次循环时,k加1,并k赋给*p,看*p是否为素数,这样一直到满足条件为止,即数组num[2][3]中的数都为素数。最后数组num中各元素的值分别为大于10的素数,即分别为:11,13;17,19,23,29。程序最后要求输出*p的值,由于此时指针已指向数组num的最后一个元素,即num[1][2]。所以输出的值是29。

  • 第4题:

    有以下程序: include main ( ){int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k;for(i =0;i<3;i

    有以下程序: #include <stdio. h> main ( ) { int x[ ] = {1,3,5,7,2,4,6,0} ,i,j,k; for(i =0;i<3;i ++ ) for (j =2;j> = i;j — ) if( x[j + 1 ] > x[j] ) { k = x[j] ;x[j] = x[j + 1 ] ;x[j + 1 ] = k; } for (i =0;i<3;i++) for(j =4;j <7-i;j ++) if(x[j] >x[j+1]){ k=x[j];x[j] =x[j+1];x[j+1] =k;} for (i=0;i<8;i ++) printf("%d" ,x[i]); prinff("\n" );}程序运行后的输出结果是( )。

    A.75310246

    B.1234567

    C.76310462

    D.13570246


    正确答案:A
    解析:本题考查的是排序算法。for(i=0;i3;i++)for(j=2;j>i;j--)if(x[j+1],x[j]){k=x[j];x[j];x[j+1);x[j+1]=k;}该段程序的作用是将数组元素x[0]~x[3]中的数由大到小排列,得到x[]{7,5,3,1,2,4,6,0}。for(i=0;i3;i++)for(j=4;j7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}该段程序的作用是将数组元素x[4]~x[7]中的数由小到大排列,得到x[]={7,5,3,1,0,2,4,6}。因此输出结果为75310246。

  • 第5题:

    有以下程序:include void fun(iht * a,int i,int j){int t;if(i < j) {t=a[i];a[i] =

    有以下程序:#include <stdio, h>void fun(iht * a,int i,int j){ int t; if(i < j) { t=a[i];a[i] =a[j] ;a[j]=t; i++;j--; fun(a,i,j);main ( ) int x[ ]: {2,6,1,8} ,i; fun(x,0,3); for( i=0;i <4;i ++ ) printf( "%2d" ,x[i] ); printf(" \n");

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:语句fun(x,0、3);中将数组名x作为实参,即把数组x的首地址传送给形参(指针a),使数组x与形参指针s共占同一段内存单元,在调用函数期间,如果形参数组x的值发生了改变,实参指针a的值也就改变了。程序中fun函数是递归调用函数,其运行过程是:第1次调用fun时,a=x,i=0,j=3,ij成立,a[0]与a[3]交换,a数组中的数变为{8,6,1,2},执行i++;j--;继续调用fun,此时i,j分别为1,2,ij成立,a[1]与a[2]交换,a数组中的数变为{8,1,6,2},执行i++j--;继续调用fun,此时i,j分别为2,1,ij不成立,递归调用结束。当返回主函数时,x数组中的数据就为{8,1,6,2}。

  • 第6题:

    请读程序: include main( ) { int n[2],i,j,k; { for(i=0,i<2;i + + )n[i]=0;

    请读程序: # include<srdio.h> main( ) { int n[2],i,j,k; { for(i=0,i<2;i + + )n[i]=0; k=2; for(i=0;i<k;i+ +) {for(j=0;j<k;j+ +)n[j]=n[i]+l; print{("%d\n",n[k]); } 上面程序片段输出结果是 ( )

    A.不确定的值

    B.3

    C.23

    D.1


    正确答案:A

  • 第7题:

    有以下程序main(){ int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]) { k=x[j]; x[j]=x[j+1]; x[j+1]=k; } for (i=0;i<8;i++) printf("%d",x[i]); printf("\n");}程序运行后的输出结果是A.75310246 B.01234567 C.76310462 D.13570246


    正确答案:A
    for(i=0;i<3;i++)
         for(j=2;j>=i;j--)
            if(x[j+1]>x[j]){  k=x[j];x[j]=x[j+1];x[j+1]=k;}
    此段程序的作用是将数组x[0]~x[3]中的数由大到小进行排列,运行此段程序后,x[]中的值变为x[]={7,5,3,1,2,4,6,0}
    for(i=0;i<3;i++)
        for(j=4;j<7-i;j++)
            if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}
    此段程序的作用是将数组x[4]~x[7]中的数由小到大进行排列,运行此段程序后,x[]中的值变为x[]={7,5,3,1,0,2,4,6},最后通过一个循环将X[]中的数依次输出。

  • 第8题:

    有以下程序:inelude main( ){int i,j,x=0;for(i=0;i<2;i++ ) {x++; for(j=0;j<=3;j ++

    有以下程序:#inelude <stdio.h>main( ){ int i,j,x=0; for(i=0;i<2;i++ ) { x++; for(j=0;j<=3;j ++) { fi(j%2) continue; x++; x++; } pfinff( "x = % d\n",x);} 程序执行后的输出结果是( )。

    A.x=4

    B.x=8

    C.x=6

    D.x=12


    正确答案:B
    解析:本问题要求给出程序执行后输出的x的值。x的初值为0,程序中出现了3次x++,其中外层循环中出现了两次,共自增了4次;在内层循环中,当循环变量为。和2时,x自增,因此共自增了4次,这样x共自增了8次,所以结果为8。

  • 第9题:

    有以下程序 void fun(int *a,int i,int j) { int t; if (i<j) { t=a[j]; a[i]=a[j]; a[j]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i:0;i<4;i++) printf("%2d",x[i]); } 程序运行后的输出结果是______。

    A.1 2 6 8

    B.8 6 2 1

    C.8 1 6 2

    D.8 6 1 2


    正确答案:C

  • 第10题:

    下面程序运行结束后,k的值为________。

    include <iostream.h>

    void main( )

    {int i,j,k;

    for(i=0;j=10;i<=j;i++,j--)

    k=i+j;

    cout<<k;

    }


    正确答案:
    10

  • 第11题:

    以下程序的输出结果是()。includevoid main(){int i,j,x=0;fof(i=0;i<2;i++={x++;fo

    以下程序的输出结果是( )。 #include<iostream.h> void main() {int i,j,x=0; fof(i=0;i<2;i++= {x++; for(j=0:j<3;j++= {if(j%2)continue; x++; x++;} cout<<"x="<<X;=

    A.x=4

    B.x=8

    C.x=6

    D.x=12


    正确答案:B

  • 第12题:

    单选题
    有以下程序:#include #include main(){ int i,j,x = 0; for(i = 0;i < 2;i++) {  x++;  for(j = 0;j <= 3;j++)  {   if(j%2==0)continue;   x++;  }  x++; } printf(x = %d,x);}程序的运行结果是(  )。
    A

    x=4

    B

    x=6

    C

    x=8

    D

    x=12


    正确答案: B
    解析:
    第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。答案选择C选项。注意,在循环体中遇到continue,则跳过continue后的语句直接进入下一次循环的判断。

  • 第13题:

    以下程序的输出结果是includevoid main( ){int i,j,x=0;for(i=0;i<2;i++){x++;for(

    以下程序的输出结果是 #include<iostream.h> void main( ) {int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2)continue; x++;} x++;} cout<< "x="<<x;}

    A.x=4

    B.x=8

    C.x=6

    D.x=12


    正确答案:B
    解析:该题是一个for循环嵌套语句。第一层for循环循环2次,第二层循环3次,但当j等于 0和1时,将执行continue语句,不执行x++运算,所以每次执行完内循环后,x的增量为1。最后一个x++运算将每次累加起来就是x的值。

  • 第14题:

    有以下程序: void fun(int *a,int i,int i) { int t; if(i<j) { t==a[i];a[i]=a[j];a[i]=t; i++; j--; fun(a,i,j); } } main() { int x[]={2,6,1,8),i; fun(x,0,3), for(i=0;i<4;i++) printf("%2d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

    A.1268

    B.8621

    C.8162

    D.8612


    正确答案:C
    解析:函数fun()中用了一个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组x,该数组有4个元素,接着调用fun(a,O,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8、1、6和2,所以,4个选项中选项C符合题意。

  • 第15题:

    下列程序的输出结果是 include void main( ) {int a[3],i,j,k=2; for(i=

    下列程序的输出结果是 #include<iostream.h> void main( ) { int a[3],i,j,k=2; for(i=0;i<3;i++)a[i]=i; for(i=0;i<k;i++) for(j=0;j<k;j++) a[j]=a[i]; cout<<a[2];}

    A.2

    B.3

    C.1

    D.0


    正确答案:A
    解析:本题里有三个for循环,但要分清楚,第一个是单独的给三个元素赋值,赋完值后三个a[0]=0,a[1]=1,a[2]=2;后面的两个for是嵌套循环,对数组元素的赋值,但由于k=2,初值已定for里的条件是小于k,所以不管怎么处理都影响不到a[2],故答案为2。

  • 第16题:

    有以下程序 main() { int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for (j=2;j>=i;

    有以下程序

    main( )

    { int x[ ]={1,3,5,7,2,4,6,0},i,j,k;

    for(i=0;i<3;i++)

    for (j=2;j>=i;j--)

    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

    for(i=0;i<3;i++)

    for(j=4;j<7-i;j++)

    if(x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

    for (i=0;i<3;i++)

    if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k;}

    for (i=0;i<8;i++) printf("%d",x[i]);

    printf("\n");

    }

    程序运行后的输出结果是:

    A.75310246

    B.1234567

    C.76310462

    D.13570246


    正确答案:A
    解析:程序运行的输出结果是75310246。

  • 第17题:

    以下程序的输出结果是( )。 void fun(int*a,int i,int i) {int t; if(i<i) { t=a[i[;a[i]=a[j];a[j]一t; i++;j--;

    fun(a,i,j); } } main { int K[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<1;i++)printf("%2d",x[i]); printf("\n"); }

    A.1,2,6,8

    B.8,6,2,1

    C.8,1,6,2

    D.8,6,1,2


    正确答案:C
    本题用了函数调用,fun中if语句成立则进行i,j的交换,用到主函势中则为把下标为0、3,1、2互换,因此,当执行完后X的数组为8,1,6,2,故选择C选项。

  • 第18题:

    在执行完下面的程序后,变量k的值为【 】。

    int i, j, k;

    for(i=0, j=10; i<:j; i++,j--) k=i+j;


    正确答案:10
    10

  • 第19题:

    有以下程序:main(){int x[]={1,3,5,7,2,4,6,0),i,j,k;for(i=0;i<3;i++)for(j=2;i>=i;j--)if( x[j

    有以下程序: main() { int x[]={1,3,5,7,2,4,6,0),i,j,k; for(i=0;i<3;i++) for(j=2;i>=i;j--) if( x[j+1]>x[j]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){ k=x[j];x[j]=x[j+1];x[j+1]=k; } for(i=0;i<8;i++) printf("%d",x[i]); printf("\n"); } 程序运行后的输出结果是( )。

    A.7.53102e+007

    B.01234567

    C.7.63105e+007

    D.1.35702e+007


    正确答案:A
    解析:主函数中定义了一个整型数组x,并初始化。接着执行了一个二重for循环,该二重循环的作用是将数组的前4个元素按从大到小排序,接着用了一个二重循环(也是冒泡算法)将数组的后4个元素按从小到大的顺序排序,故最后依次输出数组的元素值为75310246,所以,4个选项中选项A符合题意。

  • 第20题:

    以下程序运行后的输出结果是【】。include main(){int i=10,j=0;do{j=j+ i; i--;}while

    以下程序运行后的输出结果是【 】。

    include <iostream.h>

    main()

    {

    int i=10,j=0;

    do

    {

    j=j+ i; i--;

    }

    while(i>2);

    cout<<j;

    }


    正确答案:52
    52

  • 第21题:

    有以下程序: main { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) {if(j=0;j<=3;j++) x++; } x++; } printf("x=%d\n",x); } 程序执行后的输出结果是( )。

    A. x=4

    B.x=8

    C.x=6

    D.x=12


    正确答案:B
    当i=0时,i<2成立,执行第一个for循环x自加为1,接着执行第二个for循环;j=0时j<=3成立,此时if不成立,执行x++后,x为2;接着j=1时,i<=3成立,继续循环,此时if成立,continue是跳出本次循环,继续下一次循环,不再执行x++了;接着j=2时,j<=3成立,此时if不成立,执行其后的语句;当j=4时,退出第二个循环,接着执行循环外部的x++,x为4;当i=1时,i<2成立,执行第一个循环,x=5,此时接着执行循环外部的语句,即第二个循环;j=0时j<3成立,此时if不成立,x++后,x为6,接着j为1时,j<=3成立,继续循环,此时if成立,不再执行x++了;接着J=2时,j<=3成立,此时if不成立,执行其后的x++,x为7;i=3时,j<=3成立,此时if成立,不再执行其后的语句了;当j=4时,退出第二个循环,执行循环外部的语句,最终x为8,故选B选项。

  • 第22题:

    有以下程序: void fun(int *a,int i,int j) { int t; if(i<j) { t=a[i];a[i]=a[j];a[j]=t; i++; j--; fun(a,ij); } } main() { int x[]={2,6,1,8},i; fun(x,0,3); for(i=0;i<4;i++) printf("%2d",x[i]); printf("\"n); } 程序运行后的输出结果是( )。

    A.1 2 6 8

    B.8 6 2 1

    C.8 1 6 2

    D.8 6 1 2


    正确答案:C
    解析:函数fun()中用了—个if语句,当数组下标i小于数组下标j时,交换数组元素a[i]和a[j]的值,并使i值加1,j值减1。其功能就是把数组a中从下标i到j的元素首尾互换。主函数中定义一个数组,在定义该数组的时候缺省了定义长度,定义的同时将其初始化赋值,所以该数组的长度为初始化该数组时的元素的个数即4,接着调用fun(a,0,3),其中将a数组的第一个元素的下标0和最后一个元素的下标3传给了函数fun(),故执行完该函数后,数组a中的元素首尾互换,因此最后依次输出的数组a中值为8,1,6和2,所以,4个选项中选项C符合题意。

  • 第23题:

    有以下程序      main( )  {int i,j,x=O;  for(i=0;i<2;i++)      {x++;   for(j=0;j<=3;j++)      {if(j%2)continue;      x++;      }      x++;      }  printf(”x=%d/n”,x);          }  程序执行后的输出结果是()

    • A、x=4
    • B、x=6
    • C、x=8
    • D、x=12

    正确答案:C