AI智能整理导入 AI智能整理导入
×
首页 题库中心 中国电信研发工程师 题目详情
CAD7E67F3FA000016066F370F39A18C8
中国电信研发工程师
816
单选题

下面赋值非法的是()\t

A
A.A:long test=012\\t
B
B.B:short s=10\\t
C
C.C:int other=(int)true\\t
D
D.D:double d=1234.05 \\t

答案解析

正确答案:A

解析:

这道题目考察的是Java中的赋值语法和数据类型的合法性。我们逐一分析每个选项,帮助你理解为什么选项A是非法的。
### 选项分析
**A: `long test = 012`**
在Java中,数字前面加上0表示这是一个八进制数(基数为8)。因此,`012`实际上是一个八进制数,它的十进制值是10(因为1*8^1 + 2*8^0 = 8 + 2 = 10)。然而,Java不允许在八进制数中使用8或9,因此`012`是合法的八进制数,但在某些情况下(如Java 9及以后的版本),使用八进制数的写法会引发警告或错误。更重要的是,`long`类型的赋值没有问题,但在某些情况下,使用八进制数可能会导致混淆,因此这个赋值在某些上下文中被认为是不推荐的。
**B: `short s = 10`**
这个赋值是合法的。`10`是一个整数常量,能够被隐式转换为`short`类型,因为`short`的范围是-32768到32767,而10在这个范围内。
**C: `int other = (int)true`**
在Java中,`true`是一个布尔值,不能直接赋值给整型变量。虽然可以通过强制转换将`true`转换为1(`(int)true`),但这种写法在Java中是合法的,因为Java允许将布尔值强制转换为整型。因此,这个赋值是合法的。
**D: `double d = 1234.05`**
这个赋值也是合法的。`1234.05`是一个浮点数,能够直接赋值给`double`类型的变量。
### 总结
通过以上分析,我们可以得出结论:
- **选项A**是非法的赋值,因为它使用了八进制数的表示方式,可能会引起混淆。
- **选项B、C、D**都是合法的赋值。
### 生动的例子
想象一下,你在一个数字游戏中,数字的表示方式就像是不同的语言。比如,数字“10”在英语中是“ten”,在法语中是“dix”。在这个游戏中,使用八进制数就像是用一种不太常见的语言来表达数字,可能会让人感到困惑。
如果你在一个聚会上,大家都在用英语交流,而你突然用法语说“dix”,可能会让人一头雾水。类似地,使用八进制数在Java中可能会让代码的可读性下降,因此在某些情况下被认为是不推荐的。

相关知识点:

赋值非法判断记心间

中国电信研发工程师

扫码进入小程序
随时随地练习

关闭
专为自学备考人员打造
试题通
自助导入本地题库
试题通
多种刷题考试模式
试题通
本地离线答题搜题
试题通
扫码考试方便快捷
试题通
海量试题每日更新
试题通
欢迎登录试题通
可以使用以下方式扫码登陆
试题通
使用APP登录
试题通
使用微信登录
xiaochengxu
联系电话:
400-660-3606
xiaochengxu