更多“单选题有以下程序:#include main(){ int n=2,k=0; while(k++n++2); printf(%d %d,k,n);}程序运行后的输出结果是(  )。A 0 2B 1 3C 5 7D 1 2”相关问题
  • 第1题:

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

    #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);

    }


    正确答案:

  • 第2题:

    有以下程序:void main(){ int k=0,n=0; while(k<5) { switch(k) { default: break; case 1:n+=k; case 2: case 3:n+=k; } k++;}printf("%d\n",n); } 程序运行后的输出结果是( )。A)0 B)4C)6 D)7


    正确答案:D
    首先k=0,执行default,退出switch,k++,执行case 1,2,3后,n=2,k++,执行case2,3,n=4,k++,执行case 3,n=7.执行k++,执行default,k++,退出循环。

  • 第3题:

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

  • 第4题:

    以下程序运行后的输出结果是【】。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。

  • 第5题:

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

  • 第6题:

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

    A.O2

    B.13

    C.57

    D.12


    正确答案:D
    本题判断while语句中的逻辑关系的真假。“”两端都为真时结果为真,而题中k的值为0,k++是先使用k的值,再将k加1,而k此时的值为0,结果为假,所以不再执行后面的语句,输出结果时,k的值自加l为1,n的值仍为2。

  • 第7题:

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

  • 第8题:

    有下列程序: 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的循环条件,因此退出循环,程序运行结束。所以在屏幕上打印

  • 第9题:

    有以下程序:includemain(){int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a

    有以下程序: #include <stdio.h> main() { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a<b); printf("%d,%d\n",k,m); } 程序运行后的输出结果是( )。

    A.0,0

    B.0,1

    C.1,0

    D.1,1


    正确答案:C
    解析:本题考查逻辑或运算。因为b>a为真,即n=1,则m不需再计算,保持原值,因此k值为1,m值仍为0。

  • 第10题:

    有以下程序: main( ) { int k=5,n=0; do { switch(k) { case 1: case 3:n+=l;k--;break; defalut: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次循环,执行case4:这个分支,结果是n=2、k=3,打印出2;这时n=2、k=3,break跳出,程序进行第3次循环,执行case3:这个分支,结果是n=3、k=2,打印出3;这时n一3、k2,b¨ak跳出,程序然后进行第4次循环,执行case2:case4:这个分支,结果是n=5、k=1,打印出5,break跳出,这时因为n=5不满足n<5的循环条件,因此循环结束。

  • 第11题:

    有以下程序 main ( ) { int k=5,n=0; while (k>0) { switch (k) { default : 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
    解析:本题考查的是switch语句。switch语句中的case或default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入switch语句中时,如果没碰到break语句,将一直执行到switch语句的结尾。题目中使用了一个while循环使k从5递减到1,当k=5或4的时候从default标号进入switch,碰到break;语句立即跳出,没有改变n:当k=3时,执行了一次n+=k;;k=2时,也执行了一次n+=k;k=1时,执行了两次n+=k;所以最终n的值为3+2+1+1=7。故应该选择D。

  • 第12题:

    单选题
    有以下程序#include 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


    正确答案: D
    解析:
    第一次循环k为5,执行“n=0;k--;”和“n+=2;k--;break;”输出n为2,k的值为3,第二次循环k为3,执行“n+=1;k--,break;”输出n为3,k的值为2,第三次循环k为2,执行“n+=2;k--;break;”,输出n为5,k的值为1,循环条件不成立,所以输出235。答案选择A选项。

  • 第13题:

    有以下程序:void main(){ int a=1,b=2,m=0,n=0,k; k=((n=b>a)+b)‖(m=a<b); printf("%d,%d\n",k,m);}程序运行后的输出结果是( )。A.0,0 B.0,1 C.1,0 D.1,1


    正确答案:C
    先计算b>a,b=2,a=1,所以n=1,1+b=3,不为0,所以或运算结果为1,不计算右边的表达式的值,所以m的值不变,k=1,m=0.

  • 第14题:

    有以下程序 void change(int k[]){k[0]=k[5];} main() { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0; while(n<=4) { change(&x[n]); n++;} for(n=0;n<5;n++) printf("%d",x[n]); printf("\n"); } 程序运行后输出的结果是______。

    A.678910

    B.13579

    C.12345

    D.62345


    正确答案:A
    解析:本题考点为数组名作函数参数,当n=O时,把x[0]的地址传绐被调函数change,即将形参k与实参x指向同一个存储单元x[0],执行被调函数后,k[0]=6,即x[0]=6:当n=1时,形参k指向x数组的第1个数组元素所在单元,即 k[0]与x[1]共用同一存储单元,执行被调函数后,k[0]=7,即x[1]=7,依次类推得出x[0]到x[4]的值分别为6、7、8、 9、10。

  • 第15题:

    有以下程序

    include<stdio.h>

    main( )

    {int n=2,k=0;

    while(k++n++>2);

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

    }

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

    A.O2

    B.13

    C.57

    D.12


    正确答案:D

    本题判断while语句中的逻辑关系的真假。“”两端都为真时结果为真,而题中k的值为0,k++是先使用k的值,再将k加1,而k此时的值为0,结果为假,所以不再执行后面的语句,输出结果时,k的值自加l为1,n的值仍为2。

  • 第16题:

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

  • 第17题:

    以下程序的输出结果是()。includemain(){int n=4; while(n--) printf("%d",--n);}A.2 0

    以下程序的输出结果是( )。 #include <stdio.h> main() { int n=4; while(n--) printf("%d ",--n); }

    A.2 0

    B.3 1

    C.3 2 1

    D.2 1 0


    正确答案:A
    解析:n--是先使用后自减,--n是先自减后使用。n=4时,执行n--后,n变为3,执行--n后,n变为2,所以,第一次输出时,n为2;同上过程,第二次输出时,n为0。

  • 第18题:

    有以下程序 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); }whUe(k>0 &&n<5); } 程序运行后的输出结果是

    A.235

    B.0235

    C.02356

    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。

  • 第19题:

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

  • 第20题:

    有下列程序:

    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。

  • 第21题:

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

  • 第22题:

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

  • 第23题:

    以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

    以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B
    解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。