二次元配列の問題
二次元配列の問題01
プログラムを見て、それぞれの出力結果を予測してください。
public class TwoDimensionalArrayExample {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
System.out.println(matrix[1][1]);
System.out.println(matrix[2][0]);
System.out.println(matrix[0][2]);
}
}
System.out.println(matrix[1][1]); // 出力結果は?
出力結果「5」
matrix[1][1]
は、行インデックスが1(2行目)、列インデックスが1(2列目)の要素を指します。つまり、5が出力されます。
System.out.println(matrix[2][0]); // 出力結果は?
出力結果「7」
matrix[2][0]
は、行インデックスが2(3行目)、列インデックスが0(1列目)の要素を指します。つまり、7が出力されます。
System.out.println(matrix[0][2]); // 出力結果は?
出力結果「3」
matrix[0][2]
は、行インデックスが0(1行目)、列インデックスが2(3列目)の要素を指します。つまり、3が出力されます。
配列のインデックスは「0」から始まることに注意してください。
二次元配列の問題02
以下のプログラムを実行したときの出力結果は何でしょうか?
public class Main {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 5},
{7, 8, 9}
};
int sum = 0;
for (int[] row : matrix) {
for (int num : row) {
sum += num;
}
}
System.out.println(sum);
}
}
選択肢
- A.)9
- B.)27
- C.)45
- D.)44
正解は、、、
D.)44
上記のコードは、各要素を順番に足して合計していくコードになっています。全部足すと合計で「44」になります。
二次元配列の問題03
以下のコードを見て、選択肢から正しいものを選んでください。
public class ArrayInitialization {
public static void main(String[] args) {
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// 二次元配列の要素を出力する
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
選択肢
A)
1 2 3
4 5 6
7 8 9
正しい解答です。
B)
1 4 7
2 5 8
3 6 9
不正解です。
C)
1 4 7
2 5 8
3 6
不正解です。
D)
1 2 3
4 5
7 8 9
不正解です。
二次元配列の問題04
次のコードを確認してください。
public class Sample{
public static void main(String[] args){
int[][] array = {{11,18,15}, {22,25}, {30}};
System.out.print(array.length + " : ");
System.out.print(array[1].length);
}
}
このコードをコンパイル、および実行すると、どのような結果になりますか?
- A.)3:2
- B.)6:2
- C.)コンパイルエラーが発生する
- D.)実行時エラーが発生する
正解は、、、
A.)3:2
array.length
はベースとなる配列の要素数を返します。そのため、今回のコードでは「3」が出力されます。
また、array[1].length
は2行目の要素数を数えるため「2」が返されます。
二次元配列の問題05
次のプログラムを見て、各選択肢の記述が正しいか誤りか答えてください。
public class Main {
public static void main(String[] args) {
int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int sum = 0;
for (int[] row : array) {
for (int value : row) {
sum += value;
}
}
System.out.println("二次元配列の要素の合計値:" + sum);
}
}
A)二次元配列の要素の合計が正しく出力される
正解です。このプログラムは、二次元配列をループしてすべての要素を取得し、合計値を計算しています。その後、合計値が出力されます。従って、プログラムは二次元配列の要素の合計を正しく処理しています。
B)二次元配列の要素が逆順に出力される
誤りです。このプログラムは二次元配列の要素を逆順に処理することはありません。
C)二次元配列の要素が縦方向に出力される
誤りです。このプログラムは二次元配列の要素を縦方向に出力することはありません。
コメント