問題

選択肢
- 1a: stackPos / b: stackPos + 1
- 2a: stackPos / b: stackPos - 1
- 3a: stackPos - 1 / b: stackPos + 1
- 4a: stackPos - 1 / b: stackPos - 1
正解
2. a: stackPos / b: stackPos - 1
詳しい解説を見る解説を閉じる
解説
stackPos は「次に値を格納する位置」を示す(初期値 3 で、要素 1・2 に値があり要素 3 が空)。push では現在の空き位置 stackPos に値を入れてから位置を一つ進めるので、a は stackPos そのものが正しい(その後 stackPos ← stackPos + 1)。pop ではスタックの先頭(最後に積んだ値)は次の格納位置の一つ手前、すなわち stackPos - 1 にある。プログラムは先に stackPos を更新してから stack[stackPos] を読み出すため、b は stackPos - 1 とすれば更新後の stackPos が先頭要素を指し、正しく取り出せる。したがって a=stackPos、b=stackPos - 1 の組合せ「イ」が正しい。(出典: 令和7年度 基本情報技術者試験 科目B 問3)
一問一答
科目A 180問+科目B 60問