c语言。若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是
4个回答
展开全部
c语言。若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是2.0。
解释:这是一个逗号表达式,它的值应为表达式式y=3/2的值,而前一个表达式已给x赋值1,在没有进行类型转换的情况下,3/2的值为1,所以x+3/2的值应为2.0。
逗号表达式的要领:
1、从左到右逐个计算;
2、逗号表达式作为一个整体,它的值为最后一个表达式的值;
3、 逗号表达式的优先级别在所有运算符中最低。
注意:
1、逗号表达式只有一个返回值。
2、逗号表达式的最大作用是:用在语法上只能一个表达式,但是逻辑上需要多个表达式的地方。
扩展资料:
C语言double类型数的两个特征:
1、double数据类型表达的也是一个近似的数,不是准确的,小数点后的n位有误差,浮点数的位数越大,误差越大,到18位的时候,误差了1,基本上不能用了。
2、用“==”可以比较两个double数值是否相等。
float浮点型的精度最多只有8位,并且不能用==判断两个浮点数是否相等,在实际开发中,弃用float,只使用double型就可以了。
展开全部
因为3和2都是int型的,所以认为3/2的结果也是int的,舍弃后面的尾数,仅留下整数位的1.然后加上double型的x,复制给double型的y所以是2.0
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.x=1,,1是int类型,赋值给double的X的时候自动提升为double类型, 所以x=1.0(注意1.0是double类型的)。
2.3/2的结果是int的1,然后double的 x加上int的1,先会吧int的1提升为double的1.0,然后x+1.0=2.0(2.0为double类型的)。
满意请采纳。
2.3/2的结果是int的1,然后double的 x加上int的1,先会吧int的1提升为double的1.0,然后x+1.0=2.0(2.0为double类型的)。
满意请采纳。
追问
为什么 3/2的结果是int的1???任何没有定义类型的常数表达式都是int的吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询