カコモンノート

問6基本情報技術者 平成31年度 春期

6 / 80問
平成31年度 春期

三つのスタック A, B, C のいずれの初期状態も [1, 2, 3] であるとき,再帰的に定義された関数 f( ) を呼び出して終了した後の B の状態はどれか。ここで,スタックが [a₁, a₂, …, aₙ₋₁] の状態のときに aₙ を push した後のスタックの状態は [a₁, a₂, …, aₙ₋₁, aₙ] で表す。

この問題の図
問題に添えられた図。出典は下に書いています。

選択肢をえらぶと、答えと解説が出ます

選択肢をえらぶと、
ここに答えと解説が出ます
正答 1

解説

最初の呼出しで A から 3 を取り出して C に積み,次の呼出しで 2,その次で 1 を C に積むと,A が空になって呼出しが戻り始める。戻るたびに C から取り出して B に push するので,C の最後に積んだ 1 から順に 1,2,3 が B に積まれる。初めの [1, 2, 3] の後ろに続き,B は [1, 2, 3, 1, 2, 3] になる。

KEY POINT
再帰で積んだ値は,戻るときに後から積んだものから順に取り出される
出典:平成31年度 春期 基本情報技術者試験 午前 問6(独立行政法人 情報処理推進機構(IPA))
独立行政法人情報処理推進機構(IPA)が公表している過去問題です。IPA の「過去問題の使用について」に基づき、IPA が指定する形で出典を明記して掲載しています(利用の許諾申請は不要)。問題文・選択肢の内容は変えていません。本文は IPA が公表した問題冊子の頁を人が読んで起こし、別の読み手が原本と突き合わせています。その都合で、改行・字間の空白は省き、英数字の全角・半角は元とそろえていない箇所があります。図表は IPA が公表した問題冊子のものです。解説は当サイトが独自に作成したもので、IPA とは関係ありません。