问题 单项选择题

以下程序的输出结果是( )。
#include<stdio.h>
main()
int a=1,b=3;
if((++a<0)&&!(b--<=0))
printf("%d,%d\n",a,b);
else
printf("%d,%d\n",b,a);

A) 2,2
B) 1,3
C) 3,2
D) 3,1

答案

参考答案:C

解析: 解答本题的关键在于if语句条件中的表达式。初始时a=1,b=3,所以++a=2>0,因此++a<0为假;因为是进行逻辑与(&&)运算,在&&的一个运算对象为假的前提下不用判断第二个运算对象的真假,就可以直接得出整个表达式的值为逻辑0,所以执行else语句。

多项选择题 案例分析题
单项选择题