次のプログラム中の 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(独立行政法人情報処理推進機構)
問題文・選択肢・正解は公開問題のとおりで、改変していません。解説と補足は当サービスによるものです。