課題1
数字を入力させて、その数字の分だけ文字列を表示させる 下記のプログラムをfor1.cとして書き、様々な数値で試して 正しく実行されることを確認せよ。
#include <stdio.h> int main(void) { int i, x; printf("数字を1つ入力してください "); scanf("%d", &x); for (i=1; i<=x; i++){ printf("%d回目の表示\n", i); } return (0); }
(実行結果) % ./a.out 数字を1つ入力してください 5 1回目の表示 2回目の表示 3回目の表示 4回目の表示 5回目の表示
課題2
数字を入力させて、1からその数字までの和を表示させる プログラムがある。 ******で隠された部分は自分で補って、下記のプログラムをfor2.cとして書 き、様々な数値で試して正しく実行されることを確認せよ。
#include <stdio.h> int main(void) { int i, x, sum=0; printf("数字を1つ入力してください "); scanf("%d", &x); for (i=1; i<=x; i++){ ******************* } printf("1から%dまでの和 = %d\n", x, sum); return (0); }
(実行結果) % ./a.out 数字を1つ入力してください 6 1から6までの和 = 21
課題3
下記の実行結果のように図形を表示するプログラムをfor3.cとして 書き、正しく実行されることを確認せよ。
#include <stdio.h> int main(void) { int i, j; for (i=0; i<10; i++){ for (j=0; j<10-i; j++){ printf("*"); } printf("\n"); } return (0); }
(実行結果) % ./a.out ********** ********* ******** ******* ****** ***** **** *** ** *
課題4
下記の実行結果のように図形を表示するプログラムをfor4.cとして 書き、正しく実行されることを確認せよ。
#include <stdio.h> int main(void) { int i, j; for (i=0; i<10; i++){ for (j=0; j<i; j++){ printf(" "); } for (j=0; j<10; j++){ printf("*"); } printf("\n"); } return (0); }
(実行結果) % ./a.out ********** ********** ********** ********** ********** ********** ********** ********** ********** **********
課題5
課題3、4を参考にして、下記の実行結果のように図形を表示するプログラムを for5.cとして書き、正しく実行されることを確認せよ。
% ./a.out ********** ********* ******** ******* ****** ***** **** *** ** *
課題6
課題5を参考にして、下記の実行結果のように図形を表示するプログラムを for6.cとして書き、正しく実行されることを確認せよ。
% ./a.out ******************* ***************** *************** ************* *********** ********* ******* ***** *** *
課題7
for文を使用して、九九の値を表示するプログラムをfor7.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
(実行結果) % ./a.out 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
課題8
特定の月のカレンダーを表示させたい。その月の1日の曜日と、日数を入力さ せて、for文を使用して下記のようなカレンダーを表示させたい。 そのようなプログラムをfor8.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
補足:曜日を指定する数字が0から6までの数字でない場合、 また月の日数が28から31までの数字でない場合に、例外処理するのが 望ましいが、可能であれば対応するように。
(実行結果) % ./a.out カレンダーを表示させます 表示させたい月は何曜日から始まりますか?次の数字で答えてください 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土 5 表示させたい月は何日ありますか?数字を入力してください 28 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 % % ./a.out カレンダーを表示させます 表示させたい月は何曜日から始まりますか?次の数字で答えてください 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土 0 表示させたい月は何日ありますか?数字を入力してください 28 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 % % ./a.out カレンダーを表示させます 表示させたい月は何曜日から始まりますか?次の数字で答えてください 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土 0 表示させたい月は何日ありますか?数字を入力してください 31 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 %
課題9(余力のある人だけ)
課題8を発展させて、 特定の3ヶ月連続のカレンダーを表示させたい。最初の月の数、 最初の月の1日の曜日と、3ヶ月分の日数を入力させて、下記のようなカレンダーを 表示させたい。 そのようなプログラムをfor9.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
補足: 最初の月が1から12までの数字でない場合、 曜日を指定する数字が0から6までの数字でない場合、 また月の日数が28から31までの数字でない場合に、例外処理するのが 望ましい。
補足:関数を使用して作成した方が効率的である。
(実行結果) % ./a.out カレンダーを3ヶ月連続で表示させます 最初の月は何月ですか?1〜12の数字で答えてください 11 最初の月は何曜日から始まりますか?次の数字で答えてください 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土 3 最初、真ん中、最後の月は何日ありますか?数字を入力してください 30 31 31 11月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 12月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 % % ./a.out カレンダーを3ヶ月連続で表示させます 最初の月は何月ですか?1〜12の数字で答えてください 13 月を正しく入力してください % % ./a.out カレンダーを3ヶ月連続で表示させます 最初の月は何月ですか?1〜12の数字で答えてください 3 最初の月は何曜日から始まりますか?次の数字で答えてください 0:日, 1:月, 2:火, 3:水, 4:木, 5:金, 6:土 8 曜日の数を正しく入力してください %
課題10(余力のある人だけ)
課題9を発展させて、 下記の実行結果のように3ヶ月分を1段にして、1年分のカレンダーを表示させた い。1月1日の曜日と、うるう年かどうかを入力させるものとし、 各月の日数は予め配列に格納しておくものとする。 そのようなプログラムをfor10.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
補足:課題9と同様、関数を使用して作成した方が効率的である。
(実行結果) % ./a.out 1年分のカレンダーを表示します 1月1日の曜日を数字で入力してください 0:日 1:月 2:火 3:水 4:木 5:金 6:土 6 うるう年(2月が29日)であれば1、そうでなければ0を入力してください 0 1月 2月 3月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 1 2 3 4 5 1 2 3 4 5 2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19 16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26 23 24 25 26 27 28 29 27 28 27 28 29 30 31 30 31 4月 5月 6月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 1 2 3 4 5 6 7 1 2 3 4 3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11 10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18 17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25 24 25 26 27 28 29 30 29 30 31 26 27 28 29 30 7月 8月 9月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 1 2 3 4 5 6 1 2 3 3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10 10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17 17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24 24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30 31 10月 11月 12月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 1 2 3 4 5 1 2 3 2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10 9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17 16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24 23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31 30 31 % % ./a.out 1年分のカレンダーを表示します 1月1日の曜日を数字で入力してください 0:日 1:月 2:火 3:水 4:木 5:金 6:土 1 うるう年(2月が29日)であれば1、そうでなければ0を入力してください 1 1月 2月 3月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 1 2 7 8 9 10 11 12 13 4 5 6 7 8 9 10 3 4 5 6 7 8 9 14 15 16 17 18 19 20 11 12 13 14 15 16 17 10 11 12 13 14 15 16 21 22 23 24 25 26 27 18 19 20 21 22 23 24 17 18 19 20 21 22 23 28 29 30 31 25 26 27 28 29 24 25 26 27 28 29 30 31 4月 5月 6月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 4 1 7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 30 7月 8月 9月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7 7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14 14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21 21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28 28 29 30 31 25 26 27 28 29 30 31 29 30 10月 11月 12月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 1 2 1 2 3 4 5 6 7 6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21 20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30 31 24 25 26 27 28 29 30 29 30 31 %
課題11(余力のある人だけ)
課題10を発展させて、 1段に表示する月数(列数)を1, 2, 3の中から選択させて、 1年分のカレンダーを表示させたい。1〜3以外の数字が入力されたら、 3列表示するものとする。
1月1日の曜日と、うるう年かどうかを入力させるものとし、 各月の日数は予め配列に格納しておくものとする。 そのようなプログラムをfor11.cとして書き、数字の 桁が揃っている点も含めて正しく表示されることを確認せよ。
% ./a.out 1年分のカレンダーを表示します 1月1日の曜日を数字で入力してください 0:日 1:月 2:火 3:水 4:木 5:金 6:土 1 うるう年(2月が29日)であれば1、そうでなければ0を入力してください 1 1段に表示する月の数を1〜3の数字で入力してください 1 1月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 4月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 5月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 6月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 7月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 8月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 9月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 10月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 11月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 12月 日 月 火 水 木 金 土 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 % ./a.out 1年分のカレンダーを表示します 1月1日の曜日を数字で入力してください 0:日 1:月 2:火 3:水 4:木 5:金 6:土 1 うるう年(2月が29日)であれば1、そうでなければ0を入力してください 1 1段に表示する月の数を1〜3の数字で入力してください 2 1月 2月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 29 3月 4月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 1 2 3 4 5 6 3 4 5 6 7 8 9 7 8 9 10 11 12 13 10 11 12 13 14 15 16 14 15 16 17 18 19 20 17 18 19 20 21 22 23 21 22 23 24 25 26 27 24 25 26 27 28 29 30 28 29 30 31 5月 6月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 1 5 6 7 8 9 10 11 2 3 4 5 6 7 8 12 13 14 15 16 17 18 9 10 11 12 13 14 15 19 20 21 22 23 24 25 16 17 18 19 20 21 22 26 27 28 29 30 31 23 24 25 26 27 28 29 30 7月 8月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 29 30 31 9月 10月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 7 1 2 3 4 5 8 9 10 11 12 13 14 6 7 8 9 10 11 12 15 16 17 18 19 20 21 13 14 15 16 17 18 19 22 23 24 25 26 27 28 20 21 22 23 24 25 26 29 30 27 28 29 30 31 11月 12月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 1 2 3 4 5 6 7 3 4 5 6 7 8 9 8 9 10 11 12 13 14 10 11 12 13 14 15 16 15 16 17 18 19 20 21 17 18 19 20 21 22 23 22 23 24 25 26 27 28 24 25 26 27 28 29 30 29 30 31 % ./a.out 1年分のカレンダーを表示します 1月1日の曜日を数字で入力してください 0:日 1:月 2:火 3:水 4:木 5:金 6:土 1 うるう年(2月が29日)であれば1、そうでなければ0を入力してください 1 1段に表示する月の数を1〜3の数字で入力してください 5 1月 2月 3月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 1 2 7 8 9 10 11 12 13 4 5 6 7 8 9 10 3 4 5 6 7 8 9 14 15 16 17 18 19 20 11 12 13 14 15 16 17 10 11 12 13 14 15 16 21 22 23 24 25 26 27 18 19 20 21 22 23 24 17 18 19 20 21 22 23 28 29 30 31 25 26 27 28 29 24 25 26 27 28 29 30 31 4月 5月 6月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 4 1 7 8 9 10 11 12 13 5 6 7 8 9 10 11 2 3 4 5 6 7 8 14 15 16 17 18 19 20 12 13 14 15 16 17 18 9 10 11 12 13 14 15 21 22 23 24 25 26 27 19 20 21 22 23 24 25 16 17 18 19 20 21 22 28 29 30 26 27 28 29 30 31 23 24 25 26 27 28 29 30 7月 8月 9月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 6 1 2 3 1 2 3 4 5 6 7 7 8 9 10 11 12 13 4 5 6 7 8 9 10 8 9 10 11 12 13 14 14 15 16 17 18 19 20 11 12 13 14 15 16 17 15 16 17 18 19 20 21 21 22 23 24 25 26 27 18 19 20 21 22 23 24 22 23 24 25 26 27 28 28 29 30 31 25 26 27 28 29 30 31 29 30 10月 11月 12月 日 月 火 水 木 金 土 日 月 火 水 木 金 土 日 月 火 水 木 金 土 1 2 3 4 5 1 2 1 2 3 4 5 6 7 6 7 8 9 10 11 12 3 4 5 6 7 8 9 8 9 10 11 12 13 14 13 14 15 16 17 18 19 10 11 12 13 14 15 16 15 16 17 18 19 20 21 20 21 22 23 24 25 26 17 18 19 20 21 22 23 22 23 24 25 26 27 28 27 28 29 30 31 24 25 26 27 28 29 30 29 30 31 %