int x=3,y=2;

printf(“%d,x*=y+8/5); 结果为什么为9 求解

*= 的优先级最低,会先算 y+8/5 的结果。
8/5 是整数除以整数,结果只会得到整数部分的1,然后 y+1 = 3,
x *= 3 结果为 9 赋值给 x,再将 x 送入 printf 的格式化字符串中。
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-08
因为都是整形,8/5得到的结果就直接取整了,等于1

y+1=3
x*3=9
第2个回答  2015-05-08
这是运算符执行顺序的问题。先执行8/5=1。然后执行y+1=3.最后执行x=x * 3=3*3=9
第3个回答  2015-05-08
x*=y+8/5
相当于
x=x*(y+8/5)=3*(2+1)=9

int x=3,y=2; 则表达式(y++==--x)?y++:x++的值为多少
这个表达式会先执行y++==--x,y++==--x的结果为true,执行结束后 y==3 x==2;接着执行y++, 执行结果y==4;所以这个表达式的值为3。再说一下y++==--x:++(或者--)运算写在变量左边和写在变量右边的值是不一样的,写在左边代表想运算再取值,写在右边表示先取值再运算;所以 y++表...

int x=3,y=2;
= 的优先级最低,会先算 y+8\/5 的结果。8\/5 是整数除以整数,结果只会得到整数部分的1,然后 y+1 = 3,x *= 3 结果为 9 赋值给 x,再将 x 送入 printf 的格式化字符串中。

[判断题 1 ] int x=3,y=2; 则表达式(y++==--x)?y++:x++的值为3。_百度...
y++是先用再加,--x是先减再用 (y++==--x)?y++:x++-->y++先使用在加此时为2,--x先减再用此时为2 当判断结束后,y=3,x=2;这个时候前面的判断满足条件所以输出y++,y++又是先用在加,此时y=3 所以输出为3,但是y会变为4 ...

Int x=3,y=2;则表达式printf(“%d”,(x-=y,x*=y+8\/5));的结果是什么...
x-=y x=3-2=1 x*=y+8\/5 x=1*2+1=3 所以结果为3

跪求:若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+...
int x=3,y=2;float a=2.5,b=3.5;(x+y)%2+(int)a\/(int)b 1.计算x+y=3+2=5;2.(x+y)%2表示除以2的余数。5\/2=2余1 3.(int)a\/(int)b;强制转换a=2,b=3;a\/b=2\/3=0 所以结果是1+0=1;注意:1.float型转换为int型,只取整数部分不产生四舍五入等效果。如float型...

C语言 int x=3,y=2; 则计算表达式(x=5)||(y=6*x)后变量y的值是__百 ...
还是2。因为或运算符有短路求值的特性,前面一个条件只要为真就不计算第二个了。程序执行了x=5的操作后,x被赋值5,然后把5返回给或运算符判断,因为5 >0,返回为真,或运算符就短路求值而不计算y=6*x这个赋值表达式,y还是2。

int x=3, y=2, z=1; (x=5) || (y=6*x); 则输出x,y的值分别是什么?为什 ...
int x=3, y=2, z=1;(x=5) || (y=6*x);这一步的话这里的运算有一个或 或运算有一个特点,就是前面如果有一项为真的话后面的运算就不进行了。x=5这个之后x是5 非零是真值 那么后面的y=6*x就不做了。所以 最后的结果是 x=5 y=2(不变)

c语言 设有以下语句:int x=03,y=02,z=01;那么语句printf("%d",x|y...
答案是C 首先计算~Z得到结果后再和y进行与运算,这时结果为2 最后再与x进行或运算,3|2=3

若有以下定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为...
(x+y)%2+(int)a\/(int)b 其实就是 (3+2)%2+(int)2.5\/(int)3.5 首先执行括号里面的内容,得到表达式:5%2+(int)2.5\/(int)3.5 小数强制转换成整数,只会得到整数部分!所以得到表达式:5%2+(int)2\/3 "%"是取余的意思,所以5%2得到的余数是1 2\/3是一个小于1的小数,转化成...

C语言中:int x=3,y=2;则表达式x+=x*=y+8的值为?
y+8=10 x*=10 => x=x*10 => x=30 x+=30 => x=x+30 => x=60

相似回答