问题:
[单选] 下面程序段的输出结果是( )。int i=32770:printf(”%d\n”,i);
A . 32769
B . 32767
C . -32766
D . 输出不确定数
参考答案:C
参考解析:
C。【解析】在TurboC2.0环境中,int数据类型在内存中只占两个字节,其表示形式为二进制补码形式,所以范围是:一32768~32767,即l0000000000000002~01111111111111112(首位为符号位)。而32770转换为二进制为10000000000000102,其符号位为l故输出时为.一个负数,而它的绝对值是求负后的结果,补码求负的方法是:先按位求反,再加一。所以求得的绝对值为01111111111111012+1—0111111111111102,即十进制的32766。综上所述,选项C正确。