必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 応用情報技術者
  3. 平成23年度秋季問題一覧
  4. 平成23年度秋季問題22-解答・解説-分析

平成23年度秋季問題

問題22

メインプログラムを実行した結果はどれか。ここで、staticは静的割当てを、autoは動的割当てを表す。

メインプログラムを実行した結果はどれか。ここで、staticは静的割当てを、autoは動的割当てを表す。

解答:イ

<解説>

プログラムの実行時に関数の中で宣言する変数の割当方法には、次のものがある。

動的割当
動的に割り当てるメモリ領域を使う。
関数終了時に変数はメモリから削除されるため値が残らない。
静的割当
あらかじめ固定されたメモリ領域を使う。
呼び出された関数が終了しても変数自体はメモリ上に存在するので変数の値は残る。
  1. X=f(2) + f(2)
    関数fの変数は動的割当なので関数終了時に変数の値は削除されている。
    1. 1回目のf(2)で2+1=3
    2. 2回目のf(2)で2+1=3
    3. 3+3=6
  2. Y=g(2) +gf(2)
    関数gの変数は静的割当なので関数終了時に変数の値は残っている。
    1. 1回目のg(2)で2+1=3
    2. 2回目のg(2)で3+2=5
    3. 3+5=8

したがって、イが正解である。

分類

キーワード