課題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 今年度の誕生日は過ぎましたね。