若x,y均为double类型数据,则表达式x=1,y=x 2 3的值为
来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 02:21:55
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;上面题目太不严密,希望你能真正搞懂哦
因为虽然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再答:速度真快
两个整数相除取整数.y=x+3/2=1+1=2
x=1.0y=2.5
2.000000再答:再答:再答:这里的3/2得的值是1,因为默认两个整形数相除得整形数,所以才会有1+3/2=2的结果。而定义的x,y是float浮点型,所以结果为2.000000
这涉及到C语言的一些规定第一就是自动向上转换:也就是说占用空间少的类型和占用空间多的类型运算,运算结果转换为占用空间多的类型(这是为了防止运算结果放在少空间发生溢出)int占用4个字节double占用
/*的结合性是从左向右的,A项先算的是x/y,然后其结果乘于z,错误.再问:��������/�������߶�������ʱ�DZ�ʾȡ����������ͨ�ij����㣬����再答:Ӧ�ö�
A吧其他三个式子都等于x/(yz)A式等于(xz)/y
显然选B呀.(注意:是!不能!正确表示数学式子x/yz的C语言表达式是)再问:我是不是对数学式子的理解错误了。如果数学式子是x/(yz),那答案选ACD对么再答:x/yz????这不狠明显么:x除以y
3是整形2是整形3/2就为整形1(整形除以整形还是一个整形不会变成double形)y=x+1(这里1隐式转换成double型)y=2(这里的y类型为double型)
如果原始表达式是:x/y*z那么不能正确表达的是C和D;如果原始表达式是x/(y*z)那么不能正确表达的是A和B;
y=1+3/2=2;再问:不是先乘除后加减吗?再答:是啊,3/2=1;(int值)1+1=2;
A正确的.B错=x/y/zC错=x/y/zD错=x/y/z