输出的结果int k,m,n; n=10; m=1; k=1; while(k<=n) m*=2; printf("%d\n",m);

如题所述

这里的while会进入死循环。不会有输出结果
int k,m,n; //定义k,m,n三个整型变量
n=10; m=1; k=1;//给k赋初始值1,m赋初始值1,n初始值10
while(k<=n) m*=2; //当k小于n的时候执行while语句,也就是m*=2语句。这里k等于1,n等于10,while条件成立,且内部语句体中不会改变k,n的值,所以一直会执行while语句。
printf("%d\n",m);//输出m的值,因为while一直执行,不会执行到这一句输出。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-01-12
没有输出,这是个死循环,k的值永远少于n,循环无法跳出
如果写成
k=1;
while(k<=n)
{
m *=2;
k ++;
}
输出应该是1024,因为m = 1 * 2^10 = 1024
第2个回答  2012-01-12
果int k,m,n; n=10; m=1; k=1; while(k<=n) m*=2; printf("%d\n",m);
while(k<=n) m*=2;
这个循环其实是计算2的n次方
2的十次方为1024
结果是1024本回答被网友采纳
第3个回答  2012-01-18
死循环,没有改变循环变量的语句,所以上是死循环!
第4个回答  2012-01-12
就是循环的调用啊!即2的10次方
相似回答