解题思路:
有两个变量a和b,在执行了如下代码后:
a =32768;
b =a;
printf("%d %d\n",a,b);
输出两个数:32768 -32768
请问a和b分别是以下哪种类型?
A. bool B. char C. short D. int E. float F. double
printf("%d %d\n",a,b);要求a,b为整型,只有C、D是整形;
short数据长度16位,数值范围:-32768~32767
int数据长度32位,数值范围:-2147483648~2147483647
short超过32767,溢出;
计算机储存系统使用补码标识:
正数补码与原码相同,
负数补码除符号位其余各位与原码相反,然后+1;
32767的二进制数是0111 1111 1111 1111, 是一个正数
32768的二进制数是1000 0000 0000 0000,1表示的是负数,计算机就理解成这是个负数了,即-32768
注意事项:
参考代码:
#include<stdio.h>
int main()
{
printf("D C\n");
return 0;
}
0.0分
28 人评分
C语言训练-素数问题 (C语言代码)浏览:1699 |
拆分位数 (C语言代码)浏览:1361 |
字符串的输入输出处理 (C语言代码)浏览:1021 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
理财计划 (C语言代码)浏览:494 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:569 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:820 |
C二级辅导-公约公倍 (C语言代码)浏览:693 |