練習問題10
基本知識
問 1-1
while文の様に、条件が先に判定される繰り返しをなんと呼ぶか。
問 1-2
do~while文の様に、条件が後に判定される繰り返しをなんと呼ぶか。
プログラム読取
次のプログラムは、何を表示するためのプログラムなのか、
処理内容や変数名から判断して答えよ。
処理内容や変数名から判断して答えよ。
問 2-1
#include <stdio.h>
int main(void)
{
int year = 0;
double money = 10000;
while (money < 15000) {
year++;
money *= 1.01;
}
printf("%d , %f\n", year, money);
return 0;
}
プログラム書取
問 3-1
テストの点数を入力するプログラムを作りたい。
ただし、テストの点数は0~100までしかないので、
それ以外が入力された場合には再入力させるようにすること。
ただし、テストの点数は0~100までしかないので、
それ以外が入力された場合には再入力させるようにすること。
記述式
問 4-1
do~while文はなぜ入力チェックに向いているのかを簡潔に説明せよ。
基本知識(解答例)
解 1-1
先判定
解 1-2
後判定
プログラム読取(解答例)
解 2-1
金利年1%の銀行に10000円を預けた場合に、
それが15000円になるのに何年かかるかを表示するプログラム。
それが15000円になるのに何年かかるかを表示するプログラム。
プログラム書取(解答例)
解 3-1
#include <stdio.h>
int main(void)
{
int score;
do {
printf("点数を入力して下さい:");
scanf("%d", &score);
} while (score < 0 || score > 100);
printf("入力された点数 %d\n", score);
return 0;
}
再入力の時にメッセージを表示させたい場合には次のようにする。
変数scoreに0が入っているかどうかで初めの入力かどうかを区別している。
scoreに0が入力された場合はループから抜けるので、条件がかぶることはない。
解 3-1 解答2
#include <stdio.h>
int main(void)
{
int score = 0;
do {
if (score != 0)
printf("点数は 0~100の範囲で入力して下さい。\n");
printf("点数を入力して下さい:");
scanf("%d", &score);
} while (score < 0 || score > 100);
printf("入力された点数 %d\n", score);
return 0;
}
問題
記述式(解答例)
解 4-1
do~while文は後判定ループなので、初めに必ず1回は実行され、
入力を行わないという事態が起こらないため。
入力を行わないという事態が起こらないため。
本サイトについて
苦しんで覚えるC言語(苦C)はC言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。




