4-2 if文演習

問題をやってみましょう

実際に演習問題をやってみましょう。
見るのと、実行するのでは大きく違うのですよ。
簡単だと思っても、実行してみましょう。
これが大きな力になります。

問題1 点数判定

int型の変数 tensu にテストの点をセットして以下の判定(カッコ内)を表示してください。
60点未満なら「再試験です」
60点以上~80点未満なら「合格です」
80点以上なら「エクセレントです」
1回目は tensu = 30 で実行し、2回目以降は、60, 80. 90で実行してください。

問題2 偶数奇数判定

int型の変数 val に数字をセットし、偶数、奇数を表示してください。
表示方法は以下のように行ってください。
「xxは偶数です」
「xxは奇数です」
xxは数値の値です。
1回目は val = 4 で実行し、2回目は 5 で実行してください。

問題3 身長比較

int型の変数にのぞみちゃんの身長168センチを入れ、
int型の変数にりほちゃんの身長158センチを入れて、
「XXちゃんはXXちゃんよりXXセンチ身長が高い」
と表示してください。

問題4 論理式 

次の1行のif文を書いてください(3問です)。
プログラミングは必要ありません。

x が10以上で、かつ20以下であるならば、y に1をセット
x が10未満、または20より大きいならば、y に1をセット
x が10より大きくないならば、y に1をセット

問題5 論理演算

次の論理演算の結果、真になるか偽になるかを表に書き込んでください。

結果(真・偽)
10>2 && 10<=15
12>3 && 15>30
80<=7 && 39>20
30<5 && 10>20
16>7 || 10>8
31>11 || 7<3
20<10 || 15>5
15<3 || 20<10
!(10 <= 2)
!(5 == 5)
(1==1 || 1==2) && 3==3
(1==1 || 1==2) && 3 !=3
!((1==1 || 1==2) && 3 !=3)

解答

正解したか確認してください。
コンパイルと実行の方法を忘れた方は、こちらへどうぞ。
プログラムのファイル名は適当に命名してください。

解答1

#include <stdio.h>

int main()
{
    int tensu = 80; // 変更して実行する

    if (tensu < 60) {
        printf("再試験です\n");
    } else if (tensu < 80) {
        printf("合格です\n");
    } else {
        printf("エクセレントです\n");
    }

    return 0;
}

60点ジャストとか80点ジャストの点の時に注意してくださいね。
変数は宣言と同時に値を入れることもできます。

解答2

#include <stdio.h>

int main()
{
    int val = 5; // 変更して実行する
    int amari;

    amari = val % 2; //2で割った余り

    if (amari > 0) {
        printf("%d は奇数です\n", val);
    } else {
        printf("%d は偶数です\n", val);
    }

    return 0;
}

解答3

#include <stdio.h>

int main()
{
    int nozomi = 168; //のぞみちゃん
    int riho   = 158; //りほちゃん
    int sa;

    sa = nozomi - riho; //身長差

    if (sa > 0) {
        // のぞみが高い
        printf("のぞみちゃんは、りほちゃんより %d センチ身長が高い\n", sa);
    } else {
        // のぞみが低い
        printf("りほちゃんは、のぞみちゃんより %d センチ身長が高い\n", -sa);
    }

    return 0;
}

のぞみちゃんと、りほちゃんの身長を逆転して確認してくださいね。
上記の例ではprintfのパラメータ、-saに注意してください。
saはマイナス値なので、符号を付けて正の値に戻しています。

解答4

x が10以上で、かつ20以下であるならば、y に1をセット
⇒ if (x>=10 && x<=20) y = 1;
x が10未満、または20より大きいならば、y に1をセット
⇒ if (x<10 || x>20) y = 1;
x が10より大きくないならば、y に1をセット
⇒ if (!(x>10)) y = 1;

解答5

結果
10>2 && 10<=15
12>3 && 15>30
80<=7 && 39>20
30<5 && 10>20
16>7 || 10>8
31>11 || 7<3
20<10 || 15>5
15<3 || 20<10
!(10 <= 2)
!(5 == 5)
(1==1 || 1==2) && 3==3
(1==1 || 1==2) && 3 !=3
!((1==1 || 1==2) && 3 !=3)

コメント

タイトルとURLをコピーしました