質問です。
C言語の勉強をはじめたばかりで、下記の問題の正答に納得できない部分があります。

Q1:関数に数値を渡すために宣言する変数のことをなんと呼ぶか。
自分の答え:実引数
  正答 :仮引数

Q2:関数を作るのは何のためか、簡潔に説明せよ。

自分の答え:プログラムとは関数の集まりであり、関数を作らない限り動作しないから。
  正答 :機能別に関数を作り、それを組み合わせることでプログラム全体が完成し、
      大きなプログラムでも作りやすくなるため。

Q1
実引数=呼び出し側の関数が関数側に渡す数値。
仮引数=関数側が呼び出し側から実引数を受け取るための特別な変数。
というように理解していたので、渡すための変数なら実引数のように思えたのですが、
なぜ仮引数になるのか。
Q2
大きなプログラム云々の前に、関数を作るのはプログラムをつくるためだと思うのですが、
なぜこのような正答になるのか。

長文ですみませんが、アドバイスもらえたら助かります。宜しくお願いします。