若已定义x和y为float类型,则表达式:x=2;y=x 3 2;y的值
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/23 12:35:58
3/2,两个数都是INT型,故结果应该是商1,Y=2+1=3,俺觉得答案应该是3,才对.期待其他回答中.
double是双精度浮点型,不是整型,双精度浮点型数,直观上就是小数的确应该是2.03/2的值是1x是double类型x+3/2自动转型为double类型所以是小数.再问:Ŷ
因为3和2都是int型的,所以认为3/2的结果也是int的,舍弃后面的尾数,仅留下整数位的1.然后加上double型的x,复制给double型的y所以是2.0
c.2.0;因为,double是双精度的浮点型,但3/2=1,除非是3.0/2或者(double)3/2都=1.5,所以结果为2.0这种题型要自己上级多实践才能发现其中的奥妙,才能有很深的体会.
c.2.0;因为,double是双精度的浮点型,但3/2=1,除非是3.0/2或者(x的值为1.03/2等于1但要转换为1.0C因为x和y是实型
格式化输出若为%f(即printf(“%f”,y);),那么输出就为2.000000;格式化输出若为%d,输出就为0;若格式化输出为%3.1f,那么输出才为2.0;上面题目太不严密,希望你能真正搞懂哦
1楼正解.答案为B,具体过程为因为3和2都是int型的,所以3/2的值也为int型,即为1.然后由于y是double型,所以1又转化为double型的1,与x相加后赋值给y.
因为虽然x是1.00000000但是3和2都是整形啊,做除法的时候发生了截断哦,所以3/2不是1.5,而是1.所以y=2.0000000你这么写就对了3.0/2补充:2.0也是对的啊,没错.如果你在输
3/2向0取整.是1y=1+1类型自动转化.所以y为2.0
2.000000000再答:速度真快
x=1y=1.000000+1=2.000000答案为c
两个整数相除取整数.y=x+3/2=1+1=2
x=1.0y=2.5
这涉及到C语言的一些规定第一就是自动向上转换:也就是说占用空间少的类型和占用空间多的类型运算,运算结果转换为占用空间多的类型(这是为了防止运算结果放在少空间发生溢出)int占用4个字节double占用
floatx,y=3.14;这一句只是对y赋值了floatx=y=3.14;这一句直接就是语法错误,没有这种写法,定义变量的时候不可以这么写,因为y是未定义的写成floatx=3.14,y=3.14;
(float)(a+b)/2得到浮点数2.5(int)x%(int)y,因为把x,y强制装换为其实就是3墨2得到int数1结果是3.5
1、选择CA只给y赋值了,x没有赋值B同AD没有这种写法.2、B
38.5是double类型的再问:为什么38.5是double型的啊?不应该是float型吗?再答:浮点字面值常量的类型有3种:float,double,longdouble。没有后缀的,3.1415
double类型首先你要知道intfloatdouble三个类型表示的范围为double>float>int程序在执行算术运算的时候会自动转换为范围大的类型也就是说1*10.0结果是10.0(floa
printf("x/y=%d",x/y);输出结果是x/y=11printf("%d",x/y);输出结果是11都可以只是输出的形式不同而已,结果都是11