首页 > 试题广场 >

下面哪些赋值语句是正确的()

[不定项选择题]

下面哪些赋值语句是正确的()

  • long test=012
  • float f=-412
  • int other =(int)true
  • double d=0x12345678
  • byte b=128
推荐
选ABD
A和B中long和float,正常定义需要加l和f,但是long和float属于基本类型,会进行转化,所以不会报出异常。AB正确
boolean类型不能和任何类型进行转换,会报出类型异常错误。所以C错。
D选项可以这样定义,D正确。
E选项中,byte的取值范围是-128—127。报出异常: cannot convert from int to byte.所以E选项错误。

编辑于 2017-03-19 20:00:28 回复(8)
我成功的避开了所有正确答案
发表于 2017-02-20 12:56:01 回复(41)
java中不需要强制向下转型的合法数字类型转换图:core java书中有记载

发表于 2016-12-28 16:47:59 回复(13)
基本类型与基本封装类型
A和B选项如果为 Long Float,则是需要在数值后面加L和F,但是他们是基本类型,会进行转化,所以不需要带, 
发表于 2017-01-26 12:02:02 回复(7)
A:012默认是int类型,赋给long类型没错。                          正确
B:-412默认也是int类型,赋给float没错。                            正确
C:很明显布尔类型不能强转成其他数值类型。                     错误
D:0x12345678默认应该是int类型,赋给double没错。        正确
E:128 > 127默认是int类型,byte默认范围是(-128 ~ 127)。错误

发表于 2017-03-01 22:06:12 回复(2)
发表于 2016-12-20 10:53:20 回复(6)
java中0开头的数字表示8进制
发表于 2019-03-09 17:40:35 回复(0)
float a = -412.0;                  编译错误,原因是-412.0默认是double型,要变成float型需要强制类型转换
float a = (float)-412.0;         编译通过
偷懒写法:float a = -412;    编译通过
标准写法:float a = -412f;
发表于 2018-03-31 18:51:39 回复(1)
float定义的值不加f么?
发表于 2017-01-08 19:05:26 回复(1)
A:自动类型转换,int转long
B:自动类型转换,int转float
C:boolean类型的不能强转为int
D:0x开头表示一个十六进制数,转换为二进制是:0001 0010 0011 0100 0101 0110 0111 1000,转换为十进制是:3.05419896E8
E:byte表示一个字节,包含8位,取值范围是-128~127
发表于 2018-06-13 08:53:18 回复(0)
A、B、D
A:正确。java中0开头的数字表示八进制。
B:正确,int自动类型转换为float(低精度向高精度)
C:错误,Java中boolean不可以和任何类型互相转换。
D:正确
E:128超出byte可表示得数字,默认为int,如果赋值给byte需要强制类型转换。
编辑于 2022-02-03 12:49:36 回复(0)
谢特,忘记了0开头是8进制了
发表于 2022-02-13 21:44:37 回复(0)
我来讲一讲D,目前全楼没人会,首先,128会转换为补码,由于默认是int ,即32位,进行低八位截取,截取后依旧是补码,将其作为byte,再将其原码一下,就是-127。当然,这样做前提是具有常量字面值的情况,在编译时期就必须确定常量才可以。总之,你输出一下肯定是-127
发表于 2018-05-10 17:07:44 回复(2)
ABD
发表于 2016-12-07 18:30:28 回复(0)
发表于 2019-08-10 22:05:05 回复(0)
转行吧。
发表于 2018-05-08 11:40:14 回复(1)
选的E,答案是ABD。。。。
发表于 2017-09-09 22:41:48 回复(0)
涉及到自动类型提升和强制类型转换,整数的默认类型是int,小数默认类型是double。byte-->short-->int-->long-->float-->double.依次是自动类型提升。
A是int型自动类型提升到long,B是int型到float,C是扯淡,D我没算应该是long转为double,E是超出范围了


发表于 2019-06-27 00:15:46 回复(0)
成功避开所有正确答案
发表于 2017-07-11 22:21:08 回复(0)
long 类型在定义的时候不需要加L也可以
发表于 2022-03-01 11:33:54 回复(0)
0x代表16进值…非科班的我才知道…
发表于 2020-09-10 00:57:37 回复(0)