执行语句int x=5,a=0,b=0;if(x=a+b) printf("****");else printf("####");后

如题所述

实践出真知

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-10
x=a+b
=0+0
=0 //0表示假,执行else后面的语句,显示####。本回答被提问者和网友采纳
第2个回答  2011-11-10
结果是 ####
第3个回答  2011-11-10
x=0
a=0
b=0

显示****

...{ int x=5,a=0,b=0; if(x=a+b) printf("* * * *\\n"); els
如果 书写 更正为: int x=5,a=0,b=0; \/\/ int x 有空白。要确定一下 if(x=a+b) 书写是否有错?是 == 还是 =?如果 书写 用 = 不用 == 没写错,则 条件语句 的 条件 永远成立,因为是 赋值语句,赋值一定成功,所以 条件 永远成立。 两题 都执行 printf("* * **\\n...

...{ int x=0,a=0,b=0; if(x=a+b) printf(" * * * *\\n" ); else prin...
if(x=a+b) \/\/x=a+b是赋值语句,这个赋值表达式有值为0,表示假,执行else后面的语句。printf(" * * * *\\n" ); \/\/这个不执行。else printf(" # # # #\\n" ); \/\/这个执行。

...{ int x=0,a=0,b=0; if(x=a+b) printf(" * * * *\\n" ); else prin...
是D,因为x=a+b为赋值运算,x==a+b才为判断运算

...如果把b改成0的话又怎么解释呢?如果x,a,b,都等于0呢?
是正确的!如果换为b=0就选择D if(x=a+b)程序执行到这一步时先执行x=a+b再执行if(x)即先把a+b的值赋给x,再执行if(x);注意:只要X不为0if的条件就为真,就执行printf("***\\n")这句 说白了if(x=a+b)等同于x=a+b;if(x)...

...main(){int a=1,b=0; if(!a)b++; else if (a==0) if(a) b+=2...
答案是0。。。

int a=5,b=0,c=0; if(a=b+c) printf("***\\n"); else ptintf("$$$\\n...
{ int a=5,b=2,c=1;printf("%d,%d\\n",a=b+c,a);return 0;} 运行结果看下图:由此可知,+的优先级高于=,且赋值运算的返回值就是赋的值。所以你的程序if(a=b+c)中, 首先是b+c=0,然后将0赋值给a,同时这个0也作为if的判断条件,所以最后打印的是条件不满足的“$$$”:我不知道...

...main() { int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2...
答案是0 if(!a)不成立,所以去执行else if(a==0)但是这个条件也不成立,所以结束。后面的if(a)【相当于if(a != 0)】else 是一组,均在前面if(a==0)成立的前提下才能运行,所以本程序中这两句根本运行不到。希望对你有帮助。

...0 { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++ ca...
因为每条case后面没有break,所以从case 1挨个执行,因此答案是A

main( ) {int x=5; if (x--<5) printf(“%d\\n”, x); else printf(“%d...
if(x--<5)语句的意思是这样的:首先运算x<5,结果为0,其实等同于它判断x是否小于5,结果为假,接着x需要自减也就是x减一!然后执行下一条语句,由IF语句为假可知它执行了else printf(“%d\\n”, x++);,同上边一样他也是首先输出了x的值然后x再增一,但增一对输出没影响了所以,调试结果...

...int x=0; if (x=2) printf("%d",x++); else printf("%d",++x...
输出:2 x=2是赋值语句,成立,执行printf,因为是x++,所以先输出x,x再自加,故答案是C

相似回答