有以下程序: 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);

admin2010-01-10  17

问题 有以下程序:    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、编译时有错,无结果

答案2

解析 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选项为所选。
转载请注明原文地址:https://jikaoti.com/ti/kOI0FFFM
0

最新回复(0)