若有一下类型标识符定义:char c = 'c'; int a = 4; float f = 3.14; double d = 1.212? 10

若有一下类型标识符定义:charc='c';inta=4;floatf=3.14;doubled=1.212;则表达式c+a/(int)d+f的结果类型是A.floatB... 若有一下类型标识符定义:char c = 'c'; int a = 4; float f = 3.14; double d = 1.212;则表达式c + a/(int)d + f的结果类型是
A.float B.char C. int D.double
展开
 我来答
Yuqi_Tan

2021-05-21 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3460万
展开全部
char c='c';
int a=4;
float f=3.14;
double d=1.212;
表达式:c+a/(int)d+f的结果类型是:
A.float B.char C.int D.double
按照计算顺序:
第一步:先做圆括号内的类型转换,d本来是double型(双精度浮点型) ,结果(int)d后,d变成int型(整型);
第二步,做除法,因为被除数和除数都是整型,系统自动做整型除法,得到的结果也是整型;
第三步,做前面的加法,c是char型(字符型),系统按照int型对待,这样两个加数都是int型,结果仍然是int型;
第四步,做后面的加法,因为f是float型(浮点型),前面的结果是整型,结果也会是浮点型。
所以,最终的结果是float型。
格里编程办公技巧
科技发烧友

2021-05-20 · 编程、办公知识分享与学习
格里编程办公技巧
采纳数:434 获赞数:879

向TA提问 私信TA
展开全部
c+a/(int)d+f结果是float型:
首先a/(int)d是int / int结果是int;
那带入就是char + int + float;
+都是一样的运算符,程序会按里面最高精度进行,char + int = int, int + float=float。

就是说程序会按参与运算的两个数最高精度转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
brain39
2021-05-20 · TA获得超过6102个赞
知道大有可为答主
回答量:6365
采纳率:81%
帮助的人:88.7万
展开全部
虽然d是double,但被强制转换成了int,剩下的float是最高级的类型,所以结果转成了float。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
C语言程序设计
2021-05-20 · 贡献了超过153个回答
知道答主
回答量:153
采纳率:30%
帮助的人:10.9万
展开全部
D 11112
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式