- トップページ
- 応用情報技術者
- 平成21年度春季問題一覧
- 平成21年度春季問題7-解答・解説-分析
平成21年度春季問題
問題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
文字列を引数とする関数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
解答:ア
<解説>
下図より、アが正解である。
分類
お問い合わせ