在 C++ 代码中整型变量 $X$ 被赋值为 $20.24$,则 cout << (X++, X+1) / 10 执行后输出的是 $2.124$。( )
答案B。根据C++语法规则分析各选项。注意赋值、运算、类型等细节。
仔细审题,注意每个选项的语法细节。区分合法写法与错误写法。
【考点】数据类型隐式转换|运算符优先级|逗号表达式
1. 🎯 考纲定位:C++基础语法与表达式求值,命题人卡住的是"变量类型决定存储规则"这一底层认知。考生常误以为赋值操作会保留小数,却对整型截断毫无防备。
2. 🧠 解题思维:X是整型,20.24赋值后X实际=20(小数部分被丢弃)。后缀自增X++先取值20再自增为21,X+1此时为22。逗号表达式求最右结果,故整体值为22/10=2。输出2而非2.124。
3. 🪤 陷阱拆解:误选A者通常陷入三个误区——把X++当成前缀自增(先自增后取值)、误以为逗号表达式取最左值、最致命的是忽略整型存储规则而直接按浮点算。命题人特意用20.24这个看似精确的小数,诱导考生"认真计算"却违反类型规则。
4. 🔄 反命题思维:若X改为浮点型,答案立刻变2.124;若表达式改为(X++,X+1)/10.0,则输出2.2。刷到类似题先问:这题在考我数据类型的隐蔽规则,还是运算符结合顺序的盲区?