C语言 int k; while(k!=0) k=k-1; printf("%d",k); 输出结果是什么?

如题所述

最终输出结果是0,我也做到这道题了,握手。

原因如下:

由于k没有赋值,所以其值是不确定的。这个值可能为两个情况:小于0,或者大于等于0

第二种情况好理解,最终输出结果当然是0;

而k小于0,情况是这样的:

int的取值范围为: -2^31——2^31-1,即-2147483648——2147483647;

k会经过循环不停地减1,直到变为-2147483648,这时候再减1就溢值了,k会变成2147483647,最终经过循环变为0

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-10-23
#include <cstdio>/*原题*/
#include <iostream>
using namespace std;
int main ()
{
    int k;//没付出值啊
    while(k!=0)
    {
        k-=1;
        cout<<k<<" ";
    }
    return 0xFFFFFF
}

没付初值你让我怎么回答

这样会出现编译错误的。…………

追问

这个的结果是0 但我不知道为什么。。。这是浙大教授给我们出的题

本回答被网友采纳
相似回答