首页 > 试题广场 >

以下表达式的类型和值是什么?(注意整数除法)() -5

[单选题]
以下表达式的类型和值(注意整数除法)是()
-5 + 1/4 + 2*-3 + 5.0
  • int -3
  • int -4
  • double -5.5
  • double -6.0
在进行运算的时候会自动向较高级别转换
short s1= 1; s1 = s1 + 1;
这句话编译会报错,因为s1+1会自动转换成int类型进行计算,需要类型强制转换
发表于 2019-07-07 19:25:24 回复(2)
-5+0-6+5.0=-6.0
发表于 2019-07-01 12:53:01 回复(1)
Java中/是取整,别和数学里的搞混了
发表于 2020-09-02 01:20:42 回复(0)
在Java中5.0是double类型,所以结果的数据类型为double。因为1/4结果为0,所以结果为-6.0
发表于 2019-07-23 08:48:44 回复(5)

题目 : -5 + 1/4 + 2*-3 + 5.0

首先看题目,当你的鼠标放在这道题目上"-5 + 1/4 + 2*-3 + 5.0",获取焦点时右边会出现一个按钮,"复制代码",我将它放在IDEA里面运行,控制台输出的结果是 -6.0 ,跟题目的答案是一样的,可以确定题目和答案是没有问题的.

解析:

  1. 看这道题 "-5 + 1/4 + 2*-3 + 5.0" , 有一个5.0的数值,在java里浮点型默认是double类型, 那是不是可以把 , A和B 给排除呢.

  2. 再看 "-5 + 1/4 + 2*-3 + 5.0" , 根据运算符的优先级,我们是不是可以先计算 "1/4" , 而在java里整型默认是 int 类型 , 而整型除法肯定会丢失精度 , 而这时候题目应该变成这样 => "-5 + 0 + 2*-3 + 5.0"

  3. 再看 "-5 + 0 + 2*-3 + 5.0" , 然后开始计算 "2*-3" , 这时候就不用想了 "2 乘以 -3 " 肯定是 -6 , 这时候题目应该会变成 => "-5 + 0 + -6 + 5.0" .

  4. 哎,然后我们就应该自信的笑一笑 , 题目结果 => -5 + 0 + -6 + 5.0 = -6.0 那答案显而易见肯定选 D : double -6.0

  5. 这时候我们应该屁颠屁颠的去复习java基础,不要问我为什么这么说因为WTM也选错了,最后要是你觉得我的想法是错误的,请你不要喷我,因为我是第一次这么干,谁还没个第一次是不,你可以把你的理解回复给我.

发表于 2022-01-13 17:26:13 回复(0)
1/4是0哦
发表于 2020-06-19 11:22:34 回复(3)
/是取整,1/4为0,然后不同字符类型运算,向高的转
发表于 2021-08-04 17:07:09 回复(0)
题目和答案都有问题,另外题目可能是-5 + 1/4 + 2*-3 + 5.0这样的,前面的那个符号和1估计不是位运算符
如果按题目为1 | -5 + 1/4 + 2*-3 + 5.0
按优先级计算,先乘除,然后加减,然后位运算
1 |  -5+0+(-6)+5.0=1 | -6.0,位运算符的操作数只能是整型或者字符型,程序这里已经出错了
1:00000001.0 原反补,强制类型转换
-6:原:00000110 反:11111001补:11111010
00000001| 11111010 =11111011减1得反码:11111010 取反得源码:00000101=(double)-5,
如果按题目是-5 + 1/4 + 2*-3 + 5.0,结果为double-6.0

编辑于 2019-07-03 14:50:15 回复(0)
又是小鹏汽车的题
发表于 2019-09-04 10:23:46 回复(0)
int 类型   1/4 = 0
发表于 2019-07-10 21:27:10 回复(0)
1
-5+ 1.0/4.0+ 2*-3+ 5.0
    比较一下
编辑于 2019-07-02 13:07:13 回复(3)
除号"/" 整数除:整数之间做除法,只保留整数部分而舍弃小数部分。 小数除: 10/4:数学上是2.5,Java中是2 10.0/4:Java中是2.5 double d=10/4:Java中是2.0(先整数除,再类型转换)
发表于 2024-03-24 19:36:55 回复(0)
有点意思,数学上的/和Java的/是不一样的哈哈哈
发表于 2023-07-30 16:03:41 回复(0)
为啥都说1/4是取整? 
不算是取整吧,是结果类型转换
public static void main(String[] args) {
    int i = 1;
    int j = 4;
    System.out.println((double) i/j);  // 这里得出来的结果是 0.25
}


发表于 2023-03-12 12:47:56 回复(0)
java中的/是取整
发表于 2022-09-27 16:57:30 回复(0)
发表于 2022-09-01 21:41:50 回复(0)
整数相除取整,所以 int 1/4 = 0.25 取整是 0 ;如果是 1.0/ 就是等于 0.25 ; 接着 最后是 5.0 所以是 整个答案升级为 double .
发表于 2022-07-04 20:07:01 回复(0)
注意:1/4值为0
发表于 2022-06-23 14:47:52 回复(0)
1/4是去商 0 ,所以为 -5 + 0 + -6 + 5 = -6
发表于 2022-06-13 10:08:36 回复(0)
6.0为双精度
发表于 2022-04-28 09:59:52 回复(0)