Final2026comment

From Prog0

Jump to: navigation, search

2026年度期末試験 採点基準・別解、講評等

Contents

問題1

(1)はおおむねできていた印象ですが、(o)の関数の引数に関する設問についてはやや低めの正答率でした。

(2)は解答欄を間違えているものが多少ありました。また、(b1)は、%.1fが正解ですが、整数部+小数点を含めた%4.1fも正解としました。なお、%3.1fだと桁が足りないのですが、表示上は正しく表示されるので、おまけしてあります。

(3)の(a)は数学記号で書いたものがありました。

(4)を含め、全体を通して、書式指定子は十分区別がついていないと思われる解答がありました。(a)について、"%g"は不正解です。問題では変数の値は設定していないため、必ず実数形式で表示するには"%f"とする必要があります。

問題2

問題2の採点基準

基本的に問題文で与えられている”choice”や”result”のスペルミスは大目に見て正答としていますが、”continue”や”default”のスペルミスは間違いとしました。 また、(h)において”(double)num1/num2”や、(b)において”1*choice”など、不必要な動作を加えている学生がいましたが、模範解答の実行結果と相違がなければ正答としています。

しかし、(b)において”choice%1”などそもそもの実行結果が変わってしまうようなものは間違いとしています。 アスタリスクを☆(五芒星)のように書く学生もいましたが、今回は間違いとしています。

問題2の講評

(a)~(f),(h),(j)はよくできていました。

しかしながら、全体的にスペルミスや乱雑な書き方が目立ちました。特にアルファベットのa,n,uは丁寧に書くようにしてください。 (g)の”continue”を”break”と書く学生が非常に多かったです。また、”default”のスペルが怪しい学生も非常に多かったです。

問題3

採点基準は

(b) 「%d」「%lf」それぞれ1点です。カンマなどそれ以外の文字が含まれている場合は減点しています。

(c) 「EOF」と「-1」を正解としています。

(g),(h) はそれぞれ「temperature[max_index]」, 「temperature[min_index]」でも正解としています。

(l) 「currenttime % 3600」も正解としています。

他、(k),(l),(m)は、演算結果が正しい場合には、解答例と異なる場合でも正解としています。

全体に、temperatureのスペルミスはおまけで正解としていますが、その他の変数名の誤りや、コンパイルエラー・ワーニングとなる記述は誤答としました。

最後に、特にscanf()の返り値とEOFの使い方について復習をしてください。

問題4

(e)の別解としてsanno+=1を認めました。(b)の&忘れが非常に多く、また(g)の正答率も低く、完答が稀でした。

全体としてよく解けていた答案と全く的外れの回答しているものと二極分化していました。 できなかった問題はよく復習してください。

問題5

(a) ほとんどの方が正しく回答できていたと思います。 先頭の#を別の記号で書いてあるケースがありました。 間違えないように注意してください。

(b) 多かった誤答は 1. scanfにおいて&をつけ忘れていた 2. 出力のフォーマットが違う 3. マクロを使用していない 4. 改行を表す"\n"を"/n"と記述してしまう

でした。

(c) ほとんどの方が正答でした。

(d) 多かった誤答は、 ・ grade[stu_num - 1][i] の-1がない でした。

(e) キャストし忘れが多かったです。 整数 / 整数だと小数点以下が切り捨てられてしまうことに注意してください。

(f) (g) (h)に関してはほとんどの方が正答でした。

全体としては、ある程度理解できている人と、基礎的な部分でつまずいている人との差が大きいように感じられました。間違いが多かった方はよく復習しておくようにしてください。

問題6

関数の基本的な使い方を問う穴埋め問題でした。

(a), (b) ここだけセミコロンを自分で書く必要があるのですが、忘れていた人がいました。また、mul10()関数の戻り値は実数であることが問題文中で指定されているにも関わらず、int型にしていた人がいました。同時に(l)もintと答えてしまい、さらに減点される結果になっています。

(g), (j) 問題文冒頭の説明では、「小数点以下一位で四捨五入する」手順として10を乗じ、10で割るという記述になっていますが、このプログラム自体は任意の桁数で四捨五入する機能を持ちます。このため、10ではなくmul10(n)を使う必要があるところ、10で答えた人が多かったです。また、round_to()関数内で使うべきなのは変数(仮引数)xであるところ、main()関数側のvalを使ってしまった人がいました。変数の有効範囲に気をつけましょう。

(i) 小数点以下を切り捨てる方法としてint型にキャストすることを問うています。正答率が低いことを心配していましたが、杞憂でよかったです。

問題7

採点基準

全問共通で、スペルミスとわかるものは正答とみなしました。

1箇所のミスにつき1点減点しました。ただし、同種のミスが2箇所以上ある場合は、1箇所のミスとみなしました。

そのほか、解答と同じ結果が得らえるものについては正答としました。

<比較的ミスが多かった問題> (c), (d) 「&」を忘れる人が多かったです。

(g), (h) 戻り値が double型 なのにも関わらず、結果に用いる変数を int型 で定義してしまっている人が多かったです。

(h) ヘロンの公式を使う際、「*」を入れずに、問題文の公式をそのまま書いてしまっている人が多かったです。

Personal tools