CO-P04情報Ⅰ 対策問題

コンピュータとプログラミングプログラミング特訓 (第3問対策)

次のプログラムは2つの値の合計と、その差(大きい方から小さい方を引く)を求める関数を使う。 【関数の説明】 わ(a, b) … a と b の合計を返す さ(a, b) … a と b の差の絶対値を返す (1) x = わ(3, 5) (2) y = さ(2, 9) (3) 表示する(わ(x, y)) 表示される値はどれか。

解答・解説を見る

正解: 1

正答

1

この問題のポイント

関数の説明文を読んで呼び出しを追う — 第3問の必須スキルです。

解説

関数とは「値を渡すと、決まった計算をして結果(戻り値)を返してくれる部品」です。わ(a, b) に 3 と 5 を渡せば合計の 8 が返り、さ(a, b) に 2 と 9 を渡せば差の絶対値 7 が返ります。共通テストでは、この【関数の説明】が必ず問題文に示されるので、説明文を式に当てはめて読み解きます。

1行ずつ、変数の値を確定させながらトレースします。
(1)の実行後: x = わ(3, 5) = 3+5 = 8。
(2)の実行後: y = さ(2, 9) = |2−9| = 7。
(3)のとき: わ(x, y) = わ(8, 7) = 8+7 = 15 を表示。

コツは、関数の戻り値をその場で具体的な数に置き換えてから次の行へ進むことです。(3)を見た瞬間に「わ(x, y)って何だっけ」と迷わないよう、(1)(2)の段階で「x=8」「y=7」とメモしておきます。トレース表(行番号・x・y の3列)を書けば、見落としはほぼ防げます。

共通テストの第3問は、本文で定義した関数を後半のプログラムで部品として使う構成が定番です。「関数の説明を読む→引数に実際の値を入れる→戻り値を確定→次の行へ」という手順を機械的に回せるようにしておくと、長いプログラムでも迷子になりません。

選択肢の確認

1.○ わ(8, 7) = 8+7 = 15。
2.× 8は x の値だけ。(2)(3)を追っていない。
3.× 7は y の値だけ。
4.× 19は 3+5+2+9 と全部足した混同。さ( )は差の絶対値を返す。

ここだけは覚えよう

関数は「戻り値を数に置き換えてから」次の行へ — x=8、y=7 とメモしながら読むのが第3問の基本動作。

関連問題

CO-P03CO-P05