itgle.com

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

题目
有以下程序 main(){intx[]={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[

有以下程序 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


相似考题
更多“有以下程序 main(){intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i=i;j--) if(x[ 有以下程序 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”相关问题
  • 第1题:

    以下程序的输出结果是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的值。

  • 第2题:

    有以下程序段:includedefine MAX(x,y)(x)>(y)?(x):(y)void main(){ int i,j,k; i=

    有以下程序段: #include<iostream.h> #define MAX(x,y)(x)>(y)?(x):(y) void main() { int i,j,k; i=10; j=15;k=MAX(i,j)*10; cout<<k<<end1; } 程序执行后的输出结果是( )。

    A.15

    B.100

    C.150

    D.10


    正确答案:C

  • 第3题:

    有以下程序 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。

  • 第4题:

    以下程序的输出结果是( )。 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选项。

  • 第5题:

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

    以下程序的输出结果是( )。 #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

  • 第6题:

    有以下程序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[]中的数依次输出。

  • 第7题:

    有以下程序: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。

  • 第8题:

    有以下程序 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

  • 第9题:

    若有以下程序: #include〈iostream〉 using namespace std; int main() { int data[4],i,j,temp; for (i=O; i<4; i++) cin>>data[i]; for (i=1; i<4; i++) { j = i-1; temp = data[i]; while (data [j ] >temp&&j >=0) { data[j+1] = data[j]; j--; } data[j+1] = temp; } for(i=O;i<4;i++) cout〈〈data[i]〈〈" "; cout〈〈end1; return 0; }

    A.2843

    B.2348

    C.8243

    D.8432


    正确答案:B
    解析:本题属于综合题,考查数组和循环语句两方面的知识。此题看起来很复杂,其实不然,根据程序逐步分析:①在程序第1个for语句中,为数组data赋输入的值,即2,8,4,3。②第2个for语句是嵌套式循环,循环次数是3次,即从1到3。第1次循环时,i=1,执行“j=i-1”后,j=0,然后把data[1]的值赋给temp,再进入while循环。③while后的条件表达式“data[j]〉temp&&j〉=0”,就是当data刚大于temp,同时j不小于0时执行while循环体。当while条件表达式成立时,执行“data[j+1]=data[j]”,即当data刚大于data[j]大于data[j+1]时,把它们俩的值交换一下,以此类推,最后实现把数组中的数从小到大排列起来。④最后一个for语句用于打印经过程序处理后数组中的元素。

  • 第10题:

    有以下程序: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符合题意。

  • 第11题:

    有以下程序      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

  • 第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)continue;   x++;  }  x++; } printf(x = %d,x);}程序的运行结果是(  )。
    A

    x=8

    B

    x=4

    C

    x=6

    D

    x=12


    正确答案: A
    解析:
    本题考查的是for环的嵌套。外循环的循环变量i从0递增到1会循环两次,内循环的循环变量i从0递增到3会循环4次。但是内循环中有一条if语句,每当j%2为真,即j为奇数时会跳过下面的x++;语句,所以4次内循环只有两次执行到x++;语句,再加上外循环中包含的两条x++;语句,所以每次外循环会使x自增4次,两次外循环后x的值为8。答案选择A选项。注意,在循环体中遇到continue,则跳过continue后的语句直接进入下一次循环的判断。

  • 第13题:

    有以下程序: 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符合题意。

  • 第14题:

    有以下程序: 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。

  • 第15题:

    有以下程序: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}。

  • 第16题:

    有下列程序: 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++: } printf("x=%d\n"x); } 程序执行后的输出结果是( )。

    A.x=4

    B.x=8

    C.x=6

    D.x=12


    正确答案:B
    在第1次外层for循环中,首先x++得到x=1。进入到内层for循环,只有循环j的值为奇数时,变量x的值才自加1,所以在内层for循环执行过程中,变量x的值自加两次,当退出内层for循环时,x=3,然后执行x++,得到x=4。在进入执行第2次外层for循环中,首先x++得到x=5。进入到内层for循环,只有循环变量J的值为奇数时,变量X的值才自加1,所以在内层for循环执行过程中,变量X的值自加l两次,当退出内层for循环时,x=7,然后执行x++,得到x=8,所以打印输出变量x的值为8。

  • 第17题:

    What will be the output of the follow C code?

    #define product(x) (x*x)

    main()

    {

    int i = 3, j, k;

    j = product(i++);

    k = product(++i);

    printf("%d %d",j,k);

    }


    正确答案:
     

  • 第18题:

    有以下程序: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符合题意。

  • 第19题:

    以下循环体的执行次数是( )。 main() {int i,j; for(i=0,j=1;i<=j+1;i+=2,j--)cout<<i<<endl; }

    A.3

    B.2

    C.

    D.0


    正确答案:D
    解析: 本题考查考生对for循环中三个表达式的执行顺序及使用方法。首先执行第一个表达式,然后判断第二个表达式是否成立,如果成立则执行循环体,然后执行第三个表达式,随后再去判断第二个表达式。根据这个顺序,可以委有容易的判断出,循环体只执行了一次。

  • 第20题:

    有以下程序: 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选项。

  • 第21题:

    有以下程序: 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符合题意。

  • 第22题:

    以下循环体的执行次数是 main() {int i,j; for(i=0,j=1;i<=j+1;i+=2,j--) cout<<i<<endl;

    A.3

    B.2

    C.1

    D.0


    正确答案:C
    解析:本题考查考生对for循环中三个表达式的执行顺序及使用方法。首先执行第一个表达式,然后根据第二个表达式判断是否成立,如果成立则执行循环体,然后执行第三个表达式,随后再去判断第二个表达式。根据这个顺序,可以很容易的判断出,循环体只执行了一次。

  • 第23题:

    单选题
    有以下程序:#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后的语句直接进入下一次循环的判断。