knrt.net
当前位置:首页 >> C语言的问题。。。。表达式(8/5+0.4)的运算结果为 ,结果是 类型 >>

C语言的问题。。。。表达式(8/5+0.4)的运算结果为 ,结果是 类型

1.4 float8/5都是int,结果也是int,也就是11+0.4转为float类型 1.4

1,先执行a/b因为a,b都为int整数,所以8/5=1 然后1+0.4=1.4 因为c是int型,所以得到1 2,你可以从后边看起,先执行a=a-a*a;-->得到a=-6;然后执行a=a+a,即a=-12;

其中sqrt(4.0)/8是浮点型,式子中浮点型的精确度最高,所以词表达式的数据类型是浮点型:float

double,最终结果类型的值是表达式中单个运算的最高类型,sqrt返回的是double,这个是c语言基本类型的最高类型了,所以是double是的

貌似是等于1吧.你看清楚!18/4=4 sqrt(4.0)=2.0 两者相乘等于8,然后除以8 不就等于1啊

你好!!!c语言中浮点数的默认类型是double,因为double的精度高,18/4*sqrt(4.0)/8这个运算中有浮点型数据即sqrt(4.0),系统会自动把其他类型的数据想double转换.关于你的补充是不对的.比如:float b=6.5;int a=2;那么a+b的类型就是float,因为这个表达式中最高的类型就是float,那么int 就会向float转换.总结就是要是表达式中都要向类型高的转化.

你的问题似乎写错了个地方,应该是a=( b,c--,d+3)吧,这个是《逗号运算符和表达式》那一节的,“逗号运算符按照从左到右依次运算,整个逗号表达式的值是最右边那个表达式的值”.括号里面就是一个逗号表达式,a取逗号表达式的值.所以答案是a=8.很专业的哦,给采纳哈.

都是整型 按照整型计算7%2+7/2*5=1+3*5=1+15=16

答案的确是8fun((a++,b++,a+b),c++)第一个参数是一个逗号表达式的值,他的值就应该是a+b的值注意这个逗号表达式:(a++,b++,a+b);由于是从左到右运行,所以 a+b=2+3(a++后a的值变成2,b++后b的值变成3)==5好了,fun((a++,b++,a+b),c++)就相当于fun(5,c++);由于++在变量c后面所以fun(5,c++);相当于fun(5,c);c++;所以sum=5+3(c的原值是3)==8

网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com