PMプロジェクトマネージャ試験 午前Ⅰ
平成25年度春期 プロジェクトマネージャ 午前Ⅰ 問7
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題

選択肢
- アX:2,Y:4
- イX:2,Y:6
- ウX:4,Y:2
- エX:4,Y:6
解き方のヒントを見る
引数の受渡しと変数のスコープ
呼出し元と手続内の変数を区別し、代入による変化を追うには、どんな記録が必要だろうか。
この問題で問われていること
値呼出し・参照呼出しと、連続する代入文の評価順序を調べ、実行を追跡する準備をしよう。
引数の受渡しと変数のスコープ
値呼出し・参照呼出しと、連続する代入文の評価順序を調べ、実行を追跡する準備をしよう。
確認ポイント
- 値呼出しと参照呼出しでは、実引数と仮引数の対応関係をどう図示できるか。別の短いプログラム例で比較できるか。
- 呼出し元と手続内に同名の変数がある場合、スコープと引数の受渡し方式をどう区別して確認するか。
- 連続する代入文の右辺は、どの時点の値を使って評価されるか。逐次実行の規則を調べられるか。 呼出し前・各代入後・復帰後を行に、呼出し元と手続内の変数を列にした空の追跡表を作れるか。
正解と解説を見る
正解
イ
解説
添付の公式解答表では,問7の正解は「イ」です。呼出し時点では X,Y はともに2。値呼出しの仮引数 X は値のコピーを受け取り,参照呼出しの仮引数 Y はメインプログラムの Y を参照する。手続の X=X+Y; によって仮引数 X は4となり,続く Y=X+Y; によってメインプログラムの Y は4+2=6となる。メインプログラムの X は変更されないため,実行後は X=2,Y=6となる。
添付の公式解答表では,問7の正解は「イ」です。呼出し時点では X,Y はともに2。値呼出しの仮引数 X は値のコピーを受け取り,参照呼出しの仮引数 Y はメインプログラムの Y を参照する。手続の X=X+Y; によって仮引数 X は4となり,続く Y=X+Y; によってメインプログラムの Y は4+2=6となる。メインプログラムの X は変更されないため,実行後は X=2,Y=6となる。
選択肢ア
誤り。メインプログラムの X は2のままだが,手続の最初の代入で仮引数 X は4になる。次の代入ではこの4を使うため,Y は6になる。
選択肢イ(正解)
正しい。値呼出しの仮引数 X を変更しても,メインプログラムの X は2のままである。参照呼出しの Y への代入はメインプログラムの Y に反映され,4+2で6になる。
選択肢ウ
誤り。X は値呼出しなので,手続内の変更はメインプログラムの X に反映されない。一方,Y は参照呼出しなので,手続内の代入によって6に変わる。
選択肢エ
誤り。Y が6になる点は合っているが,4になるのは手続内の仮引数 X である。メインプログラムの X は2のままである。
学習のポイント
値呼出し・参照呼出しと、連続する代入文の評価順序を調べ、実行を追跡する準備をしよう。
出典:独立行政法人 情報処理推進機構(IPA)平成25年度春期 プロジェクトマネージャ試験 午前Ⅰ 問7(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針