📜  Java程序的输出 |第 21 组(类型转换)

📅  最后修改于: 2022-05-13 01:56:11.147000             🧑  作者: Mango

Java程序的输出 |第 21 组(类型转换)

先决条件 - Java的类型转换和示例

1) 以下程序的输出是什么?

public class Test
{
    public static void main(String[] args)
    {
        int value = 554;
        String var = (String)value;  //line 1
        String temp = "123";
        int data = (int)temp; //line 2
        System.out.println(data + var);
    }
}

一)677
b) 第 1 行导致的编译错误
c) 第 2 行导致的编译错误
d) 第 1 行和第 2 行导致的编译错误

答。 (四)
说明:在Java不允许从 int 转换为 String 以及从 String 转换为 int。 2) 以下程序的输出是什么?

public class Test
{
    public static void main(String[] args)
    {
        double data = 444.324;
        int value = data;
        System.out.println(data);
    }
}

一)444.324
乙)444
c) 运行时错误
d) 编译错误



答。 (四)
说明: Java不允许从较大的数据类型转换为较小的数据类型,因为这是一种有损转换。

3) 以下程序的输出是什么?

public class Test
{
    public static void main(String[] args)
    {
        double data = 444.324;
        int sum = 9;
        float value = 5.1f;
        System.out.println(data + sum + value);
          
    }
}

a) 444.32495.1
b) 456
c) 458.42399
d) 458.4

答。 (C)
说明:如果操作数之一是long、double或float,则整个表达式分别转换为long、double或float。

4) 以下程序的输出是什么?

public class Test
{
    public static void main(String[] args)
    {
        byte var = 1;
        var = (byte) var * 0; //line 1
        byte data = (byte) (var * 0); //line 2
        System.out.println(var);        
    }
}

一)0
b) 第 1 行导致的编译错误
c) 第 2 行导致的编译错误
d) 第 1 行和第 2 行导致的编译错误

答。 (二)
说明:当计算表达式时,结果的数据类型被隐式更改为更大的数据类型,因此,必须进行显式重铸,如第 2 行所示。另一方面,第 1 行显示编译错误,因为表达式右侧的数据类型为 int 而左侧的数据类型为字节。

5) 以下程序的输出是什么?

public class Test
{
    public static void main(String[] args)
    {
        System.out.println((100/25.0)*Integer.parseInt("5") + 50);
    }
}

a) 编译错误
b) 70
c) 70.0
d) 运行时错误

答。 (C)
说明:如果在表达式中使用双精度值,则输出将以双精度格式而不是整数格式返回。