问题
单项选择题
以下程序的输出结果是( )。
main()
int a=-1,b=4,k;
k=(++a<0)&&!(b--<=0);
printf("%d%d%d\n"m,k,a,b);
A.104
B.103
C.003
D.004
答案
参考答案:D
解析: &&的优先级高于=,先计算&&左侧的表达式++a<0。先对a加1再与0比较大小,a=-1+1=0,++a<0为假即0,&&左侧的表达式的值为0,不再计算&&右侧的表达式的值,因此b的值不变仍然为4,整个逻辑表达式的值为0,则k被赋值为0。输出的结果为004。