天天看點

【Java練習題】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);
  }
}      

a) 677

b) 由于第 1 行導緻的編譯錯誤

c) 由于第 2 行導緻的編譯錯誤

d) 由于第 1 行和第 2 行導緻的編譯錯誤

​​點此跳轉到答案​​

程式二

2) 以下程式的輸出是什麼?

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

a) 444.324

b) 444

c) 運作時錯誤

d) 編譯錯誤

​​點此跳轉到答案​​

程式三

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

​​點此跳轉到答案​​

程式四

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);    
  }
}      

a) 0

b) 由第 1 行引起的編譯錯誤

c) 由于第 2 行引起的編譯錯誤

d) 由于第 1 行和第 2 行引起的編譯錯誤

​​點此跳轉到答案​​

程式五

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) 運作時錯誤

​​點此跳轉到答案​​

文章後半部分是程式的輸出及解析

【Java練習題】Java 程式的輸出 | 第二十一套(類型轉換)

輸出及解析

程式一輸出

答案:

d      

說明:

java 中不允許從int 轉換為String,也不允許從String 轉換為int。

程式二輸出

答案:

d      

說明:

java 中不允許從較大的資料類型轉換為較小的資料類型,因為這是一種有損轉換。

程式三輸出

答案:

c      

說明:

如果操作數之一是long、double 或float,則整個表達式分别轉換為long、double 或float。

程式四答案

答案

b      

說明:

當計算表達式時,結果的資料類型被隐式更改為更大的資料類型,是以必須進行顯式重鑄,如第 2 行所示。另一方面,第 1 行顯示編譯錯誤因為右側的表達式的資料類型為 int 而左側的資料類型為位元組。

程式五答案

答案 :

c      

說明: