若有以下定义,则错误的赋值语句是 int a,b;float x; A、a=x; B、b=5; C、x=b; D、b=int(x)

如题 谢谢了

若有以下定义,则错误的赋值语句是
int a,b;float x;
A、a=x;
B、b=5;
C、x=b;
D、b=int(x)
选择D,我编译过了虽然D可以编译通过
但是
int()
这个表示的是一个函数,但是int不可能是函数
如果想强制取整的话
b=(int)x//是要这么写的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-18
选择A、D A 、 D的写法不规范,可能会丧失小数点后面的值;
D的 赋值语句不是这么写的 若要真的把X的值赋给b 要这么写: b=Convert.ToInt32(x);
第2个回答  2012-02-18
全部语法都是正确的,出题的可能大意了。实在要选一个的话,选择 A、a=x;因此x赋给b时,会失去小数部分的值。本回答被提问者采纳
第3个回答  2012-02-18
AC在编译的时候都是警告...不知道跟编译器是不是有关系.....是自动转换的那些东西吧.....复制了一段...希望对你有帮助
自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。自动转换遵循以下规则:
1.若参与运算量的类型不同,则先转换成同一类型,然后进行运算。
2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。
3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4.char型和short型参与运算时,必须先转换成int型。
5.在赋值运算中,赋值号两边量的数据类型不同时, 赋值号右边量的类型将转换为左边量的类型。 如果右边量的数据类型长度左边长时,将丢失一部分数据,这样会降低精度, 丢失的部分按四舍五入向前舍入。