課題1
下記のプログラムをif1.cとして書き、様々な数値で試して正しく 実行されることを確認せよ。
#include <stdio.h>
int main(void) {
int x;
printf("数字を1つ入力してください ");
scanf("%d", &x);
if (x > 0){
printf("正です\n");
} else if (x < 0){
printf("負です\n");
} else {
printf("0です\n");
}
return 0;
}
(実行結果) % ./a.out 数字を1つ入力してください -9 負です % % ./a.out 数字を1つ入力してください 8 正です % % ./a.out 数字を1つ入力してください 0 0です
課題2
入力された2つの数字の大小を比較するプログラムが下記に示されているが、 一部分が******で隠されている。隠された部分を補って、 下記のプログラムをif2.cとして書き、様々な数値で試して正しく 実行されることを確認せよ。
#include <stdio.h>
int main(void) {
int a, b;
printf("データを2つ入力してください ");
scanf("%d%d", &a,&b);
if (*********) {
printf("%dが%dより大きい。\n", a, b);
} else if (*********) {
printf("%dが%dより大きい。\n", b, a);
} else {
printf("どちらも同じ。\n");
}
return 0;
}
(実行結果) % ./a.out データを2つ入力してください 10 20 20が10より大きい。 % % ./a.out データを2つ入力してください 30 10 30が10より大きい。 % % ./a.out データを2つ入力してください 15 15 どちらも同じ。
課題3
入力された誕生月により表示させるメッセージを変える 下記のプログラムを、*****で隠された部分を補って if3.cとして書き、様々な数値で試して正しく実行されることを確認せよ。
ちなみに、春夏秋冬の区分は下記の通りとする。
| 春 | 3, 4, 5月 |
|---|---|
| 夏 | 6, 7, 8月 |
| 秋 | 9, 10, 11月 |
| 冬 | 12, 1, 2月 |
#include <stdio.h>
int main(void) {
int a;
printf("あなたの誕生月を入力してください ");
scanf("%d", &a);
if (************************) {
printf("誕生月は春ですね。\n");
} else if (************************) {
printf("誕生月は夏ですね。\n");
} else if (************************) {
printf("誕生月は秋ですね。\n");
} else if (************************) {
printf("誕生月は冬ですね。\n");
} else {
printf("入力されたのは1から12までの数字ではありません。\n");
}
return 0;
}
(実行結果) % ./a.out あなたの誕生月を入力してください 12 誕生月は冬ですね。 % % ./a.out あなたの誕生月を入力してください 8 誕生月は夏ですね。 % % ./a.out あなたの誕生月を入力してください 13 入力されたのは1から12までの数字ではありません。
課題4
入力された点数により成績を表示させるプログラムを if4.cとして書き、様々な数値で試して正しく実行されることを確認せよ。 その際に、下記の実行結果を参考にせよ。 点数と成績との関係は下記の表の通りである。
| 点数の範囲 | 成績 |
|---|---|
| 80点以上100点以下 | A |
| 70点以上80点未満 | B |
| 60点以上70点未満 | C |
| 0点以上60点未満 | D |
| 上記以外の数字 | 判定不能 |
(実行結果) % ./a.out テストの点数を入力してください。92 あなたの成績はAです。 % % ./a.out テストの点数を入力してください。59 あなたの成績はDです。 % % ./a.out テストの点数を入力してください。130 判定不能です。
課題5
入力された金額に応じて割引率が異なり、その割引率を考慮した上で、 支払い金額を表示させるプログラムをif5.cとして書き、様々な数値で試して 正しく実行されることを確認せよ。その際に、下記の実行結果を参考にせよ。
| 金額 | 割引 |
|---|---|
| 5000円以上10000円未満 | 1割引 |
| 10000円以上 | 2割引 |
(実行結果) % ./a.out 金額を入力してください 3000 3000円の支払いです。 % % ./a.out 金額を入力してください 9999 9999円の1割引きで9000円の支払いです。 % % ./a.out 金額を入力してください 6000 6000円の1割引きで5400円の支払いです。 % % ./a.out 金額を入力してください 15000 15000円の2割引きで12000円の支払いです。 % % ./a.out 金額を入力してください 19999 19999円の2割引きで16000円の支払いです。 % % ./a.out 金額を入力してください -1000 正しく金額を入力してください。
課題6
入力された数字が2および3で割りきれるかどうかを表示させるプログラムを if6.cとして書き、様々な数値で試して正しく実行されることを確認せよ。 その際に、下記の実行結果を参考にせよ。
(実行結果) % ./a.out 数字を1つ入力してください 14 14は2では割りきれますが、3では割りきれません。 % % ./a.out 数字を1つ入力してください 30 30は2でも3でも割りきれます。 % % ./a.out 数字を1つ入力してください 17 17は2でも3でも割りきれません。 % % ./a.out 数字を1つ入力してください 15 15は2では割りきれませんが、3では割りきれます。
課題7
var7.cを修正して、入力したアルファベットの次の文字を出力するプログラムを if7.cとして書け。ただし、zの次にはaを表示するものとする。
(実行結果1) % ./a.out 1文字ローマ字で入力してください b c (実行結果2) % ./a.out 1文字ローマ字で入力してください z a
課題8
if7.cを修正して、入力したアルファベットを含めた連続する3文 字を出力するプログラムをif8.cとして書け。
(実行結果1) % ./a.out 1文字ローマ字で入力してください b bcd (実行結果2) % ./a.out 1文字ローマ字で入力してください y yza
課題9
誕生月と誕生日、今日の月と日を入力させて、今年の誕生日が過ぎたか、まだか、 当日かを判定するプログラムを作りたい。 そのようなプログラムをif9.cとして書け。
(実行結果) % ./a.out 誕生月と日を入力してください 3 2 今日の月と日を入力してください 2 1 今年の誕生日はまだですね % % ./a.out 誕生月と日を入力してください 3 2 今日の月と日を入力してください 3 2 今日は誕生日ですね ! % % ./a.out 誕生月と日を入力してください 3 2 今日の月と日を入力してください 12 20 今年の誕生日は過ぎましたね。
課題10
上記の課題9を応用して、誕生月と誕生日、今日の月と日を入力させて、 今年度の誕生日が過ぎたか、まだか、 当日かを判定するプログラムを作りたい。 そのようなプログラムをif10.cとして書け。
(実行結果) % ./a.out 誕生月と日を入力してください 3 2 今日の月と日を入力してください 12 20 今年度の誕生日はまだですね % % ./a.out 誕生月と日を入力してください 3 2 今日の月と日を入力してください 3 1 今年度の誕生日はまだですね % % ./a.out 誕生月と日を入力してください 12 20 今日の月と日を入力してください 3 2 今年度の誕生日は過ぎましたね。