下面程序段的输出结果是( )。 int i=32770; printf("%d\n", i);

admin2010-05-22  39

问题 下面程序段的输出结果是(  )。    int i=32770;    printf("%d\n",  i);

选项 A、32769
B、32767
C、-32766
D、输出不确定数

答案4

解析 在Turbo C 20环境中,int数据类型在内存中只占两个字节,其表示形式为二进制补码形式,所以范围是:-32768~ 32767,即10000000000000002~01111111111111112(首位为符号位)。而32770转换为二进制为10000000000000102其符号位为1故输出时为一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为01111111 111111012+1=0111111111111102,即十进制的32766。综上所述,选项C正确。
转载请注明原文地址:https://kaotiyun.com/show/2yWp777K
0

最新回复(0)