設問2
設問2では特売商品を上書きする処理をトレースしなければならないので、特売商品を含んだ大域変数が必要なのですが、そちらもなぜか問題文の中に表が用意されています。これは出題者がわざと用意しているのか、はたまた偶然なのか真偽はわからないのですが(たぶん前者ですが)、問題を作っている人がものすごく頭がいいのは確かだと思います。
では購入行数が 6 ある表を利用してトレースしていきます。
Kp | Kp品番 | K | K品番 | 特売品番 |
---|---|---|---|---|
0 | 2 | 111 | 229 | |
2 | 111 | 1 | 222 | |
1 | 222 | 4 | 224 | |
4 | 224 | 6 | 229 | |
「購入[6]の品番」と「特売の品番」が同じですので、「検索部」で得た「特売の数量」が 0 より大きい場合は、末尾に追加されたプログラムの上の処理を行います。
「購入[6]の数量」を「特売の数量」で上書きします。
「購入[6]の金額」を「特売の単価×特売の数量」で上書きします。
「検索部」で得た「特売の数量」が 0 の場合は追加されたプログラムの下の処理を行います。
「購入[4]のptr」に「購入[6]のptr」すなわち 5 をいれます。
「購入[6]」はデータには残っているのですが、参照されないようにしてしまうのです。
設問の答え
空欄「g」は「ウ」です。
ホームに戻るボタン↓