C语言题目 若已定义x和y为double类型,则表达式“x=1,y=x+3/2"的值是:

C语言题目若已定义x和y为double类型,则表达式“x=1,y=x+3/2"的值是:A)1B)2C)2.0D)2.5... C语言题目 若已定义x和y为double类型,则表达式“x=1,y=x+3/2"的值是:A)1 B)2 C)2.0 D)2.5 展开
 我来答
珈蓝惜梦qF
2019-10-15 · TA获得超过654个赞
知道答主
回答量:33
采纳率:0%
帮助的人:1.2万
展开全部

表达式的计算值为:2.0

源程序代码以及算法解释如下:

#include <iostream>//头文件

using namespace std;//引用命名空间

int main()

{

 double x;//定义double变量x,y

 double y;

 x = 1;//将x赋值

 y = x + 3 / 2;//求y表达式的值

 cout << "x=1,y=x+3/2= " << y << endl;//输出y的结果

 return 0;

}

程序运行结果如下:



扩展资料:

本题目涉及到了类型的转换问题:

强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

强制类型转换是通过类型转换运算来实现的。其一般形式为:(类型说明符)(表达式)其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

自动转换是在源类型和目标类型兼容以及目标类型广于源类型时发生一个类型到另一类的转换。例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为整型。在使用强制转换时应注意以下问题:

1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。

2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

赋值中的类型转换

当赋值运算符两边的运算对象类型不同时,将要发生类型转换, 转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。具体的转换如下:

(1) 浮点型与整型

● 将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。

(2) 单、双精度浮点型

● 由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。

(3) char型与int型

● int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。

● char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。对于使用者来讲,如果原来char型数据取正值,转换后仍为正值;如果原来char型值可正可负,则转换后也仍然保持原值, 只是数据的内部表示形式有所不同。

(4) int型与long型

● long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃。(这里假定int型占两个字节)。 将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。

(5) 无符号整数

● 将一个unsigned型数据赋给一个占据同样长度存储单元的整型变量时(如:unsigned int→int、unsigned long→long,unsigned short→short) ,原值照赋,内部的存储方式不变,但外部值却可能改变。

● 将一个非unsigned整型数据赋给长度相同的unsigned型变量时, 内部存储形式不变,但外部表示时总是无符号的。

参考资料来源:百度百科-C语言类型强制转换

点亮纯真
推荐于2017-12-15 · TA获得超过117个赞
知道答主
回答量:57
采纳率:0%
帮助的人:51.7万
展开全部
格式化输出若为%f(即printf(“%f”,y);),那么输出就为2.000000;格式化输出若为%d,输出就为0;若格式化输出为%3.1f,那么输出才为2.0;上面题目太不严密,希望你能真正搞懂哦!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oowood
2014-10-21 · TA获得超过1781个赞
知道大有可为答主
回答量:2196
采纳率:81%
帮助的人:1216万
展开全部
这个是两个类型的问题:
double、float都是浮点型。double(双精度型)比float(单精度型)存的数据更准确些,占的空间也更大。选D。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青音feel
2014-10-21 · 超过12用户采纳过TA的回答
知道答主
回答量:60
采纳率:100%
帮助的人:15.4万
展开全部
你定义了X,Y为长整形,输出就也是长整形所以答案是C
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何以笙箫默1210
2014-10-21
知道答主
回答量:6
采纳率:0%
帮助的人:3.1万
展开全部
应该选C 2.0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式