Tips

Java Silver 練習問題17

Java Silver 練習問題17

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

問題1
次のプログラムを実行して「合格」と表示させるためには、①にどのようなコードを書けば良いか。

public class Sample {
    public static void main(String[] args) {
        ① // ・・・①に当てはまるものを選べ
    }
    static String disp(int score) {
        if(score >= 60) {
            return "合格";
        } else {
            return "不合格";
        }
    }
}
  1. disp(86);
  2. disp(54);
  3. System.out.print(disp(86));
  4. System.out.print(disp(54));
  5. 当てはまるものはない
解答はここをクリック!

【解答 3:System.out.println(disp(86));】

dispメソッドの戻り値はString型です。
そのためprintメソッドなどの処理がないと表示させることができません。

 

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

public class Sample {
    public static void main(String[] args) {
        int sum = num1(10) + num2(20);
        System.out.println(sum);
    }

    static int num1(int num) {
        return 1;
    }

    static int num2(int num) {
        return 2;
    }
}
  1. 「3」と表示
  2. 「30」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 1:「3」と表示される】

引数に10や20を渡していますが、その引数を使わずに1や2といったリテラルをリターンしています。

 

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

public class Sample {
    public static void main(String[] args) {
        int num = 10;
        inc(num);
        System.out.println(num);
    }

    static void inc(int n) {
        n++;
    }
}
  1. 「10」と表示
  2. 「11」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 1:「10」と表示される】

基本データ型の値を引数に渡す場合は値のコピーが渡されます。
要は、3行目で定義しているnumと8行目で引数に渡されているnは別物ということです。

 

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

public class Sample {
    public static void main(String[] args) {
        int[] nums = { 10, 20, 30 };
        inc(nums);
        System.out.println(nums[0]);
    }

    static void inc(int[] array) {
        array[0]++;
    }
}
  1. 「10」と表示
  2. 「11」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 2:「11」と表示される】

配列はオブジェクト参照型です。
引数にオブジェクト参照型の値を渡すと、値のコピーではなく参照が渡されます。
要は、3行目で定義しているnumsと、8行目で引数に渡されているarrayは同じものです。

 

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

public class Sample {
    public static void main(String[] args) {
        String str = "Hello";
        appendWolrd(str);
        System.out.println(str);
    }

    static void appendWolrd(String str) {
        str += "World";
    }
}
  1. 「Hello」と表示
  2. 「HelloWorld」と表示
  3. 何も表示されない
  4. コンパイルエラー
  5. 実行時エラー
解答はここをクリック!

【解答 1:「Hello」と表示される】

オブジェクト参照型は参照が渡されます。
しかし、String型は例外となるので気をつけて下さい。
String型の値に変更を加えると、その値は別のオブジェクトとなります。
つまり、メモリ内の別の場所に値ができるわけです。


 

前回の問題   次の問題

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search