応用情報23年 秋 午前 問22
【問題を解く前に】
基礎理論→アルゴリズムとプログラミング→4. プログラム言語→(3)プログラム言語の記憶域
ここで問われているのはstaticとautoの違いです
autoは、関数が呼び出されるたびに、変数は初期化されます
staticは、関数がはじめて呼び出されるとき、変数は初期化されます
→以降、初期化されません
【解き方】
xについて
呼び出されるたびに、vは1に初期化される
なので、
x=f(2)+f(2)において、
はじめのf(2)で
引数からu=2
宣言よりv=1となり、
v=1+2=3となって、3を返すが、
次のf(2)で
引数からu=2
宣言よりv=1(また初期化)となり、
v=1+2=3となって、3を返す
結果としてxは、3+3=6
一方yはy=g(2)+g(2)において、
はじめのg(2)は
引数からu=2
宣言よりv=1となり、
v=1+2=3となって、3を返すが、
次のg(2)で
引数からu=2
vはstaticなので初期化しない。つまりv=3のままとなり
v=3+2=5となって、5を返す
結果としてxは、3+5=8
【答え】
イ
★(PR) まぐまぐでメルマガ始めました。以下のとおりです。よかったら、登録してくださいね!
●メルマガID:0001289711
【メルマガタイトル】 試験と実務の関連を説明する−実践!情報処理試験講座 メール版
【個別ページ】 http://www.mag2.com/m/0001289711.html
★(PR) 情報処理の基礎講座も始めました。以下のとおりです。よかったら、見てくださいね!
【基礎講座】http://ameblo.jp/smeokano/