練習問題18
基本知識
問 1-1
プログラム中に値が変更されない変数をなんと呼ぶか。
問 1-2
置き換え機能を利用して作られた簡易的な関数をなんと呼ぶか。
プログラム読取
次のプログラムでは、マクロTRIは何のためのマクロなのか。
処理内容や変数名から判断して答えよ。
処理内容や変数名から判断して答えよ。
問 2-1
#include <stdio.h>
#define TRI(A, H) ((A) * (H) / 2)
int main(void)
{
int side, high, square;
scanf("%d,%d", &side, &high);
printf("%d\n", TRI(side, high));
return 0;
}
プログラム書取
問 3-1
練習問題11で作成した、
「西暦年を入力するとオリンピックが開かれるか表示するプログラムを作成せよ。
ただし、オリンピックの開催を計算する部分は別の関数として作成せよ。」
という問題を元に、さらに関数の戻り値をenum定数で返すようにしなさい。
「西暦年を入力するとオリンピックが開かれるか表示するプログラムを作成せよ。
ただし、オリンピックの開催を計算する部分は別の関数として作成せよ。」
という問題を元に、さらに関数の戻り値をenum定数で返すようにしなさい。
記述式
問 4-1
数値を直接書き込むか変数を使えば良いのにもかかわらず、
わざわざ定数を使うのはなぜか理由を間接に説明せよ。
わざわざ定数を使うのはなぜか理由を間接に説明せよ。
基本知識(解答例)
解 1-1
定数
解 1-2
マクロ
プログラム読取(解答例)
解 2-1
3角形の面積を求めるマクロ。
プログラム書取(解答例)
解 3-1
#include <stdio.h>
int olympic(int year);
enum {
OLYMIPC_NON,
OLYMIPC_SUMMER,
OLYMIPC_WINTER,
};
int main(void)
{
int year, hold;
scanf("%d", &year);
hold = olympic(year);
switch (hold) {
case OLYMIPC_NON:
printf("開かれない\n");
break;
case OLYMIPC_SUMMER:
printf("夏季五輪\n");
break;
case OLYMIPC_WINTER:
printf("冬季五輪\n");
break;
};
return 0;
}
int olympic(int year)
{
if (year % 2 == 0) {
if (year % 4 == 0) {
return OLYMIPC_SUMMER;
} else {
return OLYMIPC_WINTER;
}
} else {
return OLYMIPC_NON;
}
}
※開催状態に名前がつけられたことによって、
0.1.2といった数値で区別するよりも、わかりやすくなっています。
記述式(解答例)
解 4-1
名前を付けておくことでわかりやすくなり、変更も用意になる。
さらに定数は代入が出来ないため、間違って値を変更することがなく、バグの現象につながる。
さらに定数は代入が出来ないため、間違って値を変更することがなく、バグの現象につながる。
本サイトについて
苦しんで覚えるC言語(苦C)はC言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。




