大学C语言问题 执行“int a,b,c;a=b=c=1;--b&&++c||++a;"后,变量a

2026-01-11 01:34:59
推荐回答(4个)
回答1:

首先你要把整个结构弄清楚,&&的优先级高于||,所以上面的式子等价于(--b&&++c)||(++a),

先看(--b&&++c),--b导致b的值为0,所以(--b&&++c)必然为假,所以c就不会加一了,C的值还是1。然后(--b&&++c)为假并不能直接断定(--b&&++c)||(++a)的真假,因为||需要两边为假才是假,所以需要判断右边的(++a),这里a自加一次变为2,(++a)为真,整个表达式(--b&&++c)||(++a)的值为真。最后a,b,c的值分别是2,0,1

回答2:

你的代码是顺序结构;
所以运行的时候是先对a进行赋值,也就是a=1;
至于后面对b和c的运算,并不能改变a的值。
第一步 int a,b,c;

第二步 a=b=c=1;

第三步 --b&&++c||++a;//这个地方只有++a能改变啊的值 b和c对a的值不影响

第四步输出a的值;

回答3:

答案应该是2 1 1

回答4:

这判断式a,b,c应该是2-0-2啊,怎么是201,还有我想问这式子对吗