MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
しんで覚えるC言語
しんで覚えるC言語

練習問題8

基本知識

問 1-1
条件が偽の時に実行する文をif文に追加するオプションは何か。


問 1-2
上記の文をいくつも組み合わせて使う書き方を俗になんと呼ぶか。


問 1-3
番号別に処理する文を分けたい時に使う文は何か。

プログラム読取
次のプログラムは、何を表示するためのプログラムなのか、
処理内容や変数名から判断して答えよ。

問 2-1
#include <stdio.h>

int main(void)
{
    int year;

    scanf("%d", &year);

    if (year % 2 == 0) {
        if (year % 4 == 0) {
            printf("summer\n");
        } else {
            printf("winter\n");
        }
    } else {
        printf("do not\n");
    }

    return 0;
}

プログラム書取

問 3-1
月を入力すると、対応する陰暦の月を表示するプログラムを作成せよ。
なお、存在しない月を入力した時にも何かのメッセージを表示せよ。

ヒント:陰暦は1月から順番に、
睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走

記述式

問 4-1
switch文では各case文の後にbreak文を置くのはなぜか。
また、これが不要なのはどんな場合か簡潔に述べよ。

基本知識(解答例)

解 1-1
else文


解 1-2
else-if文


解 1-3
switch文 あるいは switch~case文

プログラム読取(解答例)

解 2-1
西暦年を入力すると、オリンピックが開かれるかどうか表示する。

※前章の問題をif-else文で書き直したプログラムです
プログラム書取(解答例)

解 3-1
#include <stdio.h>

int main(void)
{
    int month;

    printf("月を入力して下さい。");
    scanf("%d", &month);

    switch (month) {
    case 1:
        printf("睦月\n");
        break;
    case 2:
        printf("如月\n");
        break;
    case 3:
        printf("弥生\n");
        break;
    case 4:
        printf("卯月\n");
        break;
    case 5:
        printf("皐月\n");
        break;
    case 6:
        printf("水無月\n");
        break;
    case 7:
        printf("文月\n");
        break;
    case 8:
        printf("葉月\n");
        break;
    case 9:
        printf("長月\n");
        break;
    case 10:
        printf("神無月\n");
        break;
    case 11:
        printf("霜月\n");
        break;
    case 12:
        printf("師走\n");
        break;
    default:
        printf("そんな月はありません。\n");
        break;
    }

    return 0;
}

※if文でも正解ですが、番号で数多く分岐する場合にはswitch文が適しています。
※default文を欠いている場合は減点とします。
※break文を忘れないように注意しましょう。
記述式(解答例)

解 4-1
switch文は、対応する番号のcase文までジャンプする機能しかないため、
break文を付けて、各case文の終わりでswitch文全体から抜け出るようにする必要がある。
しかし、各case文の処理に共通点がある場合に限り、そのままつなげても良い。



本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く