else
printf(%d%d\n",b,a);
}
A, -1 1 B, 0 1 C, 1 0 D, 0 0
要详细过程
...main() {int a=-1,b=1,k; if((++a<0)&&!(b--<=0))printf("%d%d\\n...
选C if条件中++a是先把a加1(加1后a等于0)后再和0比较,此时a不小于0,条件不成立所以它就不再判断&&后面的条件了。之后就执行else语句打印b==1,a==0;所以选C
...main() {int a=-1,b=1,k; if((++a<0)&&!(b--<=0))printf("%d%d\\n...
printf(%d%d\\n",b,a);应该是printf(%d%d\\n",a,b);吧,否则没答案,如是选A
...stdio.h'main(){ inta=-1,b=1,k;if((++a<0)&
【答案】:与运算两边的语句必须同时为真时,结果才为真。当执行完if(++a<0)&&!(b--<=0))时,a,b的值已经发生了变化。
main() { int a=-1,b=1,k; if((++a<0)&&!(b--<0)) printf("%d%d\\n...
即b--没有执行 进入else printf,先打印b,由于b没有进行过任何操作,所以b=1,然后打印a,a=0
...main() {int a=-1,b=1,c; c=(++a<0)&&!(b--<=0); printf...
include "stdio.h"void main(){ int a=-1,b=1,c;c=(++a<0)&&!(b--<=0);\/\/C的值是(++a<0)&&!(b--<=0)这个表非常式的结果 \/\/(++a<0)是先a加1再判断是不是小于0 \/\/++a之后a=0 a<0不成立,因为这里&&是与符号,要两个都成立的时候才行的,前面已经有一个不成立了,\/\/...
...main() {int a=-1,b=1; if((++a<0)&&!(b--<=0)) printf("%d%d\\n...
10 用Visual C++编译执行后的答案
下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0) &&(!(b--<=0...
首先a++<=0 这个为真,所以为1 但这个执行后a要+1 也就是a=0 然后b--<=0 这个为假 但前面还有个! 也就是非假 即为真 也是1 b要-1 也就是b=3 那么1&&1 也就是真 为1 那么k也就是1 k=1
main() { int a=-1,b=1,c; c=(a++<=0)&&!((b--<=0)); printf("%d,%d...
输出结果为0,0,1 初始a=-1,语句 c=(a++<=0)&&!((b--<=0)); 中的a++,a先参与&&的运算 ,-1<=0就是真,然后a自加1,则最后a=0;再说b,初始b=1,(b--同a++一样,先参与运算,再自减1,结果b=0)1<=0是假,但是有非运算符,!(1<0),就是真,真和真&&结果就是真,c=...
1. main( ) { int a = –1, b = 4, k; k=(+ + a <0)&& !(b––< 0...
输出:0,0,4 k=(++a<0)&&!(b--<0);表达式中,首先计算(++a<0)&&!(b--<0);在逻辑与运算中,如果前面表达式为true,才去进行&&后面的运算,现在(++a<0)为false,所以不进行后面的(b--<0).运算结果只对a进行了一次自加就把值赋给了k,k = false = 0;所以输出0,0,4。
...main() {int a=-1,b=4,k; k=((++a<0)&&(!b--<0)); cout<<k<<a<<...
第一种情况 估计是 先执行a<0 然后++a, b<0,b-- 之后在取非 ,于是整个结果为true.第2种情况是 先a+1.所以a=0; 之后 先!b,因为b为正数!b=0 (!b)-- 然后--.最后就是第2种结果。不过这个好混乱。算了 你还是按照自己的想法来。多加几个括号,反正括号的优先级只最高的。这样 你...