次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。…

科目B アルゴリズムとプログラミング 科目B 問3

次のプログラム中の [a] と [b] に入れる正しい答えの組合せを,解答群の中から選べ。ここで,配列の要素番号は1 から始まる。関数push は,引数で与えられた整数をスタックに格納する。格納できた場合はtrue を返し,格納できなかった場合はfalse を返す。関数pop は,スタックから値を取り出して返す。スタックが空のときは未定義の値を返す。スタックを,要素数が4 である大域の整数型の配列stack,及び次に値を格納する位置を示す大域の変数stackPos で表現する。スタックの初期状態を図に示す。プログラムでは,配列の領域外を参照してはならないものとする。

基本情報技術者 2025年度(令和7年度)公開問題 科目B 問3の表(1/2)基本情報技術者 2025年度(令和7年度)公開問題 科目B 問3の表(2/2)基本情報技術者 2025年度(令和7年度)公開問題 科目B 問3の選択肢の図
参考:擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)

問題冊子の末尾に載っている参考のページです。

擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)擬似言語の記述形式(基本情報技術者試験,応用情報技術者試験用)
正答 イ
正答は イ。a:stackPos、b:stackPos - 1 の組合せです。 【変数の意味】 stackPos は「次に値を格納する位置」です。初期状態ではstack[1]=4、stack[2]=3 が入っていて、stackPos=3 です。 ・push:いまの stackPos の位置に格納し(a:stackPos)、stackPos を 1 増やします ・pop:最後に格納した値は stackPos の一つ手前にあるので、stackPos を 1 減らしてから(b:stackPos - 1)、その位置の値を取り出します
解説の続きをみる続きを閉じる
【トレース】 push(5) stackPos=3 ≦ 4 → stack[3]←5、stackPos←4、true push(6) stackPos=4 ≦ 4 → stack[4]←6、stackPos←5、true push(7) stackPos=5 > 4 → false(満杯で格納しない) pop()  stackPos=5 > 1 → stackPos←4、stack[4] の 6 を返す pop()  stackPos=4 > 1 → stackPos←3、stack[3] の 5 を返す pop()  stackPos=3 > 1 → stackPos←2、stack[2] の 3 を返す pop()  stackPos=2 > 1 → stackPos←1、stack[1] の 4 を返す pop()  stackPos=1 で条件が偽 → 未定義の値を返す(空) 後から入れた値から順に取り出され、配列の領域外も参照しないので、スタックとして正しく動きます。 【ほかの選択肢】 ア(a:stackPos、b:stackPos + 1) 誤り   → 初期状態で pop すると stackPos が 4 になり、最後に入れた 3 ではなく    未定義の stack[4] を取り出す。満杯(stackPos=5)で pop するとstack[6] を参照し、配列の領域外になる ウ(a:stackPos - 1、b:stackPos + 1) 誤り   → a も b も誤り(a の問題はエと同じ、b の問題はアと同じ) エ(a:stackPos - 1、b:stackPos - 1) 誤り   → 初期状態で push(5) すると stack[2] に書き込み、入っていた 3 を    上書きしてしまう。空(stackPos=1)のときの push ではstack[0] を参照し、配列の領域外になる

出典:令和7年度 基本情報技術者試験 科目B 公開問題 問3(独立行政法人情報処理推進機構)出典元ページ

最終更新日

この回を通しで解く この分野を年度横断で解く

「科目B アルゴリズムとプログラミング」のほかの問題

  1. 2024年度(令和6年度)公開問題 科目B 問3次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  2. 2024年度(令和6年度)公開問題 科目B 問4次の記述中の [  ] に入れる正しい答えを,解答群の中から選べ。
  3. 2024年度(令和6年度)公開問題 科目B 問5次のプログラム中の [a] ~ [c] に入れる正しい答えの組合せを,解答群の中から選べ
  4. 2026年度(令和8年度)公開問題 科目B 問1次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  5. 2026年度(令和8年度)公開問題 科目B 問2次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。
  6. 2026年度(令和8年度)公開問題 科目B 問3次のプログラム中の [  ] に入れる正しい答えを,解答群の中から選べ。

問題文・解答の修正依頼

スポンサーリンク