独学サポート

過去問演習

大学入学共通テスト 2025年度 本試験
情報Ⅰ
第3問

問1 【ア、イ】
 工芸品1から4までは、すでに図1で割当てが示されている。工芸品4は、部員2(ア)2(イ)日目から1日間制作することが読み取れる。
【ウ、エ、オ】
 規則に従って工芸品5以降の割当てを決めていくと、次のとおりとなる。
 工芸品5 … 部員2(ウ)3(エ)日目~5(オ)日目
 工芸品6 … 部員3:4日目~7日目
 工芸品7 … 部員1:5日目~6日目
 工芸品8 … 部員2:6日目~9日目
 工芸品9 … 部員1:7日目~9日目
2 1点
2 1点
2 2点
3 2点
5 2点
問2 【カ】
 配列Akibiには、添字で指定された部員が空きになる日付が格納される。図1の状況では、部員1の空き日は5日目、部員2の空き日は3日目、部員3の空き日は4日目である。したがって、Akibi[1] = 5、Akibi[2] = 3、Akibi[3] = 4(カ)である。
【キ】
 図4に示されたプログラムの意図は次のとおりと考えられる。
 (03)行目: 変数tantouは、担当部員となる現在の候補者を表す。その初期値を部員1に設定する。
 (04)~(06)行目: 部員2から最後の部員まで、(部員数-1)回の繰り返しが行われる。その回の繰り返しで着目される部員の番号は変数buinに格納されている。
 (06)行目: 変数tantouに変数buinを代入していることから、担当部員の候補者を上書き更新していると考えられる。今回の繰り返しで着目している部員が新たな候補者となる。
 (05)行目: 担当部員の候補者を更新するべき条件が設定されている。今回の繰り返しで着目している部員の空き日が、現在の候補者の空き日よりも早い場合には、候補者を置き換える必要がある。すなわち、「Akibi[buin] が Akibi[tantou] よりも小さい」場合には、(06)行目を実行する。よって、適当なプログラムは ① Akibi[buin] < Akibi[tantou](キ) である。
(※なお、仮に Akibi[buin] <= Akibi[tantou](Akibi[buin] が Akibi[tantou] 以下である)と記述したとすると、空き日が同じであった場合に部員番号の大きい部員のほうが候補として優先される結果となる。イコールを含めないことは、規則中の「複数いる場合はそのうち最小の番号の部員」という部分に対応している。)
【ク】
 Akibi = [5, 6, 4, 4, 4]、buinsu = 5 としてプログラムの実行結果をたどり、(06)行目の代入が何回行われるかをカウントする。(04)~(06)行目は、buin = 2 から buin = 5 まで、4回繰り返される。
 1回目: tantou = 1, buin = 2 であり、Akibi[2] = 6 と Akibi[1] = 5 が比較され、(06)行目は実行されず、tantou = 1 のままである。
 2回目: tantou = 1, buin = 3 であり、Akibi[3] = 4 と Akibi[1] = 5 が比較され、(06)行目が実行され、tantou = 3 となる。
 3回目: tantou = 3, buin = 4 であり、Akibi[4] = 4 と Akibi[3] = 4 が比較され、(06)行目は実行されず、tantou = 3 のままである。
 4回目: tantou = 3, buin = 5 であり、Akibi[5] = 4 と Akibi[3] = 4 が比較され、(06)行目は実行されず、tantou = 3 のままである。
 以上より、(06)行目の代入は1(ク)回行われる。
4 2点
3点
1 2点
問3 図5に示されたプログラムの意図は次のとおりと考えられる。
【ケ、コ】
 (02)行目: 工芸品の数を表す変数kougeihinsuを 9 に設定する。
 (05)~(11)行目: 工芸品の数だけ繰り返しが行われ、すべての工芸品について、それぞれの担当部員が決められ表示される。その回の繰り返しで扱われる工芸品の番号は、変数kougeihinに格納されている。
 したがって、(05)行目では、①kougeihin(ケ)を 1 から④kougeihinsu(コ)まで 1 ずつ増やしながら繰り返す。
【サ、シ】
 (10)行目: それぞれの工芸品について、担当部員と、何日目から何日目まで製作するかを表示する。(06)行目から(09)行目の処理で担当部員が確定され、(10)行目の時点では、Akibi[tantou]は、担当に決まった部員の空き日(=製作開始日)を表している。このとき製作終了日は、製作開始日にその工芸品の製作日数を足して 1 を引いた日付となる。すなわち、表示すべき製作終了日は、Akibi[tantou] + ② Nissu[kougeihin] - 1(サ)である。
(※Nissuは要素数9の配列であり、1~3の値しかとらない変数tantouをその添字に用いることはそもそもおかしいので、①③⑤は除去できる。また④のように記述すると、kougeihin = 1 となる1回目の繰り返しでNissu[0]を参照することになってしまい、一般にエラーとなる。)
 (11)行目: 担当に決まった部員の空き日を更新する。新たな空き日(=製作終了日の翌日)は、更新前の空き日にその工芸品の製作日数を足した日付である。すなわち、適当なプログラムは Akibi[tantou] = Akibi[tantou] + ⓪ Nissu[kougeihin](シ)となる。
2点
2点
3点
3点