基本情報トップに戻る
練習問題難易度: 標準2025年度

基本情報技術者 過去問練習問題 第3問

問題

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

の図表

選択肢

  1. 1a: stackPos / b: stackPos + 1
  2. 2a: stackPos / b: stackPos - 1
  3. 3a: stackPos - 1 / b: stackPos + 1
  4. 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問

練習問題の関連問題

この調子で演習を続けよう

スキマ資格では基本情報の全2398問を分野別・難易度別に体系的に学習できます。基本情報技術者は科目A(広く浅く)と科目B(プログラミング・アルゴリズム)の両輪での対策が必要です。