科目Bアルゴリズム

2025年春 科目B 問3
アルゴリズムの過去問

まずは自分で考えて、理由を確かめよう。

LET'S TRY

問題文

次のプログラム中の a と b に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1から始まる。


関数pushは,引数で与えられた整数をスタックに格納し,格納できた場合はtrueを返す。関数popはスタックから値を取り出して返す。スタックは要素数4の配列stackとstackPosで表現。


初期状態: stackPos=3, stack={4, 3, 未定義, 未定義}


〔プログラム〕

○論理型: push(整数型: inputData)

if (stackPos ≦ stackの要素数)

stack[ a ] ← inputData

stackPos ← stackPos + 1

return true

else : return false

endif


○整数型: pop()

整数型: popData ← 未定義の値

if (stackPos > 1)

stackPos ← b

popData ← stack[stackPos]

stack[stackPos] ← 未定義の値

endif

return popData

当てはまるものを、ひとつ選んでね。

1〜4キーで選択し、Enterキーで採点できます。

出典:令和7年度 基本情報技術者試験 科目B 問3
IPAの公開問題について ↗

LET'S UNDERSTAND

キホン猫と、理由を確かめよう。

自分で考えてから、解説を開いてみてね。

正解と解説を見る

正解は イ です。

push: stackPosが次に格納する位置を示すので,stack[stackPos]に格納してから+1する(a=stackPos)。pop: まずstackPosを-1してから,その位置の値を取り出す(b=stackPos-1)。初期状態でstackPos=3,stack[1]=4,stack[2]=3の場合,pop()→stackPos=2→popData=stack[2]=3が正しく取り出せる。

同じ分野の問題を探す →

この問題を、学びのノートに。

Xでシェア ↗

学習ノートを読み込んでいます…