問題
次の擬似言語プログラムを実行したとき、出力される値はどれか。 整数型: a ← 5 整数型: b ← 3 if (a > b) a ← a - b else a ← a + b endif 出力(a)
選択肢
- 1ア 2
- 2イ 3
- 3ウ 5
- 4エ 8
正解
1. ア 2
詳しい解説を見る解説を閉じる
解説
a=5、b=3で条件式 a > b を評価すると、5 > 3 は真であるため、then側の a ← a - b が実行され、a = 5 - 3 = 2 となる。else側の a ← a + b は実行されない。よって出力は2であり、アが正解である。エの8は条件を偽と誤判定してelse側(5+3=8)を実行した場合の値、ウの5は代入が行われないと考えた場合のaの初期値、イの3はbの値との混同である。if文のトレースでは、①条件式に現在の変数値を代入して真偽を確定する、②真偽に応じて実行される側の文だけを処理する、という手順を確実に踏むことが重要である。条件分岐は科目Bの擬似言語問題の基礎であり、ループとの組合せ問題に進む前に確実に押さえておきたい。
一問一答
科目A 180問+科目B 60問