下面程序输出的结果是( )。 main() { int x=100,a=10,b=20,ok1=5,ok2=0; if(a<b) if(b!=15) if(!ok1) x=-i; else if(ok2) x=1

admin2010-01-10  23

问题 下面程序输出的结果是(  )。    main()    {  int x=100,a=10,b=20,ok1=5,ok2=0;    if(a<b)    if(b!=15)    if(!ok1)  x=-i;    else if(ok2)  x=10;    x=1;    printf("%d\n",x);    }

选项 A、-1
B、0
C、1
D、不确定的值

答案4

解析 如果没有大括号,else总是与它上面的最近的if配对。所以本题中的elseif(ok2)是与if(!ok1)配对的,首先因为a<b成立所以进一步判断b!=15也成立,再进一步判断!ok1,为假,不执行子句X=-1;继续判断ok2是否为真,ok2亦为假,故子句x=10;也不执行,最后让x=1;输出x,所以结果应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/TGWp777K
0

最新回复(0)