c语言问题求大侠解答

来源:百度知道 编辑:UC知道 时间:2024/06/04 03:50:49
main()
{
int x=100,y=10,a=30,b=20,k1=10,k2=6;
if (a>b)
if(b!=10)
if(!k1)x=1;
else if(k2) x=10;
else x=20;
printf("x=%d\n",x);
}程序运行结果是x=10.
本人C语言刚学习,菜鸟级。请大侠详细解答。越详细越好!!跪谢!!

main()
{
int x=100,y=10,a=30,b=20,k1=10,k2=6;
if (a>b) /*a=30,b=20,a>b成立*/
if(b!=10) /*b=20,b!=10成立*/
if(!k1)x=1; /* (!k1)=0所以运行else里的,接着判断if(k2),k2=6,为真,运行x=10,最后结果就是x=10*/
else if(k2) x=10;
else x=20;
printf("x=%d\n",x);

就按照程序进行的步骤来解说:
1.第一个if语句判断a是否大于b,如果大于则执行下面的步骤,反之,则直接输出x。该程序中a>b,所以继续执行下面的if语句。
2. 第二个if语句判断b是否等于10,如果不等于则执行下面的if语句,反之则直接输出x,该程序中不等于,继续执行下面的if语句。
3. 判断!k1是否为真,也就是大于0,如果大于0则执行x=1赋值语句,反之则执行else if语句,该程序中k2>0,所以成立 则执行x=10赋值语句。
4 输出x==10.