问题 单项选择题

下面程序输出的结果是( )。
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.不确定的值

答案

参考答案:C

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

选择题
单项选择题