応用情報に戻る
再帰難易度: 標準2009年度

応用情報技術者 過去問再帰 2009年度 第7問

問題

文字列を引数とする関数 len, first, butfirst を用いて,関数 comp を再帰的に定義した。comp("11", "101") を呼び出したとき,返されるものはどれか。 〔関数の定義〕 len(S):文字列 S の長さを返す。S が空文字列のときは 0 を返す。 first(S):文字列 S の先頭の 1 文字の ASCII コードを返す。S が空文字列のときはエラーを返す。 butfirst(S):文字列 S の先頭の 1 文字を除いた残りの文字列を返す。S が空文字列のときはエラーを返す。 comp(A, B) begin if len(A) = 0 and len(B) = 0 then return 0; if len(A) = 0 and len(B) ≠ 0 then return 1; if len(A) ≠ 0 and len(B) = 0 then return -1; if first(A) < first(B) then return 1; if first(A) > first(B) then return -1; return comp(butfirst(A), butfirst(B)); end

選択肢

  1. 1-1
  2. 20
  3. 31
  4. 4エラー

正解

1. -1

詳しい解説を見る

解説

comp("11", "101") を評価する。先頭文字は両方とも "1" で等しいので最後の行で comp("1", "01") を呼ぶ。次も先頭は "1" と "0" で、first("1")>first("0") なので return -1 となる("1" の方が ASCII コードが大きい)。よって全体の返り値は -1 で、アが正解。(出典: 平成21年度 春期 応用情報技術者試験 午前 問7)

一問一答

全400問を繰り返し学習

同じ年度の過去問

この調子で演習を続けよう

スキマ資格では応用情報の全3360問を分野別・難易度別に体系的に学習できます。応用情報技術者試験(AP)は IPA が実施する情報処理技術者試験のレベル3。2026年度からCBT方式へ移行し、科目A(四肢択一80問)・科目B(記述11問中5問選択)の2部構成で、それぞれ基準点以上が必要です。テクノロジ・マネジメント・ストラテジの全分野から出題されます。