場合分け処理を行う

練習問題8

MMGames


基本知識


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文を欠いている場合は減点とする。
問題


記述式(解答例)


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

サイト目次


第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