参考答案和解析
##2##4 ##2##4 解析:本题中从k=2输出,printf中“%d”前的内容原样输出,所以第一次输出##2,接着k两次自加为4,接着输出##4,接着k再两次自加为6,此时不符合循环条件,所以输出结果为“##2##4”
更多“下列程序段的输出结果是__ int k=12; for(;k>8;k--); if(k%2==0) printf("%d",k);”相关问题
  • 第1题:

    下列程序的输出结果是()。includevoid fun(int*a,int*B){int *k;k=a;a=b;b=k;}main(){i

    下列程序的输出结果是( )。 #include<stdio.h> void fun(int*a,int*B){ int *k; k=a;a=b;b=k;} main() { int a=1,b=2,*x=&a,*y=&b; fun(x,y); printf("%d%d",a,B); }

    A.2 1

    B.1 2

    C.编译出错

    D.0 0


    正确答案:B

  • 第2题:

    以下程序运行后的输出结果是【】。includemain(){int k=1,s=0; do{ if((k%2)!=0)continue;

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

    include<stdio.h>

    main()

    { int k=1,s=0;

    do{

    if((k%2)!=0) continue;

    s+=k; k++;

    }while(k>10);

    printf("s+%d\n",s);

    }


    正确答案:s=0
    s=0 解析:do-while循环结构的形式如下:
    do
    循环体
    while(表达式);
    循环的执行过程如下:
    ①执行do后面循环体中的语句。
    ②计算while后—对圆括号中表达式的值。当值为非0时,转去执行步骤1;当值为0时,执行步骤3。
    ③退出do-while循环。
    在本题中先判断k是否为偶数,如果不是则结束本次循环,进行下—次的循环条件判定,由于没有改变k的值,k>10的不成立,退出do-while循环,执行后面的printf("s=%d\n",s);语句,因为s=0,所以输出结果为s=0。

  • 第3题:

    有以下程序

    main( )

    { int k=4,n=0;

    for( ; n<k ; )

    { n++;

    if(n%3!=0) continue;

    k--; }

    printf("%d,%d\n",k,n);

    }

    程序运行后的输出结果是

    A.1,1

    B.2,2

    C.3,3

    D.4,4


    正确答案:C
    解析:此题考查了循环体内条件语句的用法,同时考查了continue在循环中的作用,即当执行到continue时,不再执行循环体中尚未执行的语句,而直接跳转到for语句中执行表达式3(本程序中为空),再判断nk是否成立。

  • 第4题:

    有以下程序includemain(){int k=5,n=0;while(k>0){switch(k){defhult:break;case 1:n+

    有以下程序 #include<stdio.h> main() {int k=5,n=0; while(k>0) {switch(k) {defhult:break; case 1:n+=k: case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

  • 第5题:

    以下程序的输出结果是( )。 include main()fint x=0; sub(&x,16,2); printf("%d\n",

    以下程序的输出结果是( )。

    include<stdio.h>

    main()

    fint x=0;

    sub(&x,16,2);

    printf("%d\n",x);

    }

    sub(int*a,int n,int k)

    {if(k<=n) sub(a,n/2,2*k);

    *a+=k;

    }


    正确答案:14
    14 解析:本题考查递归函数的调用。在主函数中调用sub(&x,16,2)函数,此时n=16,k=2,if语句的控制的条件k=n成立,所以执行下面的语句,调用sub(x,8,4),此时n=8,k=4,if语句的控制条件k=n成立,所以执行下面的语句,调用sub(x,4,8),此时n=4,k=8,if语句控制的条件k=n不成立,因此,最后得x=2+4+8=14。

  • 第6题:

    若有定义:int k;,下列程序段的输出结果是【 】。

    for(k=2;k<6;k++,k++)printf("++%d"k);


    正确答案:##2##4
    ##2##4 解析:本题中从k=2输出,printf中“%d”前的内容原样输出,所以第一次输出##2,接着k两次自加为4,接着输出##4,接着k再两次自加为6,此时不符合循环条件,所以输出结果为“##2##4”

  • 第7题:

    有下列程序: main() {int k=5,n=0; do {switch(k) {case 1: case 3:n+=1;k--;break; default:n=0;k--; case 2: case 4;n+=2;k--;break; } printf("%d",n); }while(k>O&&n<5); } 程序运行后的输出结果是( )。

    A.235

    B.0235

    C.02356

    D.2356


    正确答案:B
    解析: 因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case 4:这个分支,结果是n=2,k=3,打印出2;这时n=2,k=-3,程序进行第3次循环,执行case 3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第 4次循环,执行case 2:case 4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印

  • 第8题:

    有以下程序: main() { int k=4,n=0; for(; n<k;) { n++; if(n%3!=O) continue; k--; } printf("%d,%d\n",k,n); } 程序运行后的输出结果是( )。

    A.1,1

    B.2,2

    C.3,3

    D.4,4


    正确答案:C
    解析:在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式1%3!=0的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(nk)为真,重复执行“n++;”语句,如此循环直到n=3时,if语句判定条件中表达式3%3!=0的值为假,程序执行if语句后面的“k--;”语句,此时k的值为3,不满足nk,退出for循环。故最后的k和n的值为3和3,选项C符合题意。

  • 第9题:

    有以下程序: include main ( ) {int k=5,n =0; while ( k>0){switch (k) {default: b

    有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:在程序中,当L的值为5和4时,case都没有与其匹配的值,所以执行default语句;当k=3时,执行n+=k;得n=3;当L=2时,执行case2:然后顺序执行case3:n+=k;得n=5;当k=1时,执行case1:n+=k;得n=6,然后顺序执行case2:和case3:n+=k;使得n=7。

  • 第10题:

    有下列程序:

    main

    { int k=5,n=0;

    while(k>0)

    {switch(k)

    {default:break;

    case 1:n=n+k;

    case 2:

    case 3:n+=k;

    }

    k--;

    }

    printf("%d\n".n);

    }

    程序运行后的输出结果足( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第11题:

    有以下程序: main() { int k=4,n=0; for(;n<k;) { n++; if(n%!=0)continue; k--; } printf("%d\n",k,n); } 程序运行后的输出结果是( )。

    A.1,1

    B.2,2

    C.3,3

    D.4,4


    正确答案:C
    解析:在本程序的for循环中,用到了一个continue语句,continue语句的作用是停止本次循环,即不执行循环体内continue语句后面的其他语句,继续下次循环的条件判断。首先在for循环中n自加1(值变为1),然后执行后面的if语句,由于if语句后面括号的表达式(1%3!=0)的值为真,程序执行continue语句,回到for循环的开始部分,并且判断for循环中的条件表达式(nk)为真,重复执行“n++”;”语句,如此循环直到n=3时,if语句判定条件中表达式(3%3!=0)的值为假,程序执行if语句后面的“k--”语句,此时k的值为3,不满足“nk”,退出for循环。故最后的k和n的值为3和3,选项C符合题意。

  • 第12题:

    单选题
    有如下程序段:int k;for(k=2;k==0;) printf(%d,k--);则for循环体执行的次数是(  )。
    A

    0次

    B

    1次

    C

    2次

    D

    无限次


    正确答案: B
    解析:
    “for(k=2;k==0;)”表示给k赋值2,如果k等于0,则进入循环,但是k不满足条件,因此循环体不执行。答案选择A选项。

  • 第13题:

    有以下程序 main() { int k=5,n=0; do { switch(k) { case 1: case 3:n+=1;k--;break; default:n=0;k--; case 2: case 4:n+=2;k--;break; } printf("%d",n); }while(k>0&&n<5); } 程序运行后的输出结果是

    A.235

    B.235

    C.2356

    D.2356


    正确答案:A
    解析:因为变量的初始值分别为“k=5,n =0”,所以程序第一次进入循环时,执行default语句,这时k=4,执行"case 4:”这个分支,结果是“n=2,k= 3”,打印出2;程序然后进行第二次循环,这时“n=2,k =3”,执行"case 3:”这个分支,结果是“n=3,k=2”,打印出3;程序进行第三次循环,这时“n=3,k=2”,执行“case 2:case 4:”这两个分支,结果是“n=5,k=1”,打印出5,这时因为n=5不满足n5的循环条件,因此退出循环,程序运行结束。因此输出结果是235。

  • 第14题:

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

    main()

    { int x=0;

    sub(&x,8,1);

    printf(“%d\n”,x);

    }

    sub(int *a,int n,int k)

    { if(k<=n)sub(a,n/2,2*k);

    *a+=k;

    }


    正确答案:7
    7 解析:在主函数中定义了一个变量x并赋初值0,然后执行函数调用语句,该语句的执行过程为sub(&x,8,1)调用sub(&a,4,2),sub(&a,4,2)调用sub(&a,2,4),sub(&a,2, 4)中由于24,所以if后面括号里的判断为假,递归结束,执行其后的*a+=k;语句此时 x=x+k=0+4=4,回退到上一层调用函数sub(&x,4,2)中,执行后面的语句,x=x+k= 4+2=6,再回推到最上一层调用函数sub(&x,8,1)执行后面的语句,x=x+k=6+1=7,所以最后输出7。

  • 第15题:

    有如下程序: main() { int k=4, n=0; for(; n<k; ) { n++; if(n% 3!=0)continue; k--; } printf(" % d, % d\n", k, n); 程序运行后的输出结果是______。

    A.1, 1

    B.2, 2

    C.3, 3

    D.4, 4


    正确答案:C
    解析:continue语句是结束本次循环。
      for循环语句的执行过程为:
      第1次循环:循环前n=0,执行n++得n=1,n%3!=0成立,执行continue语句结束本次循环,k=4;
      第2次循环:循环前n=1,执行n++得n=2,n%3!=0成立,执行continue语句结束本次循环,k=4;
      第3次循环;循环前n=2,执行n++得n=3,n%3!=0不成立,执行语句k--得k=3;nk不成立,结束整个for循环。
      所以执行完for循环后k=3、n=3,正确答案为选项C。

  • 第16题:

    若有定义:int k;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("%d",k);


    正确答案:

    本题主要考查for循环语句。for循环的增量表达式为逗号表达式,相当于k+=2;,即每次循环后k增加2。第一次循环时,k=2,因此输出##2;第二次循环时k=4,输出##4。此后k=6,不满足循环条件。

  • 第17题:

    下列程序运行后的输出结果是 ______。 include void main(){ int s=0,k for(k=7;k>=0

    下列程序运行后的输出结果是 ______。

    include<iostream.h>

    void main()

    {

    int s=0,k

    for(k=7;k>=0;k--)

    {

    switch(k)

    {

    case 1:

    case 4:

    case 7:s+ +;break:

    case 2:

    case 3:

    case 6:break;

    case 0:

    case 5:s+=2;break;

    }


    正确答案:s=7
    s=7

  • 第18题:

    有下列程序: main { int k=5,n=0; while(k>0) {switch(k) {dcfault:break; case 1:n=n+k; case 2: case 3:n+=k; } k--; } printf("%d\n".n); } 程序运行后的输出结果足( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第19题:

    有下列程序:

    main()

    {int k=5,n=0;

    do

    {switch(k)

    {case 1: case 3:n+=1;k--;break;

    default:n=0;k--;

    Case 2: case 4;n+=2;k--;break;

    }

    printf("%d",n);

    }while(k>0 && n<5) ;

    }

    程序运行后的输出结果是( )。

    A.235

    B.0235

    C.02356

    D.2356


    正确答案:B
    解析:因为变量的初始值分别为k=5,n=0,所以程序第1次进入循环时,执行default语句,输出0,k减1;这时n=0,k=4,程序进行第2次循环,执行case 4:这个分支,结果是n=2,k=3,打印出2:这时n=2,k=3,程序进行第3次循环,执行case 3:这个分支,结果是n=3,k=2,打印出3;这时n=3,k=2,程序然后进行第4次循环,执行case 2:case4:这个分支,结果是n=5,k=1,打印出5,这时因为n=5不满足n5的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印出的结果是0235。

  • 第20题:

    有以下程序:includemain(){int k=4,n=0; for( ;n

    有以下程序: #include <stdio.h> main() { int k=4,n=0; for( ;n<k;) { n++; if(n%3! =0) continue; k--;} printf("%d,%d\n",k,n); } 程序运行后的输出结果是( )。

    A.1,1

    B.2,2

    C.3,3

    D.4,4


    正确答案:C
    解析:本题考查循环和continue语句,continue语句的功能是结束本次循环。n从0开始循环,判断n%3!=0是否成立,如果成立,结束本次循环,继续下一次for循环;否则执行k--,并继续下一次for循环,直至循环结束。在程序中,当n取1,2时,不执行k--,当n取3时,执行k--,k变为3,循环结束,输出k,n的值分别为3,3。

  • 第21题:

    下列程序段执行后,k的值是 ( ) int i=6,j=8,k=10,m=7; if(i>||m<k--) k++; else k--;

    A.12

    B.11

    C.10

    D.9


    正确答案:C

  • 第22题:

    下列程序的输出结果是()。ineludemain(){int a[5]={2,4,6,8,10},*p,**k; p=a;k=&p;

    下列程序的输出结果是( )。 #inelude <stdio.h> main() { int a[5]={2,4,6,8,10},*p,**k; p=a; k=&p; printf("%d",*(p++)); printf("%d\n",**k); }

    A.4

    B.22

    C.24

    D.46


    正确答案:C
    解析:指针变量p指向数组a的首地址,并把指针变量p的地址赋给指向指针的指针变量k。第一个printf函数输出2,第二个printf函数输出4。

  • 第23题:

    对于以下程序,   main( )  { int a[5],*p;    int k;    for(k=0,p=a;k<5;k++,p++)     scanf(“%d”,p);    for(;k>0;k--)     printf(“%d”,*(--p));  }  若输入为:1 2 3 4 5(注:表示回车),则输出结果是多少?


    正确答案:输出结果是54321

  • 第24题:

    问答题
    对于以下程序,   main( )  { int a[5],*p;    int k;    for(k=0,p=a;k0;k--)     printf(“%d”,*(--p));  }  若输入为:1 2 3 4 5(注:表示回车),则输出结果是多少?

    正确答案: 输出结果是54321
    解析: 暂无解析