以下のプログラムを読んで問題に答えよ。
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 = 1;
for (int i=0; i<n; i++) {
total *= 2; } System.out.println(total); } } |
次の文はこのプログラムの概要を説明するものである。
この概要に沿ってプログラム内の空欄を埋めよ。
ユーザが入力した整数nに対し、2のn乗を計算し表示する
プログラム。ただし、nが0未満の場合は考慮しない。
問題 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
(b*b > a*a)
t1 = a;
else
t1 = b; if (d*d > c*c)
t2 = c; else
t2 = d; if
(t1*t1 > t2*t2)
System.out.println(t2);
else
System.out.println(t1); } } |
次の文はこのプログラムの概要を説明するものである。
この概要に沿ってプログラム内の空欄を埋めよ。
ユーザが入力した4つの整数(負の数や0の可能性もある)の中で、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 (t*t > b*b)
t = b; if (t*t > c*c) t
= c; if (t*t > d*d)
t = d;
System.out.println(t); } } |
以下のプログラムを読んで問題に答えよ。
package
j1.exam01; public class B02 { public static void
main(String[] args) {
for (int i = 1; i <= 50; i++) { if
(i % 10 == i / 10) {
System.out.println(i);
} } } } |
次の文はこのプログラムの概要を説明するものである。
空欄に適切な語を入れて完成させよ。
ただし,i/10あるいはi%10という式,商あるいは剰余という言葉を空欄に入れてはいけない。
1から50までの整数のうち1の位の数と10の位の数が等しい整数を表示するプログラム。
ただし、演算子 %
は剰余(割った余り)を計算する演算子である。
問題 5
以下のプログラムが問題4のプログラムと同じ結果を出力するように、空欄を埋めよ。
package
j1.exam01; public class C01 { public static void
main(String[] args) {
for (int i = 0; i < 40 ; i
+= 11) {
System.out.println(i + 11); } } } |
以下のプログラムを読んで問題に答えよ。
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