帮帮忙,为什么选B?设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )
答案:4 悬赏:0
解决时间 2021-02-14 12:55
- 提问者网友:他的思颖
- 2021-02-14 08:33
帮帮忙,为什么选B?设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )
最佳答案
- 二级知识专家网友:何必打扰
- 2021-02-14 09:00
因为你已经定义了a,b,h为单精度浮点型,所以,就要考虑到精度问题了。
下面几个选项中,根据运算优先级,就B选项中,是先算1/2(因为C++中,你的常数要有小数部分才是浮点型,你可以验证下:
int main()
{
float i;
i=1/2;
cout<<i<<endl;
}
输出的结果是0)
也就是说,1/2是整型运算,你的代数式计算是0.5,但整型的精度限制,结果只能是0;如果B选项改为(1.0/2)*(a+b)*或者(1/2.0)*(a+b)*h都能得到正确的结果。
下面几个选项中,根据运算优先级,就B选项中,是先算1/2(因为C++中,你的常数要有小数部分才是浮点型,你可以验证下:
int main()
{
float i;
i=1/2;
cout<<i<<endl;
}
输出的结果是0)
也就是说,1/2是整型运算,你的代数式计算是0.5,但整型的精度限制,结果只能是0;如果B选项改为(1.0/2)*(a+b)*或者(1/2.0)*(a+b)*h都能得到正确的结果。
全部回答
- 1楼网友:蜜罐小熊
- 2021-02-14 10:25
1/2=0
- 2楼网友:ー何必说爱
- 2021-02-14 10:02
因为整型之间的运算还得整形,整形与实型运算就是实型,你一题去往下算,ACD都得整型,只有B项(1/2)得0,结果是0,因为整型运算得整型,算术结果是9。
- 3楼网友:疯山鬼
- 2021-02-14 09:46
/是整除符号 是不看余数的 1/2=0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯