作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 18:45:54
一道C语言的题.表达式 2+sqrt(16.0)/4 结果的数据类型是?
A.Double B.int C.char D.void
当一个二元操作符两侧的操作数属于不同类型时,将会把“较低等级”类型的操作数转换成“较高等级的”操作数
所以这个式子中,除法的优先级高于加法,先算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)”