帮帮忙,为什么选B?设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )
来源:百度知道 编辑:UC知道 时间:2024/06/08 07:42:45
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是( )
A.(a+b)*h/2
B.(1/2)*(a+b)*h
c.(a+b)*h*1/2
d.h/2*(a+b)
A.(a+b)*h/2
B.(1/2)*(a+b)*h
c.(a+b)*h*1/2
d.h/2*(a+b)
因为你已经定义了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/2=0
因为整型之间的运算还得整形,整形与实型运算就是实型,你一题去往下算,ACD都得整型,只有B项(1/2)得0,结果是0,因为整型运算得整型,算术结果是9。
/是整除符号 是不看余数的 1/2=0
定义float a=25,b,*p;scanf("%f",&b);*p=b. 这样写为什么不正确?
设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是
float,double,赋值时候为什么要加f,d.例如:double a=0.1d;float b=0.2f;
现在有以下定义,int a;double b;float c;char k;则下面的表达式a/b+c-k值的类型为:
如何运算(float)(a+b)/2
unsigned为什么不能修饰float??
为什么要设有大使馆?
int与float定义问题?C高手进!!
我的 Turbo C 怎么不能定义float数据
C语言中float变量类型的定义是什么