银行信用风险管理分析:c语言试题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/02 07:23:26
【2.24】下面程序的输出结果是____。
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<-3;j++)
{ if(j%2)
continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
A) x=4 B) x=8 C) x=6 D) x=12

参考答案A,请人分析此程序的运行详细过程。

for(j=0;j<-3;j++)
{ if(j%2)
continue;
x++;
}
上面那一段是没用的语句,因循怀条件是j<-3,初始值便不符合,故不会循环
所以程序等于
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
x++;
}
printf("x=%d\n",x);
}
这便简单了:)

答案应该是A.
其中遇到continue语句时,直接结束本层for循环,进行下一步.
也就是说本题for(j=0;j<-3;j++)
{ if(j%2)
continue;
x++;
}
其实没有用,是迷惑用的.应这样执行:i=0,x=0,x=x+1,x=1,x=x+1;
i=1,x=2,x=x+1,x=3,x=x+1.最后输出时,x已经等于4了.

for(j=0;j<-3;j++)
至少这句就不对

没错是4,因为X已经被加过3次了。第一个FOR语句中还有一个x++,中间那个for语句没有任何作用的。

x=0