繰り返しの問題

Print Friendly, PDF & Email

ここでは、当社の新人研修受講者に向けて、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("");
        }

    }
}

 

セイ・コンサルティング・グループのお問い合わせ