设有int x=1,y=1,z=1,c;则执行语句c=--x&&--y||--z;后,x,y,z的值分别为

设有int x=1,y=1,z=1,c;则执行语句c=--x&&--y||--z;后,x,y,z的值分别为__
A.0,1,1 B. 0,1,0 C. 1,0,1 D. 0,0,1

第1个回答  推荐于2018-03-13
选B
逻辑运算符的运算特点是左值确定求右值.逻辑运算符不按照规定的优先级计算,在逻辑表达式的求值过程中,如果从"&&"或"||"左边的运算对象部分能够确定整个逻辑表达式的值,则不再求右边运算对象的值.具体地说:若有a&&b且a的值为0,则无须对b进行运算;若有a||b且a 的值为1,则无须对b进行运算.
表达式按优先级可分为二部分:
第一部分:--x&&--y
第二部分:第一部分值||--z;
--x 为前置运算,先将x值减1后,再参与运算,则结果为0;
根据优化,第一部分后面的--y就不运算了,值仍然为1。第一部分的值为0。
再计算第二部分。
0 ||--z;
z 的值还要减1,变为0。最终逻辑表达式的值为0。本回答被网友采纳
相似回答