已知:char w;int x;float y;double z;则表达式 w*x+z-y 的结果为( )类型。
A、float B、char C、int D、double
在C或C++语言中,当表达式中存在不同类型的操作数时,会发生类型提升(type promotion)。具体来说,较小的数据类型会被提升到较大的数据类型的精度。这里的类型提升规则通常遵循以下顺序(从低到高): char -> int -> float -> double 根据题目中的表达式 w*x+z-y:
w 是 char 类型,但与 int 类型的 x 相乘时,w 会被提升为 int 类型。
int 类型的 w*x 结果是 int 类型。
z 是 double 类型,任何与 double 类型的操作都会导致其他操作数提升为 double 类型。
因此,w*x 的结果会从 int 类型提升到 double 类型,以便与 z 相加。
y 是 float 类型,在与 double 类型相减时,y 也会被提升到 double 类型。 最终,整个表达式的结果是 double 类型,因为这是表达式中最高的数据精度类型。 所以,正确答案是: D、double
double>float>int>char
D char<float<short<int<double,遇到高级以高级为主
zhangbou 回复 17671864090: float在int和double中间
级别由低向高转换。
D
用户登录可进行刷题及查看答案
登录后提交答案