参考答案和解析
正确答案:B
更多“执行下面程序片段的结果是()int x=123;do{ printf("%3d\n",x--);}while(!x);A.打印出321B.打印出 ”相关问题
  • 第1题:

    下面程序的运行结果是()。includemain(){int y=10; do{y--;}while(--y); printf("%d\n"

    下面程序的运行结果是( )。 #include<stdio.h> main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); }

    A.-1

    B.1

    C.8

    D.0


    正确答案:D
    解析:本题考查“++”和“--”运算符,运算符“++”是操作数加1,而“--”则是操作数减1。在do-while循环中,首先执行y--,再执行--y。当y=2时,执行y--,y的值变为1,--y使y值变为0,循环结束。执行输出时,先输出y的值0,然后执行y--,使y的值变为-1。

  • 第2题:

    执行下面程序片段的结果是( ) int x=23; do { printf("%2d",x--);} while(! x);

    A.打印出321

    B.打印出23

    C.不打印任何内容

    D.陷入死循环


    正确答案:B

  • 第3题:

    有以下程序: main() { int x=0xFFFF; printf("%d\n",x--); } 执行后的输出结果是( )

    A.32767

    B.FFFE

    C.-1

    D.-32768


    正确答案:C

  • 第4题:

    下列程序执行后的输出结果是( )。 main { char x=0xFFFF;printf("%d\n",x--);}A. -32767SXB

    下列程序执行后的输出结果是( )。 main { char x=0xFFFF;printf("%d\n",x--);}

    A. -32767

    B.FFFE

    C.1

    D.32768


    正确答案:C
    因为x=0xFFFF=11111111,因此当以整型形式输出时对应的数为一1。

  • 第5题:

    有如下程序:includemain(){int x=23; do {Printf("%d",x--);} while(! x);}该程序的执

    有如下程序: #include <stdio.h> main() { int x=23; do { Printf("%d",x--);} while(! x); } 该程序的执行结果是( )。

    A.321

    B.23

    C.不输出任何内容

    D.陷入死循环


    正确答案:B
    解析:do-while语句的执行过程中要先执行一次循环体语句,本题中执行x--后判断while中的表达式,表达式的值!x为假,程序结束循环。

  • 第6题:

    有如下程序: main() { int x=23; do { printf("%d",x--); } while(!x); } 程序运行后的输出结果是( )。

    A.321

    B.23

    C.不输出任何内容

    D.陷入死循环


    正确答案:B
    解析:本题中使用do-while循环,每执行一次循环体输出x的值后将x减1。当x=23,执行循环体输出x为23,X=X-1=23-1=22,判断循环条件是否成立,因为x=22,!x的值为0,终止循环,因此只输出23。

  • 第7题:

    下面程序段的执行结果是( )。 int x=10; for(;x;x--) { if(x%3) continue; printf("%d",x); }

    A.875421

    B.963

    C.741

    D.852


    正确答案:B
    解析:本题的for循环省略了第一个表达式,即for没有任何初始化动作;第二个表达式x的意思是只要x非0,则循环继续;第三个表达式让x在每次循环结束时减1。x初始为10,然后进入循环体,判断x是否能被3整除,不能整除则执行continue;语句进入下一次循环,能整除则输出x。故最终输出的结果为从10递减到1之中能被3整除的数9、6和3。所以正确答案是B。

  • 第8题:

    有以下程序:

    #include<stdio.h>

    main

    { int x=4,y;

    do

    { y=x;

    if(!y)printf("x");

    else

    printf("y"):

    x--;

    }while(x);

    }

    程序的输出结果是( )。

    A.A.xyyx

    B.yyyy

    C.yyxx

    D.yxyx


    正确答案:B
    本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

  • 第9题:

    执行下列程序段后的的输出结果是( ) x=9; while( x>7) { printf("*");x--;}

    A.****

    B.***

    C.**

    D.*


    正确答案:C
    注意执行while循环前,变量x的初值为9.第1次执行while循环,控制循环的条件为“x>7”,这时x为9,条件成立,执行循环体:输出单个“*”,x再减1,x为8。继续循环,控制循环的条件是“x>7',现在x为8,条件成立,输出“*”后x减1,现在x为7。继续循环时,控制循环的条件不满足,退出循环。所以本段程序执行后,输出结果为两个“*”,本题答案应选C。

  • 第10题:

    下面程序段的输出结果是() int x=3; do{printf("%3d",x-=2);}while(!(--x));

    • A、1;2
    • B、3;2
    • C、2;3
    • D、1;-2

    正确答案:D

  • 第11题:

    单选题
    有以下程序:#includemain(){ int x=23; do {  printf(%2d,x--); } while(!x);}程序的执行结果是(  )。
    A

    输出321

    B

    输出23

    C

    不输出任何内容

    D

    陷入无限循环


    正确答案: A
    解析:
    “%2d”表示按宽度为2,右对齐方式输出,若不够两位,左边补空格。程序执行过程为:输出x为23,之后x自减得x=22,!x为假,while条件不成立,退出循环。此题需要注意x--和--x的区别,在逻辑表达式中,x--是先传递x的值,再执行自减1,此题就是这种情况,--x是先自减1,再执行传递x的值。答案选择B选项。

  • 第12题:

    填空题
    执行下列程序的输出结果是()。  #include   main( )  {   int x=10;      do{   x--;      }while(--x);  printf(“%d/n”,x--);  }

    正确答案: 0
    解析: 暂无解析

  • 第13题:

    以下程序段的输出结果是______。 int x=5; do {ptintf("%2d\n",x--); }while(!x);

    A.5

    B.无任何输出

    C.4

    D.陷入死循环


    正确答案:A
    解析:本题考查循环语句do-while语句的执行情况。首先五条件执行循环体,表达式x--的值为5,然后检查条件。

  • 第14题:

    执行下面程序段的结果是( )。 int x=23; do {printf("%2d",x--); } while(! x);

    A.输出321

    B.输出23

    C.不输出任何内容

    D.陷入死循环


    正确答案:B
    解析:x--是先使用x的值,后进行自减运算,所以输出的结果应当为23。

  • 第15题:

    执行下面程序的结果是______。 main() { int x=2; printf("%d\n",(x--,x<<1,x&&5)); }

    A.0

    B.1

    C.2

    D.编译时有语法错误,不能执行


    正确答案:B
    解析:逗号表达式x--,x1,x&&5先执行x--,x的值为1,再执行x1,表达式的值为2,但x的值仍是1(不是移位赋值表达式),最后执行x&&5,二者均不为0,逻辑与的结果是1。

  • 第16题:

    有以下程序: #include<stdio.h> main { int x=4,y; do { y=x; if(!y)printf("x"); else printf("y"): x--; }while(x); } 程序的输出结果是( )。

    A. xyyx

    B.yyyy

    C.yyxx

    D.yxyx


    正确答案:C
    本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。

  • 第17题:

    下列程序的执行结果是_____。main(){ int x=23; do { printf("%d",x--);} while(!x);}

    A.321

    B.23

    C.不输出任何内容

    D.陷入死循环


    正确答案:B

  • 第18题:

    有如下程序 main() { int x=3; do { prinff("%d",x--);} while(!x); } 该程序的执行结果是_____。

    A.321

    B.3

    C.不输出任何内容

    D.陷入死循环


    正确答案:B
    解析:本题x赋初值为3,当执行printf("%d",x-);时,由于x-的作用是先运算x,再将x的值减1,所以,printf输出的x值为3,等输出后,x的值减1变为2,继续执行,判断条件!x为假,循环只被执行一次。

  • 第19题:

    下面的程序输出结果是______。 main() { int x=3; while(!(--x)) printf("%d\n",x-=2); }

    A.不执行循环体

    B.1

    C.0

    D.是死循环


    正确答案:A

  • 第20题:

    执行下面程序段的结果是______。 int x=234; do { printf("%3d\n",x--); } while(!x);

    A.432

    B.234

    C.0

    D.234到1的自然数


    正确答案:B

  • 第21题:

    执行下列程序的输出结果是()。  #include   main( )  {   int x=10;      do{   x--;      }while(--x);  printf(“%d/n”,x--);  } 


    正确答案:0

  • 第22题:

    若执行下面的程序时从键盘上输入5,则输出是() main( ) { int x; scanf(""%d"",&x); if(x++>5) printf(""%d/n"",x); else printf(""%d/n"",x--);}

    • A、7
    • B、6
    • C、5
    • D、4

    正确答案:B

  • 第23题:

    单选题
    下面程序段的输出结果是() int x=3; do{printf("%3d",x-=2);}while(!(--x));
    A

    1;2

    B

    3;2

    C

    2;3

    D

    1;-2


    正确答案: A
    解析: 暂无解析