【未経験からのプログラミング講座】STEP2 総合課題

Pocket

4. 総合課題

4.1. 課題1

整数の定数として下から正しいものを選び、それがbyteshortintlongのどの型になるか答えよ。

[選択肢]

[A] 123456789012345
[B] 3.2 
[C] 0xABCD 
[D] 038 
[E] 0x33L
[F] 55555L

4.2. 課題2

次の文の中から正しいものを選べ。

[選択肢]

[A] 浮動小数点数の型は、floatとdoubleだけである。
[B] float型とdouble型の違いは、扱える値の範囲のみで、精度(有効桁数)は同じである。
[C] float型の無限大は、Float.NaN、double型の無限大は、Double.NaNとして定義されている。

4.3. 課題3

次の宣言があるとき、下の文で、コンパイルエラーにならないものを選択してください。

boolean b = true;
char c = 'x';

[選択肢]

[A] if (b) {
    System.out.println("true");
}
[B] b=1;
[C] if ( c ==12 ) {
    System.out.println("true");
}
[D] int a = c + 1;
[E] c = 6;
[F] c = -6;

4.4. 課題4

次をコンパイル、実行すると、変数a, b, c, dの値はどうなるか選択してください。

1:  int a = 1, b = 2, c, d;
2:  d = a++ + ++b - --c;

[選択肢]

[A] a=1、b=2、c=-1、d=4
[B] a=2、b=2、c=-1、d=5 
[C] a=2、b=1、c=0、d=2
[D] 2行目でコンパイルエラーになる。

4.5. 課題5

次をコンパイル、実行すると結果はどうなるか。下から選択してください。

1:  int a = 17, b = 2, c;
2:  double x = 17, y = 2, z;
3:  c = -a % -6 / b++;
4:  z = -x % -6 / y++;
5:  System.out.println("a=" + a + " b=" + b + " c=" + c);
6:  System.out.println("x=" + x + " y=" + y + " z=" + z);

[選択肢]

[A] コンパイルエラーになる。
[B] a=17 b=3 c=2 x=17.0 y=3.0 z=2.5 と出力される
[C] a=17 b=3 c=-2 x=17.0 y=3.0 z=-2.5 と出力される
[D] a=-17 b=2 c=-2 x=-17.0 y=2.0 z=-2.5 と出力される
[E] 実行時に例外が発生する。

4.6. 課題6

次の宣言があるとき、下の各文をコンパイル、実行したとき、正常に実行されるものを選択してください。

1:     int[] a = {1, 2, 3};
2:     int[] b = {4, 5, 6};
3:     short x = 2;
4:     long y = 2;
5:     double z = 2;

[選択肢]

[A] a[x] = 10;
[B] a[y] = 20;
[C] a[z] = 30;
[D] a[3] = 50;
[E] a = b;

4.7. 課題7

ある商品の消費税込みの価格を求めるプログラムを作成します。下記のプログラムに処理を追加して消費税をtaxという変数に代入しておき、商品の税込み金額を出力するプログラムを完成させてください。(コード中のコメントを参考に作成してください)

[TaxMain.java]

public class TaxMain {
    public static void main(String args[]) {
        // double型のtaxという名前の変数を宣言し、0.05を代入してください。

        // 次の処理は100円の商品の税込み金額を出力する処理です。
        System.out.println("税込み金額:" + 100 * (1 + tax) + "円");
        System.out.println("税額:" + 100 * tax + "円");
    }
}

 

実行例は次のようになります。

 

C:¥java>java TaxMain
税込み金額:105.0円
税額:5.0円

4.8. 課題8

通常の電卓で計算している様子を表すプログラムを作成します。ここでは、「1 + 2 × 2」という計算を行ってください。注意しなければならないのは電卓で上記の式を計算すると、まず「1 + 2」を計算し、その結果に「」を掛け合わせるので計算結果は「」になるという点です。そのため、まずanswerという変数を宣言し、その変数に計算結果を代入していくようにしてください。(コード中のコメントを参考に作成してください)

[CalcMain.java]

public class CalcMain {
    public static void main(String args[]) {
        // int型でanswerという名前の変数を宣言します。

        // 変数answerに「1 + 2」の結果を代入します。

        // 変数answerに「answer × 2」の結果を代入します。

        // 変数answerの値を出力します(この部分は作成済みです)。
        System.out.println("計算結果:" + answer );
    }
}

実行例は次のようになります。

C:¥java>java CalcMain
計算結果:6

4.9. 課題9

現在の時刻から午前、午後を判断するプログラムを作ってみましょう。変数timeには現在の時間(0〜23)が代入されています(コードの詳細説明は割愛します)。timeの値が12未満なら「午前中です」と出力し、それ以外なら「午後です」と出力してください。

[TimeCheck.java]

// 時間を取得するために使用します。
import java.util.GregorianCalendar; 

public class TimeCheck {
    public static void main(String args[]){
        // 現在の時間を取得
        int time = new GregorianCalendar().get(GregorianCalendar.HOUR_OF_DAY);
        
        // 以下にif〜else文を使い午前・午後を判断する処理を記述してください。

    }
}

実行例は次のようになります。

 

C:¥java>java TimeCheck
午前中です
※午前中に実行した場合の実行結果です。

4.10. 課題10

実行時に曜日を指定するとその曜日の英語を出力するプログラムを作成してください。実行するときには「」、「」、「」・・・のように指定します。また、入力された文字をchar型にキャストする処理ですが、今回はその部分は作成済みです。char型の変数dayOfWeekに指定した曜日が代入されていますので、その後の処理を記述してください。

[EnglishOfDayOfWeek.java]

public class EnglishOfDayOfWeek {
    public static void main(String args[]){
        // 実行時に指定した引数をchar型に変換する処理
        char dayOfWeek = args[0].charAt(0);

        // 以下にswitch文を使った曜日を出力する処理を記述してください。

    }
}

実行例は次のようになります。

C:¥java>java EnglishOfDayOfWeek 月
Monday

4.11. 課題11

1から100までの数字の合計を求めるプログラムをwhile文を使って作成してください。

[Addition.java]

public class Addition {
    public static void main(String args[]){
        int answer = 0;
        // 以下に繰り返し処理を行い、1から100まで順番にanswerに足していく処理を記述してください

        // answerを出力
        System.out.println("answer=" + answer );
    }
}

実行例は次のようになります。

C:¥java>java Addition
answer=5050

4.12. 課題12

4.11. 課題11でwhile文を利用して作成したサンプルを、for文を利用して行うように変更してください。

[Addition2.java]

public class Addition2 {
    public static void main(String args[]){
        int answer = 0;
        // 以下にfor文で、1から100まで順番にanswerに足していく処理を記述してください

        // answerを出力
        System.out.println("answer=" + answer );
    }
}

実行例は次のようになります。

C:¥java>java Addition2
answer=5050