Mid2017comment

From Prog0

Jump to: navigation, search

Contents

全体についての講評

平均点は69.2点でした。最高点は98点、最低点は0点(欠席者)でした。

中間試験の目的は、これまでに学んだ内容の中で自分の理解が十分でない箇所を明らかにし、 それを克服して、期末試験までの後半の勉強につなげることです。 自分が間違ったところをよく復習して、正しく理解しておきましょう。


問1についての採点基準講評

配点:(1)から(5)まで基本的に各1点づつの配点です。(3)-(g)だけ特殊で、各行1点の配点となっています。

(1)、(2)は特に基本的なことの問題なのですが、 全問正解の人が少なく感じました。 間違ったところはハンドアウト等を見てしっかり復習してほしいです。

(3)から問題文をよく読んでない人が多くなっている印象がありました。 特に(g)では”このプログラムのprintfによる全出力を(g)に書きなさい(double型の表示桁数は小数点以下6桁とする)”と書いているのにもかかわらず、コメントがつけられた行や表示桁数の指定を無視した回答が非常に多く見られました。指示を無視した回答は、配点が各1点ということもあり、0点ということになってしまいます。非常に惜しい回答が多かったので、今後は注意してほしいです。

(4)についてなのですが、 空欄を埋めるということはプログラムを完成させるということです。 C言語では通常、^によるべき乗はできません。 数式として意味があっていても、プログラムとして間違っていると減点となりますので注意してください。

(5)なのですが非常に多くの人が間違えていました。 確かに、移動平均という聞き慣れない単語が出てきており、難しいと感じたと思うのですが、”これをもとに”と問題文に書いてある通り、元となるプログラムが書かれており、それをnに対応させれば案外簡単に解ける問題となっています。難しい問題でも、問題文にヒントが隠されていることが多々あります。なので、問題文をもっとよく読んでほしいです。


全体としては、問題文をよく読んでいないことによるミスが多く見られ、 非常に惜しいと感じました。もっと注意深く問題文を読み、問題文にあった回答を意識してもらいたいです。


問2についての採点基準講評

配点:(1)は1点、他は2点づつの配点となっています。

満点の人が多く、皆よくできていたと感じます。 その中で多かった間違いは(4)ですが、問題文のif文が長いために起きてしまったものだと思います。慌てずに、ifの中の処理がどのような場合に行うものなのかを見て条件式の中を見る、ということを見直しの際に行えば間違いに気づけたかもしれません。

全体としては非常によくできていたと思います。 見直しをしっかり行えば、もっと満点の人が多かったような印象を持ちました。


問3についての採点基準講評

配点: (a)から(c) 各5点, (d) 10点 計25点

すべての問題を基本的に減点法で採点しました。

全体的な採点基準: ループの範囲ミス、括弧抜け、演算子のミス、宣言忘れなどの細かいミス: -1点

printf文の記述無し : -2点

他、逐一相談の上、減点。

(a) この大問の中では出来が良かった。 printf("%d",*); といった、変な記述がしてある答案もあった。

(b) そもそもループを使用していない答案が見受けられた。 デバッグ用なのか(?)、紙面の答案に余計なprintf文を書いてある答案もあった。 新規で用意した変数を使っている答案もあったが、変数宣言をしていない答案もあった。

(c) コーディングの問題というよりは、べき乗の表現をそもそも理解していない答案がかなり多かった。 また、べき乗の表現をする際、 出力例のprintf文に"^"があったから、これを多様している学生が多かったが、これは不適切である。 二重ループを使っている答案があった。

(d) ループの範囲のミス、条件式の大小関係の細かいミスが目立った。 実行例と違うprintf文が書いてある答案が多かった。要求仕様をしっかり問題文から把握するようにすると良い。


問4についての採点基準講評

配点:(a)も(b)も基本的に加点法です。詳細は以下に示します。

(a) printfが1点、while(1), scanf, 入力終了、cntによるループ脱出が各2点 奇数判定、配列への代入、cntのインクリメントも各2点です。 無限ループを使わないで、while(cnt<10)を使っていた場合は4点 与えています。ただし、ループの脱出処理やインクリメントを 行なう場所が間違っていたものは不正解としました。 特に、inとcntのチェックを一つのif文に書いているものは、 どちらかの条件が破たんしています。また、配列の範囲外を使用している 解答もありました。 printfはほとんどの人が書き忘れていたり、ループ内に書いている 解答もありました。

(b) for、ループ内printfが各2点、改行が1点です。 printfはほとんどの人ができていましたが(たまに改行忘れがある程度)、 ループ回数を10回にしてしまっている間違いが多かったようです。 データ入力が途中で打ち切られることもありますので、実際に配列に 格納された個数(cnt)回のループが必要になります。

Personal tools