首先要说明一下,在逻辑表达式中,只有真假两个值,真就是非0的数,假即为0。
第1题,d=(a>b) || (++a==5) && ( c > b--)。
首先看(a>b),由a=4,b=7,可知,(a>b)为假,也就是说,值为0。
然后看(++a==5),先计算++a,由a=4,得++a的值为5,所以(++a==5)为真,值为1。
此时a=5。
再看(c b--)的值,经过之前的计算可以知道,该式值为真。
所以(a>b) || (++a==5) && ( c > b--)等于(a>b) || 1,也为真。于是d=1。如果此时再输出a,b,c,d的结果的话,应为a=5,b=6,c=5,d=1。
第2题 temp=!a+b*c-b/a&&b-a*!(c-a)。
先看(!a),由a=10即a为真,可知(!a)为假,值为0。
由(b*c-b/a)可知,(15*14 -15/10)不可能为0,所以为真,值为1。
再看(b-a*!(c-a)),(c-a)=4,为真,所以!(c-a)为假,值为0,
a*!(c-a)=a*0=0,b-a*!(c-a)=b-0=b=15,由b=15可知,值为真。
由(b*c-b/a)=1, ( b - a * !(c-a) )=1,可知( b*c - b/a ) && ( b - a * !(c-a) )=1。
由( !a )可知, ( !a ) + ( b*c - b/a ) && ( b - a * !(c-a) )=1,所以temp=1