Tips

Java Silver 練習問題12

Java Silver 練習問題12

Java Silverに関する問題を出題していきます!

■問題1

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        int array[] = new int[0];
        System.out.println(array[0]);
    }
}
  1. 「0」と表示
  2. 「array[0]」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 5:実行時エラー】
解説
ArrayIndexOutOfBoundsExceptionがスローされ実行時エラーとなります。
要素数0で初期化してもコンパイルは通ります。
しかし要素数が0のため、array[0]は存在しません。
そのためアクセスしようとすると例外がスローされ実行時エラーとなります。

■問題2

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        double array[] = new double[5];
        System.out.println(array.length);
    }
}
  1. 「0」と表示
  2. 「4」と表示
  3. 「5」と表示
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 3:「5」と表示】
解説
配列名.lengthで要素数を取得することができます。
3行目より要素数は5なので、「5」と表示されます。

 

■問題3

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        int a, b, c;
        int[] array = {a, b, c};
        System.out.println(array.length);
    }
}
  1. 「0」と表示
  2. 「2」と表示
  3. 「3」
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 4.コンパイルエラー】
解説
4行目でコンパイルエラーとなります。
変数は初期化されていないと使用することができません。
配列の問題というよりは、変数の問題ですね。

 

■問題4

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        int a = 10, b = 20, c = 30;
        int ary[] = {a, b, c};
        int len = ary.length;
        int sum = 0;
        for(int i = 0; i <= len; i++) {
            sum += ary[i];
        }
        System.out.println(sum);
    }
}
  1. 「0」と表示
  2. 「60」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 5:実行時エラー】
解説
しつこいようですが、ArrayIndexOutOfBoundsExceptionで実行時エラーとなります。
配列の要素はfor文でまとめて取得することができます。
array[変数]とし、変数を0からfor文で回していけばいいわけですね。
しかし、配列における最大のインデックスは要素数-1となるので気を付けましょう。

 

■問題5

次のプログラムをコンパイル、実行した結果として正しいものはどれか。

public class Sample {
    public static void main(String[] args) {
        char[] ary = {'H', 'E', 'L', 'L', 'O'};
        System.out.println(ary[0] + ary[1] + ary[2] + ary[3] + ary[4]);
    }
}
  1. 「HELLO」と表示
  2. 何も表示されない
  3. コンパイルエラー
  4. 実行時エラー
  5. 1~4以外
解答はここをクリック!

【解答 5:1~4以外】
解説
出力される値は「372」です。
char型 + char型の結果はint型になります。
それぞれの文字コードを10進数にして合計した値が出力されています。
もし「HELLO」と出力したいのであれば、1文字ずつ出力するか、Stringにして文字列結合するなどの処理が必要です。

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search