C语言逻辑判断式的值

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:33:01
写出下列逻辑表达式的值。设a=3,b=4,c=5。
1、a||b+c&&b-c
2、!(a>b)&&!c||1
3、!(x=a)&&(y=b)&&0
4!(a+b)+c-1&&b+c/2
那位高手帮帮忙啊,要运算过程啊....

a||b+c&&b-c
加减运算符高级,先算b+c=9,b-c=-5;逻辑与高级于逻辑或9&&-5为假;真||假=真,即结果输出为1
2、!(a>b)&&!c||1
先算括号3>4为假,逻辑非比其它高级,!假=真;!c,因为c>0,所以为真,非则为假;真&&假=假;假||真=真,输出为1
3、!(x=a)&&(y=b)&&0
括号内的都是真;!真=假;假&&真=假;假&&(0假)=假,输出为0
!(a+b)+c-1&&b+c/2
括号值7为真,逻辑非!比加减高级,!真=假;加减比逻辑与高级,(0假)+c-1=4;c/2=2;b+2=6;(4真)&&(6真)=真,输出为1

1、a||b+c&&b-c=3||4+5&&4-5=1+1-5=-3
2、!(a>b)&&!c||1 =1&&0||1=1
3、!(x=a)&&(y=b)&&0 =0
4、!(a+b)+c-1&&b+c/2=0+5-1+2.5=2.5

1. &&优先级高于||:
a || b+c = true(因为a!=0), b-c != 0(true), 故结果为true.
2. !(a>b)=!(false)=true, !c||1=true(||的右操作数是1), 还是true.
3. 赋值语句x=a返回a值3!=0,故!(x=a)=false,所以整个表达式是false.
4. !(a+b)=0, &&左边是4!=0, 右边是6.5!=0,所以表达式为true.