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

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

平成23年度秋季問題

問題7

n個の正の整数x1,x2,…,xn が並んだ線形リストを[x1,x2,…,Xn]で表し,空リストは[ ]で表す。次のように再帰的に定義される関数func(L)を,L=[1,3,2]を実引数として呼び出したとき, print文によって表示される数字はどれか。ここで,プログラム中の=は等号,:=は代入を表す。

  〔関数の定義〕
  (1) first([x1,x2,…,xn])はx1を返す。
  (2) butfirst([x1,x2,…,xn])は[x2,…,xn]を返す。butfirst([x])は[ ]を返す。
  (3) max(x,y)は,X≧yであればxを返し,そうでなければyを返す。
123
133
223
233

n個の正の整数x1,x2,…,xn が並んだ線形リストを[x1,x2,…,Xn]で表し,空リストは[ ]で表す。次のように再帰的に定義される関数func(L)を,L=[1,3,2]を実引数として呼び出したとき, print文によって表示される数字はどれか。ここで,プログラム中の=は等号,:=は代入を表す。

  〔関数の定義〕
  (1) first([x1,x2,…,xn])はx1を返す。
  (2) butfirst([x1,x2,…,xn])は[x2,…,xn]を返す。butfirst([x])は[ ]を返す。
  (3) max(x,y)は,X≧yであればxを返し,そうでなければyを返す。
123
133
223
233

解答:エ

<解説>

トレースすると次のようになる。

print文は3回実行され、「233」を出力する。

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