5.0 是一个 int 类型常量。( )
看到5.0先别急着想数值大小,直接盯住那个小数点。在C++里,有没有小数点(或指数形式)是区分整数和浮点数的铁律,这也是这题唯一的破题点。
很多学生容易把'5.0'和'5'混为一谈,觉得数值相等类型就差不多。还有的会想当然认为'0'后面加小数点只是为了好看,或者误以为C++会自动把浮点字面量转成int。其实命题人就是卡这个惯性思维,让你忽略小数点这个符号本身就在定义类型。
【考点】数据类型定义|常量字面量|浮点数与整数
GESP二级《C++程序设计》明确要求区分基本数据类型。命题人特意选5.0,就是要卡住'看到数字就默认是整数'的惯性思维。这是新手最容易栽跟头的地方——他们往往只记住了'5是int',却忽略了小数点这个符号本身就在定义类型。
看到5.0立刻盯住小数点,这是判断浮点数的铁律。C++规定任何带小数点的字面量默认是double类型,除非显式加上后缀。这类题的通法就是'找小数点、找后缀、看类型声明'——整数字面量不含小数点,浮点字面量必须含小数点或指数形式。所以5.0只能是double,绝不可能是int。
错误选项A利用了'数值等价'的错觉。5和5.0在数学上相等,但在C++里类型完全不同。命题人没写'5.0的值为5',而是直接说'是int类型',就是要让你区分字面量本身。如果题目说'5.0可以赋值给int',那就要考虑隐式转换,但直接说'是'就错了。这里最阴险的是绝对化表述'是int类型',忽略了C++里类型由字面量语法决定而非数值决定。
如果把5.0改成5L,那它就是long类型;改成5.0f才是float。反过来,如果题目问'5.0能隐式转成int吗',那就要看是否允许截断。这类题的核心永远是'字面量本身'而非'转换结果'。刷到类似题先问:命题人是不是在考'字面量类型'还是'类型转换'?
【考频与趋势】变量与常量在题库共考过77题,覆盖5个考试级别(2023-2025);逐年分布:2023年30题、2024年26题、2025年11题、null年10题;分赛事:GESP一级40题、GESP二级15题、GESP四级12题、GESP三级8题、CSP入门级2题。基本数据类型题库共考过267题,覆盖12个考试级别(2013-2026);逐年分布:2013年1题、2016年1题、2019年3题、2023年63题、2024年34题、2025年26题、2026年119题、null年20题;分赛事:GESP一级81题、GESP二级48题、GESP四级40题、GESP三级38题、GESP五级21题、GESP六级18题、GESP七级9题、CSP入门级5题、GESP八级3题、CSP提高级2题、NOIP提高组初赛1题、NOIP普及组初赛1题。
【预测】从数据看,2026年基本数据类型考题激增到119题,说明该考点持续高频。未来大概率会继续在GESP二级、四级等中低级别高频出现,形式可能更隐蔽,比如混入后缀或考察隐式转换边界。暂无足够依据预测具体题型变化。