見出し画像

C言語教室 第12回(続) - 課題と演習

第12回は說明が長くなってしまったので、課題と演習は別の記事にしました。今回は今までの全体を対象とした中間テストにしたいと思います。今の時期は中間テストでは無いような気もしますが、それはさておき。

課題1
長方形の短辺と長辺の長さを引き数として、長方形の面積を求める関数を書きなさい。なお長さは整数でよい。

課題2
課題1で書いた関数を引き数付きマクロを使って書き直しなさい。

課題3
円の半径を引き数として、円の面積を求める関数を書きなさい。なお半径は整数で良いが面積は小数とする。円周率はマクロを使って定義しなさい。

課題4
整数の配列と要素の数を引き数で渡し、配列のそれぞれの要素にゼロを代入する関数を書きなさい。

課題5
整数の配列と要素の数を引き数で渡し、配列のそれぞれの要素にランダムな値を代入する関数を書きなさい。ランダムな値を得るには stdlib.h で定義されている rand() を使うこと。

課題6
課題5で作った配列を引き数で渡して、この配列に含まれる値の最小値を返す関数を書きなさい。

課題7
課題6で作った関数を参考にして、配列に含まれる値の最小値と、最小値であった要素がいくつあったのかを返す関数を書きなさい。

課題8
引き数で渡された文字列の中に、もっとも多く含まれる文字と、その数を返す関数を書きなさい。含まれる文字の数が同じ場合には、どの文字を返しても良い。

課題9
引き数で渡された3つの文字列を動的に確保した領域に連結して返す関数を書きなさい。2つの文字列を連結する関数を書いて使っても良い。stdlib.h にある realloc() も参考にすること。

演習
main関数は実は int main(int argc, char** argv) という形でコマンドラインの引き数を受け取ることが出来ます。最初の引き数にコマンドライン引き数の数、次の引き数にコマンドラインで渡された文字列へのポインタが入っている配列が渡されます。これを解釈してコマンドラインで与えられた文字列を表示するコードを書きなさい。

さて、たくさん書いてしまったので、解答を用意するのも大変です。期限は設けていませんので、少しずつ進めていただいても良いかと思います。設問の意味がわからない時はコメントで質問してくださいね。

ヘッダ画像は いらすとや より

https://www.irasutoya.com/2016/05/blog-post_605.html


この記事が気に入ったらサポートをしてみませんか?