基本情報技術者科目Bの擬似言語とデータ構造オリジナル・公式資料照合難易度★★☆☆☆
空のスタックに対して、push(4)、push(7)、x←pop()、push(2)、y←pop()、z←pop()を順に実行する。pushは先頭へ積み、popは最後に積んだ要素を取り出す。x,y,zの組はどれか。
A
(4,7,2)
先に入れた4から出すのはキューのFIFOの考え方です。スタックはLIFOです。
B
(7,4,2)
最初のpop後に2を積むので、次のpopは4より先に2を返します。
C
(2,7,4)
最初のpopの時点では2はまだ積まれていないのでx=2にはなりません。
D
(7,2,4)★ 正解
最初に7、次に新しく積んだ2、最後に残った4が取り出されます。
解説
スタックは後入れ先出しです。内容は[4]→[4,7]→[4]→[4,2]→[4]→空と変化します。
根拠資料・確認情報
対応範囲:2026年度 基本情報技術者試験 科目A・B
資料確認日:2026-10-28
同じレッスンの問題
問題 1
配列a={3,8,2,7,4}の添字は1から始まる。次の擬似言語を実行した後のsはどれか。
s ← 0
for i を 1 から 5 まで1ずつ増やす
if a[i] mod 2 = 0
s ← s + a[i]
endif
endfor
modは整数の剰余を表す。
問題 2
添字1~5の配列a={6,4,9,2,7}を次の処理で探索する。x=9のとき、返す値はどれか。
i ← 1
while i ≦ 5 and a[i] ≠ x
i ← i + 1
endwhile
if i ≦ 5
return i
else
return 0
endif
andは左側が偽なら右側を評価しない。
問題 3
昇順配列a={2,5,8,12,16,23,38}の添字は1~7である。二分探索でlow=1, high=7から開始し、mid=floor((low+high)/2)とする。x=16を探し、a[mid]<xならlow=mid+1、a[mid]>xならhigh=mid-1にする。比較する添字midの順序はどれか。
問題 5
配列a={2,2,5,5,5,2}の隣接する同じ値を一つのまとまりとして数える。次の処理のgroupsは最終的に幾つか。添字は1~6である。
groups ← 1
for i を 2 から 6 まで1ずつ増やす
if a[i] ≠ a[i-1]
groups ← groups + 1
endif
endfor