課題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
%