Final2021comment
From Prog0
Contents |
プログラミング入門 2021年度 期末試験結果について
採点結果は期末試験成績で公表されます(採点結果の準備には時間がかかりますので、ファイルが作成されるまでお待ちください)。
期末試験の平均点は 69.97 点。最高点は98点でした。
以上どちらのリンクとも、学内の計算機からアクセスしてください。なお、計算機室リプレース作業のため、コンピュータ演習室5,6は夏休み中は使えない予定です。演習室1 - 4等を利用してください。
期末試験の講評
問題1
採点基準と講評
- (1)に関してはよくできている学生が大半の印象でしたが、間違いが多い学生も数名見受けられました。復習をよくして欲しいと思います。
- (2)に関しては、カンマ(,)の抜けや、問題文をよく読んでいないミス(改行ま で出力させる問題で\nが抜けている)が多くありました。
- (3)は比較的よくできていました。
- (4)の正答率がとても低かったです。プログラムが上から順番に実行されるこ とを踏まえてcontinueの動きを復習して欲しいと思います。また、全ての問題に 通じることですが、コードをしっかりと読む習慣つけて欲しいと思います。
- (5)も全体的によくできていた印象です。間違っている学生は、whileの使い方 を復習して欲しいと思います。また、不等号の記述において数学的な書き方をし ている学生が多く、その場合は不正解扱いとさせていただきました。
全体的な採点基準として、コンパイルエラーが起こるものは不正解扱いとして採点させていただきました。
問題2
採点基準
- (1)の別解 n%6==0
- (2)の別解 n%6==2 || n%6==4
- caseのコロンがない場合は不正解
講評
- 出来は悪くはなかったが、caseやdefaultのコロン忘れで全てを失っている答案があった。(3)(8)でスペルミスで落としている例もあった。swich, defoult など
問題3
採点基準
- (1) 1行ごとに1点の部分点。
- (2) [4]は"<=", [5]は">="も正解。
講評
- (1)は2行目以降の出来が良くなくて、完答が少なかった。
- (2)は出来は良かったが[2]で0という答案が目立った。
問題4
講評
- (1)の出来が意外と良くなかった。ベン図(集合)の理解が心配です。
- (2)の出来が良かったが、&&と||を逆に覚えているらしき答案がありました。復 習してください。
問題5
採点基準と講評
- (1)
- [6]は無限ループですが、r!=0と条件を書いている人が多かった。
- [8]はbreakではなく、continueにしている人が複数人いた。
- (2)
- gcd=21のみの記入が多かった。
- 採点基準として、1行1点、余分な文や間違っている文があったら-1点ずつ減点。
問題6
採点基準と講評
- (a)
- cの配列の宣言ができなかった人が多かった。例としてc=i+jみたいな式を書い ている人が何人かいた。
- a,b,cを大文字で宣言している人が何人かいた。
- a = A[P,Q]みたいな表現をしている人が何人かいた。
- 配列の要素数のP,Q,Rを間違えている人が多かった。
- (b)
- j,kのループの上限でR,Qを間違えている人が何人かいた。
- Q-1で式に引っ張られている人が多く、そのせいで間違えた人が何人かいた。
- cの加算がうまくできない人が多かった。(+=みたいな処理ができなかった。)
- cの初期化をできている人が1割ほどだった。以下のいくつかの解答例を参照し てください。
ハンドアウトに記載している正解例。
for(i = 0; i < P; i++){ for(j = 0; j < R; j++){ c[i][j] = 0; for(k = 0; k < Q; k++){ c[i][j] += a[i][k] * b[k][j]; } } }
他に、以下のような場合も正解になります。
/* 変数kのループをk = 1からにする場合 */ for(i = 0; i < P; i++){ for(j = 0; j < R; j++){ c[i][j] = a[i][0] * b[0][j]; for(k = 1; k < Q; k++){ c[i][j] += a[i][k] * b[k][j]; } } }
/* k = 0の場合を別途処理する場合 */ for(i = 0; i < P; i++){ for(j = 0; j < R; j++){ for(k = 0; k < Q; k++){ if(k == 0) c[i][j] = 0; c[i][j] += a[i][k] * b[k][j]; } } }
/* 初期化のループを事前に行う場合 */ for(i = 0; i < P; i++) for(j = 0; j < R; j++) c[i][j] = 0; for(i = 0; i < P; i++){ for(j = 0; j < R; j++){ for(k = 0; k < Q; k++){ c[i][j] += a[i][k] * b[k][j]; } } }
問題7
採点基準と講評
- countの初期化忘れが目立ちました。
- forループの条件文で初期値をi=0で始める人が何人か見受けられました。
- 同じくforループの条件文で終端の設定が曖昧な方、文法のずれ等が見 られました。しっかりと問題文を読んで理解することが大事だと思います。
問題8
採点基準と講評
- 条件式の範囲による間違いが多かったです(とくにj側)。
- 不等号を≦で書いているものは減点しました。
- 配列の添え字を正しく対応できてないものは減点しました。
講評
- (1)は2行目以降の出来が良くなくて、完答が少なかった。
- (2)は出来は良かったが[2]で0という答案が目立った。