C语言中 int a=0,b=0,c=0; if(a&&++b) c++; printf("%d,%d\n",b,c); b和c为什么都等于0

作者&投稿:寇佳 (若有异议请与网页底部的电邮联系)
int a=0,b=0,c=0; if(a&&++b) c++; printf(%d,%d/n",b,c); 值是 多少 为什么???~

0,0
判断时a不为真(>0)直接不执行后面的呢
++b和c++都没执行
所以都是0

首先,判断(a++&&b++)这个条件,这个条件中又首先判断a++,得到结果为假(由于是后置自增运算符,所以a在判断的时候为0,判断之后为1)。&&运算中,只要有一个条件为假,则整个条件为假,所以程序不再判断b++这个条件,并且将(a++&&b++)这个条件判定为假。所以程序执行冒号后面的d++。所以a=1,b=0,c=0,d=1。所以答案选D

因为a=0所以&&右边的就被短路了,不被执行, 所以最后a, b, c的值都不变,都为0

c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右侧,整个表达式为零。

只要条件a为假,就不会执行++b 和 c++了,所以b和c都等于0


运城市13944822071: c 若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是: -
卓贞诺力:[选项] A. a=9+b+c=a+9 B. a=9+b;c=a+9; C. a=(9+b,b++) D. a=9+b++=a+7 详细描述下各个选项对错的原因,

运城市13944822071: c语言里,a=b!=0,什么意思 -
卓贞诺力: 首先你要明白什么是表达式,还有变量. A是一个变量. A++,++A都是A加了1. 比如A原来是1,执行了A++或++A后,A变量的值就是2了 至于A++和++A的区别主要是在表达式上的区别. ++A是先执行了A加1后,参与表达式的计算. A++是A先...

运城市13944822071: c语言中int a,b=a; 和int a=0,b=a;和int a,b; b=a和 -
卓贞诺力: int a=0,b; b=a; 是正确的. 声明了 a,b 是整型,初始化 a 为0,语句 b=a; 把 a 的值 赋给 b. int a=0,b=a; 是正确的.声明了 a,b 是整型,初始化 a 为0,声明兼初始化 b; int a,b=a; 语法上,编译器可能不报错,如果声明为全局量(写在 main() 以前),则会自动初始化a为0,b初始化等于 a. 应当是对的,但若 这句写在main() 以后,那就要看你的编译器能否自动初始化 a, 若不能,则 b=a 有问题. int a,b; b=a; 错. 尽管 编译器可能不报错. a 要有值 后,才能 赋给 b.

运城市13944822071: 有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; . 有以下程序 main() { int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf(“%d,%d,%d,%d\n”,a,b,c,d)... -
卓贞诺力:[选项] A. )0,1,2,0 B. 0,0,0,3 C. 1,1,2,0 D. 编译有错 请告诉我哪里有编译错误

运城市13944822071: 帮忙介绍下C语言的一句话 int a=b!=0; 什么意思讲解下下??? -
卓贞诺力: 从右边开始 b!=0是一个判断表达式 如果b是0返回0(也就是false 表达式不成立),如果b不是0,返回1(也就是true 表达式成立) 然后返回的值(0或者1)再赋值给a; 而int a是对a的定义 综合起来就是定义变量a,a的值是表达式b!=0的结果(0或者1)

运城市13944822071: 初中C语言 练习解答main() { int a=0,b=0,c=0; c=(a - =a - 5),(a=b,b+3); printf("%d %d %d\n",a,b,c); } -
卓贞诺力:[答案] a-=a-5,先做a-5得到-5,然后a=a-(-5)得到a=5,将a=5赋值给c得到c=5,接着做a=b得到a=0,b+3语句不改变任何变量的值,最后得到a=0,b=0,c=5

运城市13944822071: 若有以下程序段:int a=0,b=0,c=0 c=(a - =a - 5),(a=b,b+3); printf(“%d,%d,%d\n”,a,b,c); -
卓贞诺力: 大哥题都不对. int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf(“%d,%d,%d\n”,a,b,c);按程序运行来讲吧. 第一句不说了... 第二句为逗号表达式. c=(a-=a-5) 给c赋值,把a-=a-5的结果赋给c; (a-=a-5)=(a=a-(a-5)); 把a=0;代入得a=5; 进而(a-=a-5)的值为5; c=5;接下来执行(a=b,b+3); 这里面又有逗号表达式. a=b;因b=0;故a=0; b+3;不对任何变量赋值,相当于空语句;综上所述:a=0;b=0;c=5.论述完毕.....................

运城市13944822071: C语言选择题,是那道定义int a=0,b=0的题目,为什么不是a=0,b=1 -
卓贞诺力: 逻辑与&&有一个特性,先运算左边的表达式,如果结果是true,才执行右边的表达式;否则不对右边执行运算.这里t=a++;t的值是0,也就是false,所以右边表达式不执行,所以b的值没有被改变.

运城市13944822071: c语言试题 假定所有变量均已正确说明,下列程序段运行后x的值是? int a=0,b=0,c=0 -
卓贞诺力: 结果为4. 1. 先给abc三个整形变量赋值0.if(!a)这里!a值为!0,即为1,即if(1),条件为真,执行x--,不执行else if语句.该if语句结束,此时x=34. 2. 第二个if(c),c值为0,条件为假,不执行x=3,执行else语句x=4,此时x赋值为4. 结果x=4. 程序调试结果x=4,过程分析如有差错请指出. 唉?楼上先我回答了,分给他吧.

运城市13944822071: 若有变量说明,int a=0,b=0,v=0;,以下符合C语言语法的赋值表达式是() -
卓贞诺力:[选项] A. a=9+b+c=a+9 B. a==9+b C. a=(9+b,b++) D. a=9+b+==a+7 选哪个?其他的怎么错了?

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网