关于C语言的一道题:

#include<stdio.h>intmain(void){printf("%f\n",5);printf("%d\n",5.01);return0;}请问这道题的输出... #include <stdio.h>
int main(void)
{
printf("%f\n",5);
printf("%d\n",5.01);
return 0;
}
请问这道题的输出结果是什么?为什么?
展开
 我来答
tianya5858007
2012-07-09 · 超过10用户采纳过TA的回答
知道答主
回答量:76
采纳率:0%
帮助的人:25.7万
展开全部
第一句自不必多说,把一个整型数当作浮点类型来打印,假设为32位计算机默认取此双字单元中23位有效数字和8位的尾数来打印输出,结果当然不能确定。
第二句刚好相反,你可以把5.01自己用浮点数在内存中的存放方式画出来看,可打印个定值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
寓理帅气_
2012-07-09
知道答主
回答量:11
采纳率:0%
帮助的人:9.1万
展开全部
%f是浮点数float的输出格式,%d是整型int的输出格式,float类型保留精度7位,整数部分加上小数点一共七位,所以在输出时候会自动类型转换加上小数点。int类型只输出整数部分。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林一仔
2012-07-09
知道答主
回答量:54
采纳率:0%
帮助的人:29.2万
展开全部
5.01 在内存中 以十六进制表示
0x40140a3d70a3d70a%d 是以 int 形式读取 所以只能读 32 位%d 读了 低32位 也就是 70a3d70a

转成 十进制 1889785610 另一个我不会 给你参照参照 希望对你有帮助
追问
0x40140a3d70a3d70a
这个十六进制数是怎么来的啊,恕我蠢钝,还请明示,不胜感激!
追答
这个涉及到浮点型的储存问题 说起来 比较麻烦 你百度  浮点数在计算机里如何存储什么的...
看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
375875192
2012-07-09 · TA获得超过362个赞
知道答主
回答量:189
采纳率:0%
帮助的人:134万
展开全部
第一个是把整型数据格式输出为浮点型数据,这个主要还是看float的小数点有效位数,我也不太记得了,6-7位,是哪一个我也不记得了。
第二个是把浮点型数据格式输出为整形,就会把小数点部分省略,记住这里不是数学上的四舍五入,不管多大的小数部分都会扔掉。

输出是什么你应该知道的,运行代码就OK
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hwqy
2012-07-09 · 超过10用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:41.4万
展开全部
5.000000
5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式