繰り返しの問題
ここでは、当社の新人研修受講者に向けて、Javaのサンプル問題を紹介しています。
なお、コンピュータのことはコンピュータに訊けということで解答例はありません。
問題1 スコープ
以下の出力を得たい。
a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
以下のコードに書き足してプログラムを完成させなさい。
public class LoopText { public static void main(String[] args) { char c = 'a'; int mojisu = 5; for (int i = 1; i <= mojisu; i++) { for (int j = 1; j <= mojisu; j++) { System.out.print(c); System.out.print(" "); } System.out.println(); } for (int i = 1; i <= mojisu; i++) { //ここにソースコードを入力 } } }
ついでに次のような問題も考えてみましょう。
このプログラムの実行結果を答えなさい。
public class LoopTest { public static void main(String[] args) { String[] watchword = {"mountain ", "river "}; for(int x = 0; x < 3; x++) { for(String s: watchword) { System.out.print(x + " " + s); if( x == 1) break; } } } }
問題2 繰り返しの回数
次のそれぞれのプログラムの実行結果を答えなさい。
[プログラム1]
class ForTest { public static void main(String args[]) { int i; for (i = 0; i < 15; i += 5) { } System.out.println("i == " + i); } }
[プログラム2]
class ForTest { public static void main(String args[]) { for (int i = 0; i < 8; i++) { System.out.println("i == " + i); i += 3; } } }
[プログラム3]
class ForTest { public static void main( String args[] ){ int i = 0; for( sayHi(); i <= 6; i += 3 ){ sayHi(); } } static void sayHi(){ System.out.println( "Hi!" ); } }
問題3 逆順
次のような出力を得たい。
正順 0 1 2 3 4 5 6 7 8 9 逆順 9 8 7 6 5 4 3 2 1 0
以下のソースコードの/* a */を埋めなさい。
public class Reverse { public static void main(String[] args) { int[] order = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; System.out.println("正順"); for (int i = 0; i < order.length; i++) { System.out.print(order[i] + " "); } System.out.println(""); System.out.println("逆順"); for (/* a */) { System.out.print(order[i] + " "); } System.out.println(); } }
問題4 数列の回転
次のような出力を得たい。
元の数列 1 2 3 4 5 6 7 8 9 上下反転 7 8 9 4 5 6 1 2 3 左右反転 3 2 1 6 5 4 9 8 7 左に90度回転 3 6 9 2 5 8 1 4 7 左に180度回転 9 8 7 6 5 4 3 2 1 右に90度回転 7 4 1 8 5 2 9 6 3
以下のコードの欠けている部分を埋めなさい。
class RotationOfTheSequence { public static void main(String[] args) { int num[][] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; System.out.println("元の数列"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { System.out.print(num[i][j] + "\t"); } System.out.println(""); } System.out.println("上下反転"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //ここにソースコードを入力 } System.out.println(""); } System.out.println("左右反転"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //ここにソースコードを入力 } System.out.println(""); } System.out.println("左に90度回転"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //ここにソースコードを入力 } System.out.println(""); } System.out.println("左に180度回転"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //ここにソースコードを入力 } System.out.println(""); } System.out.println("右に90度回転"); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { //ここにソースコードを入力 } System.out.println(""); } } }