19.以下程序的输出结果是 main( ) {int x=2,y=-1,z=2; if(x<y) if(y<0) z=0; else z+=1;

如题所述

结果是Z=2;
分析:关键是看else与哪个if配对;由于else最靠近第二个if,所以是与第二个if配对的(就近原则),也就是第一个if没有else,从整个程序来说,先判断第一个if语句,因为x>y,所以不执行第一个if里面的所有语句(也就是不执行这两个语句:if(y<0) z=0; else z+=1;),也就是z没有变,依旧是2,
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-22
main( )
{
int x=2,y=-1,z=2;
if(x<y)
if(y<0)
z=0;
else
z+=1;
}
因为刚开始你给Z赋值的是2 ,然后在实现else语句,Z自加1,所以如果输出的是z的话好像是3吧!
第2个回答  2011-10-22
main( )
{
int x=2,y=-1,z=2;
if(x<y)
if(y<0)
z=0;
else
z+=1;
}
这样比较清楚。
如果输出Z的话,就是2.本回答被网友采纳
第3个回答  2011-10-22
你的问题就是在else到底和谁配对,,,告诉你吧:。。。。“else总是跟它最接近的if配对”。。。 受人以鱼还不如授之以渔。。。。。
第4个回答  2011-10-22
以下程序的输出结果是 main( )
{
int x=2,y=-1,z=2;
if(x<y)
if(y<0)
z=0;
else z+=1;
x=2,y=-1,z=3