C语言: 1、表达式4>3>7>8的值是?

1、表达式4>3>7>8的值是?
问题:这样的表达式应该怎么看,从左到右,还是右到坐,先求那一个?

2、若有定义:int s; 表达式 s%2+(s+1)%2 的值是?
问题:同问这类表达式的计算顺序,先计算哪位边?

求详解

1.从左往右 值为1
2.值为1 本题不受结合方向影响

是根据运算符的级别来判断的,同级别的一半是从左往右,这类题目可以自己编程测试一下就知道了,例如题1
#include "stdio.h"
void main()
{
printf("%d",4>3>7>8);
}

结果为0,如果是从右往左的话,7>8为假值为0,3>0为真值为1,4>1为真值为1,所以最终结果应为1,与实际结果不同,所以应该是从左往右的
从左往右,首先4>3为真值为1,然后1>7为假值为0,0>8为假值为0,最后结果为0与实际相符
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-22
1、表达式4>3>7>8的值是假,C语言用0表示。表达式从左到右求。

2、s%2+(s+1)%2的值是1,%表示求余数。对于两个%运算,先计算左边%运算。
第2个回答  2010-12-22
第一个>是左结合的,所以先算左面,4>3结果是1,以此论推
第二个结果不受结合方向影响,因为优先级上()高于%高于 +,结果是1,非要看次序的话是先 s%2,再(s+1)%2,因为+左结合

参考资料:http://baike.baidu.com/view/1516130.htm

本回答被提问者采纳
第3个回答  2010-12-22
先看运算符的级别,同一等级的一般是从左往右运算
相似回答