基本情報技術者試験 科目Bの「令和5年度 サンプル問題 問2」(関数から関数を呼び出す)を、図解トレースで解説します。単純な処理であれば、マウスポインタを使ってメインとなるプログラムを追えば充分です。
動画で見たい方はこちら▼
問題(令和5年度 サンプル問題 問2)
次の記述中の【 】に入れる正しい答えを,解答群の中から選べ。
次のプログラムにおいて,手続 proc2 を呼び出すと,【 】の順に出力される。
○ proc1()
"A" を出力する
proc3()
○ proc2()
proc3()
"B" を出力する
proc1()
○ proc3()
"C" を出力する
解答群
ア ”A”, “B”, “B”, “C”
イ ”A”, “C”
ウ ”A”, “C”, “B”, “C”
エ ”B”, “A”, “B”, “C”
オ ”B”, “C”, “B”, “A”
カ ”C”, “B”
キ ”C”, “B”, “A”
ク ”C”, “B”, “A”, “C”
本番さながらの環境で解いてみたい方はこちら↓
解説
正解は ク “C”, “B”, “A”, “C” です。
呼び出す proc2 から、proc1 と proc3 も呼び出されます。処理がシンプルなので、いま実行している行にマウスポインタを当てながらトレースすれば追えます。ここでは ⇐ をポインタと見立てて解説します。
① proc2 の proc3()
○ proc2()
proc3() ⇐
"B" を出力する
proc1()
proc3 は「”C” を出力する」だけなので、ポインタは動かさず、出力結果に反映します。
出力結果
| C | |||
|---|---|---|---|
② proc2 の "B" を出力する
○ proc2()
proc3()
"B" を出力する ⇐
proc1()
出力結果
| C | B | ||
|---|---|---|---|
③ proc1 の "A" を出力する
proc2()はこれで終わりなので、ポインタを proc1 に移してしまいます。
○ proc1()
"A" を出力する ⇐
proc3()
出力結果
| C | B | A | |
|---|---|---|---|
④ proc1 の proc3()
proc3 は「”C” を出力する」です。
出力結果
| C | B | A | C |
|---|---|---|---|
よって正解は ク “C”, “B”, “A”, “C” です。
Point: いま実行している行にポインタを当てる
手続が別の手続を呼ぶ問題でも、処理が短ければ書き出さなくてOK。今どの行を実行しているかにポインタを当てながら、実行結果を紙にトレースすれば、見失うことはありません。
関連リンク

関連動画
関数の基礎から学べる動画です。
講座の全動画はこちら(プレイリスト)。
6/30まで限定 無料プレゼント
サンプル問題だけ解いても、
合格できません
サンプル問題は応用ばかり。学習には不向きで、非効率です。段階的に学べるオリジナル問題50問を加えた学習専用サイトを、今だけ無料でプレゼント中
⏱ 2分で終わるアンケートに答えるだけ!
▶ アンケートに答えてサイトを受け取る
※ Googleフォーム(SSL)に移動します