前回の 10 問とは まったく別パターンの新しい練習問題を 10 問 用意し、すべて 模範解答つき でまとめました。
難易度は 基礎 → 応用 の順になっています。
問題 11(基礎)
次の配列 int[] a = {5, 10, 15}; を 中身が見える形で 出力してください。
問題 12(基礎)
String[] names = {"Alice", "Bob", "Charlie"}; を中身が確認できるように出力せよ。
(println(names) を使うのは不可)
問題 13(基礎)
次のプログラムの出力がどうなるか書きなさい。
int[] x = {1, 2, 3};
System.out.println(x);
Java問題 14(基礎)
次の配列を toString を使って出力 するコードを書け。
double[] prices = {10.5, 22.0, 35.8};
Java問題 15(応用)
次の 2 次元配列を 正しく(中身が見える形で) 出力してください。
int[][] scores = {
{80, 90},
{70, 60}
};
Java問題 16(応用)
次の 2 次元配列を Arrays.toString だけで出力したとき、
どんな問題が起きるか説明しなさい。
int[][] values = {
{1, 2},
{3, 4}
};
Java問題 17(応用)
次の配列を出力するときに 誤っているコード を選びなさい。
A
System.out.println(Arrays.toString(arr));
JavaB
System.out.println(Arrays.deepToString(arr));
JavaC
System.out.println(arr);
Java(※ arr は 1 次元の int[] とする)
問題 18(難しめ)
3 次元配列を 正しく出力 するコードを書きなさい。
int[][][] data = {
{
{1,2},
{3,4}
},
{
{5,6},
{7,8}
}
};
Java問題 19(難しめ)
次のコードを実行したときの出力を答えよ。
int[][] arr = {
{1, 2},
{3, 4}
};
System.out.println(Arrays.toString(arr));
Java問題 20(難しめ)
次のコードを deepToString を使って書き直し、
多次元配列全ての値を表示せよ。
String[][] fruits = {
{"Apple", "Banana"},
{"Grape", "Melon"}
};
Java解答 11
int[] a = {5, 10, 15};
System.out.println(Arrays.toString(a));
Java解答 12
String[] names = {"Alice", "Bob", "Charlie"};
System.out.println(Arrays.toString(names));
Java解答 13
[I@xxxxxx
(※実際の xxxxxx はメモリ位置を示す値で毎回異なる)
→ 中身は表示されない。参照が出る。
解答 14
double[] prices = {10.5, 22.0, 35.8};
System.out.println(Arrays.toString(prices));
Java解答 15
int[][] scores = {
{80, 90},
{70, 60}
};
System.out.println(Arrays.deepToString(scores));
Java解答 16
Arrays.toString は 1 次元配列しか展開しないため、
内部の配列が参照([I@xxxx])として表示されてしまう。
解答 17
誤っているのは C。
理由:arr を System.out.println(arr) すると参照だけが出る。
解答 18
int[][][] data = {
{
{1,2},
{3,4}
},
{
{5,6},
{7,8}
}
};
System.out.println(Arrays.deepToString(data));
Java解答 19
[[I@xxxxxx, [I@yyyyyy]
→ 2 次元配列を toString で出すと 子配列が参照表示になる。
解答 20
String[][] fruits = {
{"Apple", "Banana"},
{"Grape", "Melon"}
};
System.out.println(Arrays.deepToString(fruits));
Java