次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。
関数 pushは 引数で与えられた整数をスタックに格納する。格納できた場合はtrue を返し、格納できなかった場合は false を返す。
関数 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
出典令和7年度 基本情報技術者試験 科目B 問3
a | b | |
|---|---|---|
ア | stackPos | stackPos + 1 |
イ | stackPos | stackPos - 1 |
ウ | stackPos - 1 | stackPos + 1 |
エ | stackPos - 1 | stackPos - 1 |