問1(基礎):5人の身長を入力し、その平均値を求めるプログラムを配列を用いて作成せよ
問2(基礎):1から100までの数字を全て配列に入力し,その中からまず3の倍数だけを出力し,次に5の倍数だけを出力するプログラムを作成せよ.
問3(基礎):問2を拡張して、ユーザが入力した任意の数字の倍数を出力するプログラムに変更せよ.
問4(応用):文字列を入力し、その文字列を逆から表示するプログラムを作成せよ.入力される文字は英数字のみと仮定してよい.
ヒント:まず文字列の最後(ヌル文字'\0')がどこか、前から順に探す。そこから一文字ずつ表示しながら逆行すればよい。
問5(応用):二つの文字列msg1, msg2が与えられたとき、msg1とmsg2
が同じかどうか比較する関数、int string_compare(char msg1[255],
char msg2[255]) を作成せよ。なお、この関数は、msg1とmsg2が等しければ整数値1を、そうでなければ0を返すものとする。さらに、main関数で、2つの文字列をユーザに入力させるようにし、string_compareの結果に基づいて、等しいかどうかを画面に表示するようにせよ。
問6(応用):1〜3学期の英数国の成績を入力し、以下のように学期ごとの平均を出力するプログラムを2次元配列を使って作成せよ
| |英語|数学|国語|平均| |1学期| 67| 78| 92| 79| |2学期| 70| 89| 84| 81| |3学期| 76| 97| 67| 80| |平均 | 71| 88| 81|
問7(応用):10個の数字を入力し、それらを小さいものから順に表示するバブルソートのプログラムを作成せよ
*バブルソートのアルゴリズム*
1番目のデータから順に見て行って、隣合う2つのデータを比較して、
逆順だったら入れ替える。最後までいったら、一番右に最大の要素が並
ぶことになる.再び最初に戻って,最後より一つ手前まで同じ事を続け
る。これを一番前まで続ける。
たとえば、4,2,3,1をバブルソートとする手順は
[1巡目]-先頭から最後のペアまで比較
1. 4と2を比較。4のほうが大きいので入替。2,4,3,1となる。
2. 4と3を比較。4のほうが大きいので入替。2,3,4,1となる。
3. 4と1を比較。4のほうが大きいので入替。2,3,1,4となる。
この時点で4が一番右に来る。
[2巡目]-先頭から最後から2つ目のペアまで比較
4. 2と3を比較。2のほうが小さいのでそのまま。
5. 3と1を比較。3のほうが大きいので入替。2,1,3,4となる。
3と4の比較は不要.この時点で3が右から2番目にくる。
[3巡目]-先頭から最後から3つ目のペアまで比較
6. 2と1を比較。2のほうが大きいので入替。1,2,3,4となる。
この時点で2が右から3番目にくる。
[4巡目]-先頭から最後から4つ目のペアまで比較
7. 比較するペアが無いので終了
ヒント:10個の数字は配列に入れる。隣同士の入れ替えは、
tmp = A[i]; /*A[i]の値を退避 */
A[i]=A[i+1]; /*A[i]をA[i+1]で上書き */
A[i+1]=tmp; /*A[i+1]に退避させたtmpを代入*/
のように行えばよい。
問8(発展):ハングマンゲームのプログラムを作成せよ。このゲームでは、マジックワードの長さだけがアンダーバー(_)で示されるので、その単語が何かを推測し、含まれると思う文字を入力する。文字を入力するたびに、マジックワードがその文字を含んでいるかをチェックし、含んでいればその文字を表示する。この問題では,マジックワードはプログラマが事前に設定するものとする.
開始時(マジックワード:cgengokensyu) ____________と表示 gと入力 _g__g_______と表示 ・・・・ 最後は”cgengokensyu”すべてが表示される
問9(発展):52枚のトランプをシャッフルし,5枚ずつ順番に表示するプログラムを配列を利用して作成せよ.
出力例: ハート クローバー ハート クラブ ダイヤ K 10 6 7 K next?(0):
このような形式で,5枚表示され,ユーザが0を押すと次の5枚が表示される.このようにしてランダムに表示を続け,52枚全部が表示されると,終了する(最後は2枚だけが表示されることになる).
以上