. 若a=5,b=6,c=7,d=8,则表达式d=a/2&&b==c||!a的值为 设a、b、c、d、m、n均为int型变量,且a=5、b=6、...

作者&投稿:厨人钟 (若有异议请与网页底部的电邮联系)

解析如下:

先计算a/2,结果为5/2,即1。

再判断b==c,结果为假,即0。

然后判断(a/2)&&(b==c),即1&&0,结果为假,即0。

然后a=5,非0,为真,则!a为假,即0。

再判断[(a/2)&&(b==c)]||(!a),即0||0,结果为假,即0。

最后赋值d为0。

应用题的解题思路:

(1)替代法有些应用题,给出两个或两个以上的的未知量的关系,要求求这些未知量,思考的时候,可以根据题中所给的条件,用一个未知量代替另一个未知量,使数据量关系单一化。从而找到解题途径。(如倍数关系应用题)

(2)假设法有些应用题要求两个或两个以上的未知量,思考的时候需要先提出某种假设,然后按照题里的己知量进行推算出来。根据数据量上出现的矛盾,再进行适当调整,最后找到正确答案。( 如工程问题)



从左至右扫描
先计算a/2,结果为5/2,即1
再判断b==c,结果为假,即0
然后判断(a/2)&&(b==c),即1&&0,结果为假,即0
然后a=5,非0,为真,则!a为假,即0
再判断[(a/2)&&(b==c)]||(!a),即0||0,结果为假,即0
最后赋值d为0



根据运算符优先次序
可以得到d=[(a/2)&&(b==c)]||(!a)
从左至右扫描
先计算a/2,结果为5/2,即1
再判断b==c,结果为假,即0
然后判断(a/2)&&(b==c),即1&&0,结果为假,即0
然后a=5,非0,为真,则!a为假,即0
再判断[(a/2)&&(b==c)]||(!a),即0||0,结果为假,即0
最后赋值d为0

建议再熟悉熟悉运算符优先次序

按运算符 优先级 赋值表达式可写成:
d= ( ((a/2) && (b==c)) || !a )
按次序: a/2 得 2; b==c 得 0; 2 && 0 得 0。
!a 得 0。
0 || 0 得 0。 0 赋给 d 。 d 得 0
表达式 的值 为 0

d=a/2&&b==c||!a 相当于 d=((a/2)&&((b==c)||!a)),

也就是你先计算b==c,结果为0,

而!a结果也为0,所以(b==c)||!a结果为0

所以d肯定为0的。

设a=3,b=2,c=6,d=5,m=7,n=8,则表达式(m=a<b)&&(n=c-d)运算后,~

m = a<b, 3<2不成立所以 m = 3<2 = 0;
&&如果左边不成立,那么右边就不运行了,所以n还是8
答案是m = 0,n =8

逻辑表达式(m==a<b)&&(n==c<d) 的值为:0
因为a<b,故其值为1,但是m的值为2,所以 m==a<b的值(即2==1的值)为假,于是剩下后面的已无需再作判断,整个表达式的值为0。