jmfs.net
当前位置:首页>>关于设int a=2.b=6;则表达式a*b/5的值为的资料>>

设int a=2.b=6;则表达式a*b/5的值为

此为整式运行 a*b/5=2*6/5=2

最後值为7,这是一个if语句,就是 int a=5,b=6; if(++a==b--) ++a; else --b; ++ar的规则是先运算,所以括号中左值++a=6,a=6; ==的优先级低过--,所以先计算b-- b--的规则是先赋值,所以括号中右值b--=6,b=5; 左值6==右值6,即条件为真,执行++a,因为a...

换算成2进制 6=110 5=101 按位做与运算得 100 10进制就是4 所以:6&5==4

c值不变,仍为2 注意||运算符有短路的副作用 也就是当||运算符左侧的值为非零,也就是真时,那么这个||表达式的值肯定为1,真,没有必要再去判断||右侧的了 所以本题中--c根本没有执行 类似的,还有&& 当&&运算符左侧为假时,那么可以断定整个&&表达式...

A.求模运算要求所有参数都是整型6.8不合适 B.a+=b+=8;相当于a+=(b+=8);相当于b+=8; a+=b; C.++运算符要求后面的是个变量名,这里是表达式错 D.a+b=9中赋值号=要求左边是个变量名,这里是表达式错

设int a=5,b=6, 表达式 a=a+b, a-b 的值为 5 。 因为逗号运算符的优先级最低。原式,等价于: (a=a+b), a-b 逗号运算的结合性是从左至右,完毕之后整个表达式的值是最后一个表达式的值。即11-6=5

表达式一般从右向左计算,首先将5赋值给b,再赋值给a,右边的括号里的值就是a的值,也就是5,再对a+6.5取整,即对11.5取整得11,11模2得1,1+5得6

这个问题不应该出现b=11,你要是有这样的代码,贴出来看看,到底出了什么问题,再作讨论。

因为最终式子为b=b+float,根据强制类型转换,结果始终与等号左边类型一致。这属于隐含的强制类型转换,看看书就知道了

#include int main( int argc, char* argv ){ int a=5,b=6; (++a==b--)?++a:--b; printf("a =%d,b=%d",a,b);}a =7,b=5

网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com