FUNDAMENTAL INFORMATION TECHNOLOGY ENGINEER
基本情報技術者の問題解説:次のプログラムで、show3を呼び出したときの出力順序はどれ…
問題
次のプログラムで、show3を呼び出したときの出力順序はどれか。
○show1() "L" を出力する ○show2() show1() "M" を出力する ○show3() "N" を出力する show2() show3()を呼び出す。
- ア N,M,L
- イ L,M,N
- ウ N,L,M(正解)
- エ L,N,M
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目B範囲
正解と解説
正解:N,L,M
見る場所:最初に実行されるのはshow3です。show3の中で先にNを出力し、その後show2へ移ります。show2ではshow1を先に呼んでからMを出します。
| 位置 | 処理 | 出力 |
|---|---|---|
| show3 1行目 | Nを出力 | N |
| show3 2行目 | show2()を呼ぶ | |
| show2 1行目 | show1()を呼ぶ | L |
| show2 2行目 | Mを出力 | M |
処理の追い方:show3でNを出したあと、show2へ入り、さらにshow1でLを出します。show1が終わるとshow2に戻り、最後にMを出します。
間違えやすい点:show2の中ではMより先にshow1()があるため、MよりLが先に出ます。呼出しが入れ子になる問題では、現在どの手続の何行目に戻るかをメモするとよいでしょう。
選択肢の見分け方:N,M,Lはshow2内の順序を逆にした誤り、L,M,Nはshow3を最後に読んだ誤りです。
この問題について
公開問題・サンプル問題の形式、擬似言語記法、アルゴリズム読解・トレース・空欄補充・セキュリティ事例判断の傾向を参考にした独自問題です。本文・数値・選択肢は新規作成しています。
公式試験問題、公開問題、市販教材、外部問題サイトの問題文を転載・改題したものではありません。