問題 1

以下のプログラムを読んで問題に答えよ。

 

package j1.exam01;

import java.io.*;

public class A01 {

    public static void main(String[] args) throws IOException {

        BufferedReader reader

= new BufferedReader(new InputStreamReader(System.in));

        System.out.print("input> ");

        int n = Integer.parseInt(reader.readLine());

        int total = 0;

        for (int i = 1; i <= n; i++ ) {

            total += i;

        }

        System.out.println(total);

    }

}

 

 

次の文はこのプログラムの概要を説明するものである。

この概要に沿ってプログラム内の空欄を埋めよ。

 

ユーザが入力した整数nに対し、1からnまでの和を計算し表示する

プログラム。ただし、n0未満の場合は考慮しない。
問題 2

以下のプログラムを読んで問題に答えよ。

 

package j1.exam01;

import java.io.*;

public class A02 {

    public static void main(String[] args) throws IOException {

        BufferedReader reader

= new BufferedReader(new InputStreamReader(System.in));

        System.out.print("入力(1):");

        int a = Integer.parseInt(reader.readLine());

        System.out.print("入力(2):");

        int b = Integer.parseInt(reader.readLine());

        System.out.print("入力(3):");

        int c = Integer.parseInt(reader.readLine());

        System.out.print("入力(4):");

        int d = Integer.parseInt(reader.readLine());

        int t1, t2;

        if ( a*a > b*b )

            t1 = a;

        else

            t1 = b;

        if ( c*c > d*d )

            t2 = c;

        else

            t2 = d;

        if (t1*t1 > t2*t2)

            System.out.println( t1 );

        else

            System.out.println( t2 );

    }

}

 

次の文はこのプログラムの概要を説明するものである。

この概要に沿ってプログラム内の空欄を埋めよ。

 

ユーザが入力した4つの整数(負の数や0の可能性もある)の中で、絶対値が一番大きいもの(たとえば,その二乗が一番大きい数と考えるとよい)を表示するプログラム。
問題 3

以下のプログラムが問題2のプログラムと同じ結果を出力するように、空欄を埋めよ。

 

package j1.exam01;

import java.io.*;

public class B01 {

    public static void main(String[] args) throws IOException {

        BufferedReader reader

= new BufferedReader(new InputStreamReader(System.in));

        System.out.print("入力(1):");

        int a = Integer.parseInt(reader.readLine());

        System.out.print("入力(2):");

        int b = Integer.parseInt(reader.readLine());

        System.out.print("入力(3):");

        int c = Integer.parseInt(reader.readLine());

        System.out.print("入力(4):");

        int d = Integer.parseInt(reader.readLine());

        int t = a;

        if ( b*b > t*t )

            t = b;

        if ( c*c > t*t )

            t = c;

        if ( d*d > t*t )

            t = d;

        System.out.println(t);

    }

}


問題 4

以下のプログラムを読んで問題に答えよ。

 

package j1.exam01;

public class B02 {

    public static void main(String[] args) {

        for (int i = 1; i <= 50; i++) {

            if (i % 7 == 0) {

                System.out.println(i);

            }

        }

    }

}

 

次の文はこのプログラムの概要を説明するものである。

空欄に適切な語を入れて完成させよ。

 

1  から   50 までの整数のうち 7の倍数  を表示するプログラム。

 

ただし、演算子 % は剰余(割った余り)を計算する演算子である。
問題 5

以下のプログラムが問題4のプログラムと同じ結果を出力するように、空欄を埋めよ。

 

package j1.exam01;

public class C01 {

    public static void main(String[] args) {

        for (int i =   7    ;   i <= 50  ; i += 7) {

            System.out.println(   i    );

        }

    }

}


問題 6

以下のプログラムを読んで問題に答えよ。

 

package j1.exam01;

 

public class C02 {

    public static void main(String[] args) {

        for (int i = 1; i <= 9; i++ ) {

            for ( int j = 1; j <= i; j++ ) {

                System.out.print("-");

                int col = i * j;

                if ( col < 10 )

                    System.out.print("-");

                System.out.print(col);

            }

            System.out.println("-");

        }

    }

}

 

上記のプログラムを実行したら、以下のように表示された。

 

--1-

--2--4-

--3--6--9-

--4--8-12-16-

--5-10-15-20-25-

--6-12-18-24-30-36-

--7-14-21-28-35-42-49-

--8-16-24-32-40-48-56-64-

--9-18-27-36-45-54-63-72-81-

 

この表示が行われるように、プログラム内の空欄を埋めよ。
問題 7

以下のプログラムを読んで問題に答えよ。

 

package j1.exam01;

import java.io.*;

public class C03 {

    public static void main(String[] args) throws IOException {

        BufferedReader reader

= new BufferedReader(new InputStreamReader(System.in));

        System.out.print("生徒の人数を入力:");

        int students = Integer.parseInt(reader.readLine());

        System.out.print("日直の人数を入力:");

        int dayOn = Integer.parseInt(reader.readLine());

        int permutation = 1;

        for (int i = students;  i > students - dayOn ; i--) {

            permutation *= i;

        }

        int factorial = 1;

        for (int i = 1;  i <= dayOn ; i++) {

            factorial *= i;

        }

        int combination = permutation / factorial;

        System.out.println("組み合わせの数は" + combination + "通り");

    }

}

 

次の文はこのプログラムの概要を説明するものである。

この概要に沿ってプログラム内の空欄を埋めよ。

 

生徒の人数と、その生徒の中から選ばれる日直の人数を入力させ、

その組み合わせの数を計算し表示するプログラム。
問題 7 に対するヒント

 

生徒の人数がn人で、日直の人数をr人とすると、生徒の中から日直を選ぶ組み合わせの数 C は以下の式で求められる。

 

C = n! / ((n-r)! * r!) = n * (n-1) * ... * (n-r+1) / r!

 

n! nの階乗を表すものとし、nの階乗は以下の式で表される。

 

n! = n * (n-1) * ... * 1

1! = 1

0! = 1