大学入学共通テスト(情報) 過去問
令和4年度(2022年度)本試験
問41 (<旧課程>情報関係基礎(第3問) 問1)
問題文
Kさんは、あみだくじを表示するプログラムを作ろうと考えた。どの文字も同じ幅で表示されることを仮定して、記号の「┃」・「┣」・「┫」という文字と改行を使うことにした。文字の左右および行間に隙間のない表示をすれば、これらの記号がつながって、あみだくじの線に見える。
あみだくじには縦線が2本以上、横線が1本以上ある。プログラムを簡単にするため、横線は隣り合う縦線の間のみを結ぶとし、一つの行にはちょうど1本だけ横線があるとした。
例えば、縦線が3本で横線が4本であるあみだくじを、図1のように4行で表示する。この図で点線は文字の枠を示しており、各行の右端で改行している。このあみだくじの一番上の横線は左から2本目と3本目の縦線を結んでおり、「┃」・「┣」・「┫」と改行をこの順に表示することで1行目を出力できる。上から2番目の横線は左から1本目と2本目の縦線を結んでおり、1行目の表示に続けて「┣」・「┫」・「┃」と改行をこの順に表示することで2行目を出力できる。3行目と4行目も同様である。
次の文章を読み、空欄( ア )に最も適当なものを、後の解答群のうちから一つ選べ。
表示したいあみだくじを指定するために、縦線の本数を変数tateに、横線の位置の情報を整数の配列Yokosenに、横線の本数を変数yokoに入れることにした。配列の要素Yokosen[y]がxであることは、上からy番目の横線が左からx番目の縦線とx+1番目の縦線を結ぶことを表す。
例えば、図1のあみだくじを表示するには、tateを( ア ),yokoを4と設定し、Yokosen[1]←2,Yokosen[2]←1,Yokosen[3]←( イ ),Yokosen[4]←( ウ )と設定する。以下では、配列の要素の並びを[ ]でくくって配列全体を表すことがある。例えば、上記のように設定されたYokosenは[2,1,( イ ),( ウ )]と表せる。
このようにtate,yoko,Yokosenが設定されているとき、あみだくじを表示する手続きとして、図2を作成した。
図2 あみだくじを表示する手続き
(01)yを1からyokoまで1ずつ増やしながら、
(02)│ x←1
(03)│ x≦tateの間、
(04)│ │ もし( エ )ならば
(05)│ │ │ 「┣」を改行なしで表示する
(06)│ │ │ 「┫」を改行なしで表示する
(07)│ │ │ ( オ )
(08)│ │ を実行し、そうでなければ
(09)│ │ │ 「┃」を改行なしで表示する
(10)│ │ │ x←x+1
(11)│ │ を実行する
(12)│ を繰り返す
(13)│ 改行を表示する
(14)を繰り返す
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
大学入学共通テスト(情報)試験 令和4年度(2022年度)本試験 問41(<旧課程>情報関係基礎(第3問) 問1) (訂正依頼・報告はこちら)
Kさんは、あみだくじを表示するプログラムを作ろうと考えた。どの文字も同じ幅で表示されることを仮定して、記号の「┃」・「┣」・「┫」という文字と改行を使うことにした。文字の左右および行間に隙間のない表示をすれば、これらの記号がつながって、あみだくじの線に見える。
あみだくじには縦線が2本以上、横線が1本以上ある。プログラムを簡単にするため、横線は隣り合う縦線の間のみを結ぶとし、一つの行にはちょうど1本だけ横線があるとした。
例えば、縦線が3本で横線が4本であるあみだくじを、図1のように4行で表示する。この図で点線は文字の枠を示しており、各行の右端で改行している。このあみだくじの一番上の横線は左から2本目と3本目の縦線を結んでおり、「┃」・「┣」・「┫」と改行をこの順に表示することで1行目を出力できる。上から2番目の横線は左から1本目と2本目の縦線を結んでおり、1行目の表示に続けて「┣」・「┫」・「┃」と改行をこの順に表示することで2行目を出力できる。3行目と4行目も同様である。
次の文章を読み、空欄( ア )に最も適当なものを、後の解答群のうちから一つ選べ。
表示したいあみだくじを指定するために、縦線の本数を変数tateに、横線の位置の情報を整数の配列Yokosenに、横線の本数を変数yokoに入れることにした。配列の要素Yokosen[y]がxであることは、上からy番目の横線が左からx番目の縦線とx+1番目の縦線を結ぶことを表す。
例えば、図1のあみだくじを表示するには、tateを( ア ),yokoを4と設定し、Yokosen[1]←2,Yokosen[2]←1,Yokosen[3]←( イ ),Yokosen[4]←( ウ )と設定する。以下では、配列の要素の並びを[ ]でくくって配列全体を表すことがある。例えば、上記のように設定されたYokosenは[2,1,( イ ),( ウ )]と表せる。
このようにtate,yoko,Yokosenが設定されているとき、あみだくじを表示する手続きとして、図2を作成した。
図2 あみだくじを表示する手続き
(01)yを1からyokoまで1ずつ増やしながら、
(02)│ x←1
(03)│ x≦tateの間、
(04)│ │ もし( エ )ならば
(05)│ │ │ 「┣」を改行なしで表示する
(06)│ │ │ 「┫」を改行なしで表示する
(07)│ │ │ ( オ )
(08)│ │ を実行し、そうでなければ
(09)│ │ │ 「┃」を改行なしで表示する
(10)│ │ │ x←x+1
(11)│ │ を実行する
(12)│ を繰り返す
(13)│ 改行を表示する
(14)を繰り返す
- 1
- 2
- 3
- 4
正解!素晴らしいです
残念...
この過去問の解説 (2件)
01
この問題では、前提条件を正確に把握しておくことが大切です。
tateは縦線の本数を格納する変数なので、問題文にあるように正解は3本になります。
縦線は1本ではないので、不正解
縦線は2本ではないので、不正解
縦線は3本なので、正解
縦線は4本ではないので、不正解
変数tateが何の数字を格納するためのものか、問題文を正確に読み解きましょう。
参考になった数0
この解説の修正を提案する
02
正解は「3」です。
問題文より、tateはあみだくじの縦線の本数が入る変数です。
図1は縦線が3本あるので、3が解答になります。
行単位で分割する必要はなく、あみだくじ全体を見たときの縦線の合計です。
不適切です。あみだくじには2本以上の縦線が必要です。
不適切です。
適切です。冒頭で説明したように、図1のあみだくじの縦線は3本です。
不適切です。
tateはあみだくじの縦線の本数が入る変数です。
変数の定義は、落ち着いて問題文から整理しましょう。
参考になった数0
この解説の修正を提案する
前の問題(問40)へ
令和4年度(2022年度)本試験 問題一覧
次の問題(問42)へ