C语言各类数值型数据间的混合运算

先给个例题,答案在最后
假设已说明 i 为整型变量,f 为单精度实型变量,d 为双精度实型变量,则表达式10+‘a’+i*f-d 最后所得值的数据类型为( )
A.字符型 B.整型 C.单精度实型 D.双精度实型

整型、单精度型、双精度型数据都可以混合运算。字符型数据可以与整型通用,也就是说,整型、实型(包括单、双精度)、字符型数据间可以混合运算。

⚠️注意,不同类型的数据类型要先转换成同一类型,然后进行运算。如下图所示
在这里插入图片描述

1、图中横向向左的箭头表示一定要转换。

例如,float型数据在运算时一律转换成双精度,以提高运算精度(即使是两个float型数据相加,也先都化成double类型,然后再相加)。
字符型数据必定转换成整数,short型转换成int型。

2、纵向的箭头表示当运算对象为不同类型时转换的方向。

例如,int型与double型数据进行运算,先将int型的数据转换成double型,然后在两个同类型(double型)数据间进行运算,结果为double型。

说明:
(1)当单、双精度浮,点型数据赋给整型变量时,浮点数的小数部分将被舍弃。

(2)当整型数据赋给浮点数变量时,数值上不发生任何变化,但有效位增加。

(3)如果算术运算符两个运算对象都为整数,那么,运算将按照整型数据的运算规则,这就意味着对于除法运算来讲,其结果的小数部分将被舍弃。在这种情况下,即使运算结果赋给浮点型变量也是一样的,结果的小数部分也将被舍弃。

例如:
float b;
int a=8;

b= 20/a;
b的结果是2.0,而不是2.5。

(4)只要某个算术运算对象中有一个是浮点型数据,其运算将按照浮点型规则来进行,即运算结果的小数部分被保留下来。

答案:D

  • 9
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值