参考答案和解析
正确答案:B
while语句的一般形式是:while(表达式)语句这里的表达式可以是任何合理的表达式,语句可以是任何语句,包括空语句,或表达式语句。可能书写的while语句没有任何意义,如供选择的A.while(x=y)5;和C.while(0);,但这两个语句的句法没有任何错误。do-While语句的一般形式是:do语句while(表达式);其中的成分语句也可以是任何语句,但供选择答案B.dox++while(x==10);中的代码x++是一个表达式,不是语句,所以是错误的。正确解答是B。
更多“下列语句中,句法错误的是(不考虑语义)( )A.while(x=y)5 ;B.do x++ while(x==10) ;C.while(0);D.d ”相关问题
  • 第1题:

    设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是( )。

    A.if(x++);

    B.if(x>y&&y!=0);

    C.if(x>0)x-- elsey++;

    D.if(y<0){;} else x++;


    正确答案:C
    解析:选项A)和选项B)在条件判断语句的后面是空语句,什么都不做;在选项D)if后面是一个复合空语句;而在选项C)中,在X--后面少了一个分号,所以程序段在编译时,会出现语法错误。

  • 第2题:

    下列语句中,错误的是(x,y,a,b假设已经定义好)

    A.while(x=y)5;

    B.do x++ while(x==10);

    C.while(0);

    D.do 2;while(a==b);


    正确答案:B

  • 第3题:

    以下不会造成死循环的C语句是(49)。

    A.while(x=8)x--;

    B.for(i=10;sum=0;sum<=i;)sum=--i;

    C.for(y=0,x=1;x>++y;x=i++)i=x;

    D.for(x=10;;x+=i);


    正确答案:C
    解析:赋值表达式x=8永远成立,因此选项A的循环语句“while(x=8)x--;”将构成死循环。选项B是错误的表达形式,因为for()的第3个表达式不能包含“:”。选项C的“for(y=0,x=1;x>++y;x=i++)i=x;”是正确的for循环语句。选项D的for()中缺少第2个表达式,即缺少循环终止条件,必定构成死循环。

  • 第4题:

    下面程序的输出是________。 main() {int x=3,y=6,a=0; while(x++!=(y=|)) { a+=1; if(y<x)break; } printf("x=%d,y=%d,a=%d\n",x,y,A) ; }

    A.x=4,y=4,a=1

    B.x=5,y=5,a=1

    C.x=5,y=4,a=3

    D.x=5,y=4,a=1


    正确答案:D
    解析:注意的是X++中x值的引用时,这里应当是先引用,后自加,具体执行过程如下:第一次while循环:条件为真,执行a=a+1=1此时,x的值已为4,判断yx不成立,继续执行循环;第二次while循环:条件为假,此时x的值已为5,退出while循环,执行printf。

  • 第5题:

    下列语句序列执行后,k的值是______。 int x=10,y=30; do{ y-=x; X++; }while(x++<y--);

    A.0次

    B.1次

    C.2次

    D.3次


    正确答案:C
    解析:题目中的循环为“直到型”循环,至少做1次,选项A可以被排除;程序首先执行循环体,得到x=11,y=20,然后计算终止条件值为true,而x和y的值分别改变为12和19:接着进行第二次循环,执行循环体,得到x=13,y=7,然后计算终止条件值为false,退出循环,因此执行了2次循环,答案为选项C。

  • 第6题:

    有下列程序: #include " stdio.h" main() { int x=0; int y=0; while (x<7&&++y) { y--; x++;} printf("%d,%d",y,x); } 程序的输出结果是( )。

    A.0, 7

    B.7, 7

    C.0,6

    D.1,6


    正确答案:A
    解析:本题考查while循环。y的值在while循环的控制表达式中加1,在循环体内减1,所以总的y值不变,且控制条件++y永远非零。当x加到7时不满足循环条件,结束循环。

  • 第7题:

    下面程序的输出结果是main{ int x=3 ,y=6,a=0; while(x++!=(y-=1) ) { a+=1; if (y<x) break; } printf("x=%d,y=%d,a=%d\n",x,y,a);}A.x=4,y=4,a=1 B.x=5,y=5,a=1 C.x=5,y=4,a=1 D.x=5,y=4,a=3


    正确答案:C
    本题中x++中的x值应当是先引用,后自加,在此基础上,逐步将值带入程序中,即可得到正确的答案。

  • 第8题:

    有下列程序: #include<stdio.h> main { int x=0; int y=0; while(x<7 &&++v) { y--; x++;} printf("%d,%d",y,x); } 程序的输出结果是( )。

    A.0,7

    B.7,7

    C.0,6

    D.1,6


    正确答案:A
    本题考查while循环。在while循环中,y自加每次循环都加l,在循环体内y--每次减1,所以总的y值不变,当x自加到7时,不满足循环条件,循环结束。

  • 第9题:

    下列语句中,错误的是(x,y,a,b假设已经定义好)

    A.while(x=y)5;

    B.do x++while(x==10);

    C.while(0);

    D.d0 2;while(a==b);


    正确答案:B
    解析:do和while之间只能是一条可以执行的语句。分号是语句的一部分。d…while执行多条语句时,应用“{}”括起来,组成复合语句。

  • 第10题:

    下列循环语句中有语法错误的是()。

    • A、while(x=y)5;
    • B、while(0);
    • C、doprintf(“%d”,a);while(a--);
    • D、dox++while(x==10);

    正确答案:D

  • 第11题:

    下列语句中,错误的是()。

    • A、while(x=y)5;
    • B、dox++while(x==10);
    • C、while(0);
    • D、do2;while(a==b);

    正确答案:B

  • 第12题:

    单选题
    有以下程序:#include main(){ int x=0,y=6;  do {  while(--y)x++; } while(y--); printf(%d,%d,x,y); }程序的运行结果是(  )。
    A

    5,0

    B

    6,0

    C

    5,-1

    D

    6,-1


    正确答案: A
    解析:
    程序执行过程为:执行do…while的循环体:y=5,判断y为真,x=1;y=4,x=2;y=3,x=3;y=2,x=4;y=1,x=5;y=0,判断y为假,退出循环体。判断do…while条件y=0为假,y=-1,退出循环。输出x,y为5,-1,答案选择C选项。

  • 第13题:

    有下列程序:

    #include"stdio.h"

    main()

    { int x=0;

    int y=0;

    while(x<7&&++y)

    { y--;

    x++;}

    printf("%d,%d",y,x);

    }

    程序的输出结果是( )。

    A.0,7

    B.7,7

    C.0,6

    D.1,6


    正确答案:A
    解析:本题考查while循环。y的值在while循环的控制表达式中加1,在循环体内减1,所以总的y值不变,且控制条件++y永远非零。当x加到7时不满足循环条件,结束循环。

  • 第14题:

    以下哪个while循环判定式最有可能是因为程序员失误而写出的代码()。

    A.while(x<=7)

    B.while(x=7)

    C.while(x<7)

    D.while(x!=7)


    正确答案:B

  • 第15题:

    若有循环: int x=5,y=20; do{ y-=x; x++; }while(++x<- -y);则循环体将被执行( )。

    A.0次

    B.1次

    C.2次

    D.3次


    正确答案:C

  • 第16题:

    下面程序的输出是______。 main() {int x=3,y=6,a=0; while(x++!=y-=1)) { a+=1; if(y<x)break; } printf("x=%d,a=%d\n",x,y,A) ; }

    A.x=4,y=4,a=1

    B.x=5,y=5,a=1

    C.x=5,y=4,a=3

    D.x=5,y=,a=1


    正确答案:D
    解析:注意的是x++中x值的引用时,这里应当是先引用,后自加,具体执行过程如下:
    第一次while循环:条件为真,执行a=a+1=1;此时,x的值已为4,判断yx不成立,继续执行循环;
    第二次while循环;条件为假,此时x的值已为5,退出while循环,执行printf。

  • 第17题:

    设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是

    A.ifx++);

    B.it(x>y&&y!=0);

    C.if(x>0)x--

    D.if(y<0){;} else y++; else x++;


    正确答案:C
    解析:选项A)和选项B)在条件判断语句的后面是空语句,什么都不做;在选项D)中,if后面是一个复合空语句;而在选项C)中,在X--后面少了一个分号,所以程序段在编译时,会出现语法错误。

  • 第18题:

    设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( )。

    A.if(x++);

    B.if(x>y&&y!=0);

    C.if(x>y)x--else y++;

    D.if(y<0) {;} else x++;


    正确答案:C

  • 第19题:

    有下列程序:

    #include<stdio.h>

    main

    { int x=0;

    int y=0;

    while(x<7 &&++y)

    { y--;

    x++;}

    printf("%d,%d",y,x);

    }

    程序的输出结果是( )。

    A.0,7

    B.7,7

    C.0,6

    D.1,6


    正确答案:A
    本题考查while循环。在while循环中,y自加每次循环都加l,在循环体内y--每次减1,所以总的y值不变,当x自加到7时,不满足循环条件,循环结束。

  • 第20题:

    设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是( )。A.if(x++);SXB

    设变量X和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是( )。

    A.if(x++);

    B. if(x>y&&y!=0);

    C.if(x>y)x--else y++;

    D.if(y<0) {;} else x++;


    正确答案:C
    本题考查的是if语句。if是c语言关键字,表达式两侧的圆括号不可少,最后是一条语句或是用花括号括起来的一组语句。选项A)和B)是在表达式后跟了一条空语句,选项D)是在表达式后跟了一组空语句,选项C)中x一一是表达式而不是语句,所以在编译时会出现错误信息,在X一一后面加上”;”号就对了。

  • 第21题:

    以下不是无限循环的语句为().

    • A、for(y=0,x=1;x>++y;x=i++) i=x;
    • B、for(;;x++=i);
    • C、while(1){x++;}
    • D、for(i=10;;i--) sum+=i;

    正确答案:A

  • 第22题:

    以下不是死循环的语句是()。

    • A、for(y=9,x=1;x>++y;x=i++)i=x;
    • B、for(;;x++=i);
    • C、while(1){x++;}
    • D、for(i=10;;i--)sum+=i;

    正确答案:A

  • 第23题:

    int x = 1, y =6;  while (y--) {  x++;  }  System.out.println(“x =” + x + “y =” +y); What is the result?()  

    • A、 x = 6 y = 0
    • B、 x = 7 y = 0
    • C、 x = 6 y = -1
    • D、 x = 7 y = -1
    • E、 Compilation fails.

    正确答案:E