写出下面表达弍运算后的结果。设x=1,y=2,z=3,u=false。
(1) y+=z--/-+x;
(2) u=!((x>=--y||y++<=z--)&&y==z)
(3) u=!((x>=--y|y++<=z--)&&y==z)
(4) u=y>z^x!z
(5) x>y?(x>z?x:y):(y>z?y:(z>x?z:x))
我的答案:
1)运行的结果是 x=1 y=-1 z=2
因为z--的值为3,z的值为2 所以y+=3/(-1)=-3 y=-3+1=-2不是吗,但运行的结果是y=-1啊,为什么呢?
2)u=true u=!((1>=1||2<=3)&&3==2)=!(true&&false)=!false=true
5)1>2为假,则执行 (y>z?y:(z>x?z:x));因为2>3为假,则执行(z>x?z:x);因z>x为真,则输出x即13、4题根本就不会做了,因为有|和^运算,这是两个二进制数之间才有的运算啊??我头都大了!
(1) y+=z--/-+x;
(2) u=!((x>=--y||y++<=z--)&&y==z)
(3) u=!((x>=--y|y++<=z--)&&y==z)
(4) u=y>z^x!z
(5) x>y?(x>z?x:y):(y>z?y:(z>x?z:x))
我的答案:
1)运行的结果是 x=1 y=-1 z=2
因为z--的值为3,z的值为2 所以y+=3/(-1)=-3 y=-3+1=-2不是吗,但运行的结果是y=-1啊,为什么呢?
2)u=true u=!((1>=1||2<=3)&&3==2)=!(true&&false)=!false=true
5)1>2为假,则执行 (y>z?y:(z>x?z:x));因为2>3为假,则执行(z>x?z:x);因z>x为真,则输出x即13、4题根本就不会做了,因为有|和^运算,这是两个二进制数之间才有的运算啊??我头都大了!
相当于y = y + ((z--) / (x * 1 * -1))
= 2 + (3/-1)
= 2 + (-3)
= -1第3、4题先把十进制转成二进制,再列个竖式算就行了,没什么复杂的啊
(1) y+=z--/-+x;
执行顺序:
+x 得到 x 此时的值:1
-x 得到 -x,此时 -x = -1;
z/-x 也就是 3/-1 ,得到 -3;
y+ -3 也就是 2+ -3 = -1;
z-- 此时 z = 2;
y = -1;(2) u=!((x>=--y||y++<=z--)&&y==z) y = -2;
1>=-2 得到 true
短路算法,略过y++<=z--
-2 == 2 得到false
true&& false得到 false
!false得到 true(3) u=!((x>=--y|y++<=z--)&&y==z)
(4) u=y>z^x!z
(5) x>y?(x>z?x:y):(y>z?y:(z>x?z:x))这些表达式是连续的运算的还是都是同样的初始值运算的?
执行顺序:
+x 得到 x 此时的值:1
-x 得到 -x,此时 -x = -1;
z/-x 也就是 3/-1 ,得到 -3;
z-- 此时 z = 2;
y+ -3 也就是 2+ -3 = -1;
y = -1;刚才搞错一个顺序了。
想帮你做第三吧
x>=--y false
y++<=z-- true
y==z false
所以现在可以写成
u=!((false||true)&&false)
false||true= true在继续
u=!(true&&false)
u=!(false)
u=true!也不知道对不对!自己也差点资料吧
所以没必要把上题的值带入下提
大家一起学习阿
HOHO
x=1 y=2 z=3
u=!((x>=--y||y++<=z--)&&y==z)x>=--y 就是 1>=1 应该为true啊 此时 x=1 y=1
y++<=z-- 就是 1<3 应该是true啊 此时 y=2 z=2晕 我怎么得到的是false 啊
请指教
1>2 取(y>z?y:(z>x?z:x))
2>3 取(z>x?z:x)
3>1 取z
所以为3
过程好像不对
第3题应该是这样的
(3) u=!((x>=--y|y++<=z--)&&y==z)
想帮你做第三吧
x>=--y true
y++<=z-- true
y==z false
所以现在可以写成
u=!((true|true)&&false)
因为true|true= true所以可以写成
u=!(true&&false)
u=!(false)
u=true!这下就对了
搂住最好在程序里验证一下啊
因为比较忙就不再帮你测试了
现在帮你看看第四个
首先说明^ 的意思是按位异或,据个例子
0101
1100
----
1001
意思就是0101^ 1100=1001
现在我们来看看你的题
y>z=0 而x!z=1
所以u=0^1
答案就不用说了吧。