c语言。若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是

A)2.0B)2C)1D)2.5答案是A,解释一下?详细点... A)2.0 B)2 C)1 D)2.5
答案是A,解释一下?详细点
展开
 我来答
热爱学习的Genji
高粉答主

2020-07-21 · 说的都是干货,快来关注
知道小有建树答主
回答量:1894
采纳率:100%
帮助的人:28万
展开全部

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型就可以了。

大国令牌
高粉答主

2018-12-07 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:283
采纳率:95%
帮助的人:9.3万
展开全部

答案选D。

double、float都是浮点型。double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。所以选D。

扩展资料

在32 位的系统上,short 占据的内存大小是2 个byte;int占据的内存大小是4 个byte;long占据的内存大小是4 个byte;float占据的内存大小是4 个byte;double占据的内存大小是8 个byte;char占据的内存大小是1 个byte。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
云端之韵z
推荐于2017-11-26 · TA获得超过325个赞
知道答主
回答量:58
采纳率:0%
帮助的人:16.5万
展开全部
因为3和2都是int型的,所以认为3/2的结果也是int的,舍弃后面的尾数,仅留下整数位的1.然后加上double型的x,复制给double型的y所以是2.0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
暖宝宝丶吹
2014-11-16 · 超过60用户采纳过TA的回答
知道答主
回答量:164
采纳率:100%
帮助的人:58.9万
展开全部
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类型的)。
满意请采纳。
追问
为什么 3/2的结果是int的1???任何没有定义类型的常数表达式都是int的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式