问题
单项选择题
有以下程序:
main()
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
执行后输出结果是( )。
A.2
B.3
C.4
D.编译时有错,无结果
答案
参考答案:B
解析: C语言规定else总是和离它最近的if语句配对。故第一个else和第一个if配对,第二个else和第二个if配对。首先计算第一个if后面的表达式a>b>c,表达式a>b为1,表达式1>c为0,所以执行else后面的语句。先执行if后面的表达式,c-1>d为真,值为1。1=1为真,执行primf语句。所以,B选项为所选。