若x=6 ,y=5 则表达式int max=x>y?x:y
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/22 22:25:29
值为1由于!1=0;0||y--先取Y=1则0||1值为1再问:看不懂这一行!x||y--!1为啥等于0!是啥意思||不是“或”的意思吗?0||1为啥等于1再答:!为取非的意思;0||1意思为有一个1
x=0先判断y==z,结果为否,即0然后0赋值给x
同意楼上的说法,!((x
0,优先级()最高,其次++,再*/%++a%3*(int)(x+y)%2/48%3*7%2/42*7%2/414%2/40/40
右括号,先算括号里面的,a=3,b=4,与门运算,两边都是非0数才为1,否则为0;如图:
当然是2.x++的返回值是17,不是18.所以结果是17*1/6=2要充分体会操作符的功能和其返回值,像x++这样的右置+操作符虽然会使x的值加1,不过其返回值却是加之前值.
%是取余,/是取整7%3=1;7/3=2;
一共出现这么几个操作符:(),+,*,%,/,()优先级顺序依次为:(分块),(强制类型转换),*,+,/,%,其中/和%优先级相同所以运算的顺序应该是:1.执行分块(x+y)=2.5+4.7=7.2
答案是A;x
x++是此表达式运算后再对X值进行加1,因此表达式运算为17/6答案为2
x+=++y++y=3;x+=3;->>>x=x+3=1+3=4
按如下顺序运算:(x+y)=7.2(int)(x+Y)=7a%3=1a%3*(int)(x+y)%2/4=1*7%2/4=7%2/4=1/4=0(注意,所有变量均是Int型)x+0=2.5所以答案是2
按从左到右结合律计算,优先顺序,求余-〉乘法,除法-〉加法a%3=1(int)(x+y)=71*7=77%2=11/4=0x+0=2.5
先计算x+y=9,然后比较9与z的大小,结果是false,false进行!运算,结果是true,然后与f进行&&运算结果是true
应该是11从左向右执行,然后整个逗号表达式的值是最右边一个值#includevoidmain(){intx=3,y;intz=(x=3,y=6,x++,y++,x+y);printf("%d",
结果是1.因为赋值语句的值取决于赋值对象的值,所以(y=0)表达式的值是0,所以执行分号后的语句.此时执行赋值语句后y=0;执行++y;先加一再取值所以整个表达式的值是1再问:把y=0改成y=其他数值
inta=7;floatx=2.5,y=4.7;x+a%3*(int)(x+y)%2/4=>4.7+7%3*(int)(2.5+4.7)%2/4=>4.7+1*(int)(7.2)%2/4=>4.7+
||是逻辑或,就是A||B,A和B里面有一个是真的就是真的C里只要不是0就是真,0就是假这题x
(!x||y--)是1x=2,!x是0,这样开始判断y--,而y--是先执行y,然后在进行--,所以整个表达式是1,然后y变成0注意,如果是(!x||--y)那么表达式是0,这时候先执行--y,y变成
这个表达式会先执行y++==--x,y++==--x的结果为true,执行结束后y==3x==2;接着执行y++,执行结果y==4;所以这个表达式的值为3.再说一下y++==--x:++(或者--)运