问一道C语言的题目(解释一下..大概什么意思啊)

#include<stdio.h>
void main ()
{ int x=100,a=10,b=20,ok1=5,ok2=0;
if(a<b)
if(b!=5)
if(!ok1)
x=1;
else
if(ok2) x=10;
x+=5;
printf("%d\n",x);
}
c-free中的答案算出来是105啊!!!

#include<stdio.h>
void main ()
{ int x=100,a=10,b=20,ok1=5,ok2=0; //赋值
if(a<b) //如果a<b,赋值可知10<20,所以执行if下面的语句
if(b!=5)//b=20,所以b不等于5,所以执行if下面的语句
if(!ok1)//!ok1就是 !5,感叹号加一个不为零的数,结果为0,if(0)不执行if下面的语句
,if(1)执行if下面的语句
x=1; //以上说了,这句不执行
else//执行
if(ok2) x=10; //ok2=0,if(0)。。
x+=5; //不执行,因为if(0)
printf("%d\n",x); //x不变。。。还是100
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-25
if(a<b)满足条件
执行if(b!=5) 满足,
执行if(!ok1)
不满足
执行else if(ok2)不满足
执行x+=5;
printf("%d\n",x);
第2个回答  2008-10-25
x+=5 //执行