问题 单项选择题

以下程序的输出结果是( )。
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。

填空题
多项选择题