C语言上的问题 !(a+b)+c-1&&b+c/2的值 a=3,b=4,c=5
10个回答
展开全部
结果等于1
!(a+b) = 0;
0+c-1 = 4;
b+c/2 = 6;
6&&4 = 1;
!(a+b) = 0;
0+c-1 = 4;
b+c/2 = 6;
6&&4 = 1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
!(a+b)+c-1&&b+c/2=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据从左到右计算顺序,结合运算符优先级,根据定义
a = 3, b = 4, c = 5,假定 a,b,c 为 int。真值为1,假值为0。
计算步骤如下:
1、计算 a + b,结果为 a + b = 7
2、计算 !( a + b) 结果为 0,也可以认为是false(假)。
3、计算 c/2,假定c为int时,结果为 2(取整),为float或者double时为2.5,但不影响最终结果,因为都是真值(非零值)。
4、计算 0 + c,结果为 5
5、计算 5 -1,结果为 4。
6、计算 b + 2 或者 b + 2.5,结果为 6 或者 6.5。
7、计算 4 && 6 后者 4 && 6.5,因为两边都为非零值,所以结果为 1,或者true。
这里主要是一个运算符优先级的问题,在本表达多中。
小括号的优先级最高,所以最先计算括号内的值。
其次是逻辑非,然后是除法,然后是 加减法,最终是 逻辑与。
a = 3, b = 4, c = 5,假定 a,b,c 为 int。真值为1,假值为0。
计算步骤如下:
1、计算 a + b,结果为 a + b = 7
2、计算 !( a + b) 结果为 0,也可以认为是false(假)。
3、计算 c/2,假定c为int时,结果为 2(取整),为float或者double时为2.5,但不影响最终结果,因为都是真值(非零值)。
4、计算 0 + c,结果为 5
5、计算 5 -1,结果为 4。
6、计算 b + 2 或者 b + 2.5,结果为 6 或者 6.5。
7、计算 4 && 6 后者 4 && 6.5,因为两边都为非零值,所以结果为 1,或者true。
这里主要是一个运算符优先级的问题,在本表达多中。
小括号的优先级最高,所以最先计算括号内的值。
其次是逻辑非,然后是除法,然后是 加减法,最终是 逻辑与。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-10
展开全部
这个是逻辑运算只讨论真假,与数值没有多大关系只要弄懂运算级别高低就可以最后结果为一,不懂可以MM我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询