题目
若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数( )
若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数( )
题目解答
答案
错
解析
考查要点:本题主要考查对C语言中实型变量与整型数赋值关系的理解,重点在于区分变量的存储类型与赋值时的类型转换。
解题核心思路:
- 实型变量(如
float、double)用于存储浮点数,其本质是二进制科学记数法表示的近似值。 - 整型数(如
int)是精确的整数,无小数部分。 - 赋值兼容性:C语言允许将整数直接赋值给实型变量,此时编译器会隐式转换整数为对应精度的浮点数。
- 关键矛盾点:题目结论认为“实型变量存放整型数”,但实际存储的是浮点数形式,而非原始整型数。
步骤解析:
- 赋值语法合法性:
语句a = 10在语法上是合法的。若a是实型变量(如float a;),编译器会将整数10转换为浮点数10.0,并存入a中。 - 存储本质分析:
实型变量存储的是浮点数的二进制形式(如float占32位,double占64位),而非整数的二进制形式。例如,a = 10后,a的内存中存储的是10.0的浮点数编码,而非整数10的二进制1010。 - 结论辨析:
虽然赋值整数给实型变量是允许的,但变量本身始终存储浮点数。因此,实型变量中存放的是浮点数,而非整型数本身。