求几个从语言问题的答案和原因1.int i=010,j=10;printf("%d,%d",++i,j--);2.已知 w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&& (b=y>z)后,a,b的值是什么?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/05 11:52:24
![求几个从语言问题的答案和原因1.int i=010,j=10;printf(](/uploads/image/z/11618169-33-9.jpg?t=%E6%B1%82%E5%87%A0%E4%B8%AA%E4%BB%8E%E8%AF%AD%E8%A8%80%E9%97%AE%E9%A2%98%E7%9A%84%E7%AD%94%E6%A1%88%E5%92%8C%E5%8E%9F%E5%9B%A01.int+i%3D010%2Cj%3D10%3Bprintf%28%22%25d%2C%25d%22%2C%2B%2Bi%2Cj--%29%3B2.%E5%B7%B2%E7%9F%A5+w%3D1%2Cx%3D2%2Cy%3D3%2Cz%3D3%2Ca%3D4%2Cb%3D2%3B%E5%88%99%E6%89%A7%E8%A1%8C%E8%AF%AD%E5%8F%A5%EF%BC%88a%3Dw%3Ex%EF%BC%89%26%26+%28b%3Dy%3Ez%29%E5%90%8E%2Ca%2Cb%E7%9A%84%E5%80%BC%E6%98%AF%E4%BB%80%E4%B9%88%3F)
求几个从语言问题的答案和原因1.int i=010,j=10;printf("%d,%d",++i,j--);2.已知 w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&& (b=y>z)后,a,b的值是什么?
求几个从语言问题的答案和原因
1.
int i=010,j=10;
printf("%d,%d",++i,j--);
2.
已知 w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&& (b=y>z)后,
a,b的值是什么?
求几个从语言问题的答案和原因1.int i=010,j=10;printf("%d,%d",++i,j--);2.已知 w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&& (b=y>z)后,a,b的值是什么?
第一个输出9,10
先说i,赋值为010,意思就是8进制,也就是说010是八进制数,就是10进制的9.
printf是自右向左的,也就是说先计算左右边的数,然后到左边的,j--的意思就是先进行操作然后j再自减1,++i的意思是说先自加然后再进行对i的操作.最后输出的时候j还没有自减1,就输出了,也就是10,而i是自加了一之后才输出的,也就是9
第二个我看看
耽误了下,继续回答.第二个其实比较简单,
(a=w>x)&& (b=y>z); 这句的执行是这样的,&&这个运算符有一个特点,只要左边一项为真,则整个表达式为真,此时就不再计算右边的表达式.而一个等号表达式(比如这里的a=w>x)在C语言里面的意思就是永远为真,也就是说a=w>x 放到括号里面表示的意思就是真,所以&&运算为真,右边不再进行计算.
然后看看a的值,w的值是1,x是2,所以1>2是返回0赋值给a,到此可以得出结果输出是
0,2