设有语句int a=3,b=4 ,c=5 ;则表达式:! (a+b )+c-1&&b+c/2 的值为______ ,表达式 a | | b+c&& b = =

设有语句int a=3,b=4 ,c=5 ;则表达式:! (a+b )+c-1&&b+c/2 的值为______ ,表达式 a | | b+c&& b = = c 的值为______ 。

1和1
对于!(a+b)+c-1&&b+c/2 ,&&前后接两个表达式,一个是!(a+b)+c-1,另一个是b+c/2 ,第一个表达式结果为c-1即2(因为(a+b)非0,故!(a+b)结果为0),第二个表达式结果为6,所以这两个表达式均为非零,所以它们进行逻辑与操作之后的结果为1
对于a || b+c&& b == c,||逻辑或操作符连接两个表达式,但是第一个表达式为a,非0,故不用求后一个表达式的值,所以该表达式结果为1

在vs2010上运行通过
测试代码如下:
int a=3,b=4,c=5 ;
int d = !(a+b)+c-1&&b+c/2;
int e = a || b+c&& b == c;
cout << d << endl ;
cout<< e;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-20
学会这道题,需要了解运算符的优先级,还要知道这些都是int整形变量
()括号一级运算符
!逻辑非运算符属二级运算符
/ 除法运算符属三级运算符
&&逻辑与运算符属十一级运算符
运算符级数越高越先算
!(a+b)+c-1&&b+c/2
级数越高越先计算
左边0+5-1==4
右边4+2.5==6 因为是整形
两边都为真
&&是全真才真,两边都为真,故结果为1
第2个回答  2012-06-14
1

0
第3个回答  2012-06-14
1和0