单选题
有以下程序
#include<stdio.h>
main()
int a=1,b=2,c=3,d=0;
if(a==1&&b++==2)
if(b!=2‖c--!=3)
printf("%d,%d,%d/n",a,b,c);
else printf("%d,%d,%d/n",a,b,c);
else printf("%d,%d,%d/n",a,b,c);
程序运行后的输出结果是______。
A.1,2,3 B.1,3,2 C.1,3,3 D.3,2,1
【正确答案】
C
【答案解析】[解析] a、b、c、d初始值分别为1、2、3、0。第一个if中,a==1成立,但由于运算符是&&,还需判断第二个表达式,b++==2,它同时也成立,之后b=b+1,此时b=3,执行第二个if语句,此时b!=2成立,由于运算符是‖,不管后面一个表达式的值是不是1,其整个表达式的值总是1,因此第二个表达式不执行,最后打印出a,b,c的值是1,3,3。