一道C语言的题。表达式 2+sqrt(16.0)/4 结果的数据类型是?

A.DoubleB.intC.charD.void答案是A,怎么做的呢?... A. Double B.int C.char D.void
答案是A,怎么做的呢?
展开
 我来答
柳凝莲CS
2011-05-06 · TA获得超过935个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:165万
展开全部
当一个二元操作符两侧的操作数属于不同类型时,将会把“较低等级”类型的操作数转换成“较高等级的”操作数
所以这个式子中,除法的优先级高于加法,先算sqrt(16.0)/4。因为这里sqrt的参数是小数,所以返回值是double,相应的4也被从整形提升成double,它们的商也是double,再加2的话2也会被提升成double,结果就是double啦
追问
因为这里sqrt的参数是小数,所以返回值是double  这句话是什么意思啊?为什么sqrt的返回值就是double ?
追答
不好意思我记错了,sqrt没有返回整形的,C标准库的原型就是
double sqrt (double x),所以它的返回值就是double
不过VC++的库里还有
“long double sqrt(long double)”
“float sqrt(float)”
听不清啊
高粉答主

推荐于2017-12-15 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:2.3亿
展开全部
sqrt(16.0)是double
sqrt(16.0)/4会自动转换为sqrt(16.0)/4.0,值是double
2+sqrt(16.0)/4.0会自动转换为2.0+sqrt(16.0)/4.0,值是double
所以选A
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式