写出下面各逻辑表达式的值.设a=3,b=4,c=5.

1. a+b>c && b==c
2. a||b+c && b-c
3. !(a>b)&&!c||1
4. !(x=a)&&(y=b)&&0
5. !(a+b)+c-1&&b+c/2
能详细点告诉为什么吗?

1. a+b>c && b==c 逻辑值为0
2. a||b+c && b-c 逻辑值为1

3. !(a>b)&&!c||1 逻辑值为1

4. !(x=a)&&(y=b)&&0 逻辑值为0

5. !(a+b)+c-1&&b+c/2 逻辑值为0
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-21
1=T&&F=F
2=T||T&&T=T||T=T
3=!F&&T||T=T&&T||T=T
4=!T&&T&&F=!T=F
5=!11&&6=!T=F
附:运算顺序从先到后:(),算术运算(+-*/),!,&&,||
在C和C++中数值参与逻辑运算时0为FALSE,其他不为0的值都算作TRUE
第2个回答  2018-03-19

首先有几个概念 

&&是与 ,||是或,!是非 

优先级是  !非>  算数运算符(+-*/)> 关系运算符(><>=)>  &&与> ||或>  赋值运算符 (=)

逻辑运算是表示运算量的逻辑关系,运算结果是0(错误)或1(正确) 

    a+b>c ;7>5; 但是b不等于c 所以逻辑值0  

    b+c与b-c  或 a 不发生冲突 输出1 

    !(a>b)=0 !c=0 输出1

    !(x=a)=0 ;(y=b)=1; 输出0

    !(a+b )=0 ; c-1=4输出1;b+c/2 =输出1 ; 输出1 

第3个回答  2013-04-14
第一、&&的优先级高于||
第二、在&&中判断出表达式为假就停止后续判断直接返回false
第三、在||中判断出表达式为真就停止后续判断直接返回true
第四、赋值表达式永远为true
所以,结果为false,true,true,false(x赋值完成,y赋值未完成),true
第4个回答  2013-04-14
1: 0因为a+b=7是大于c的,这个式子得1,b==c是不成立的,得0.1&&0得0。
2:因为&&的优先级高于||所以,a的得值为1,||后面的那个式子不管是多少都不会影响整个式子的结果了,所以结果为1;
3:结果为1.原因跟上面一样。
4:x=a的值为1,只有当a=0时,赋值表达式的结果才为0.其他状态都为1.所以!(a>b)为0.整个式子是由&&组成的,结果就为0了。
5:!(a+b)+c-1=0+5-1=4!=0,所以结果为1.b+c/2 =4+5/2=6!=0,根据整数整除是向下取整的原则,所以式子结果也为1。1&&1的结果为1.