応用情報技術者 / 平成23年度(2011) 秋期
問7
n個の正の整数x1,x2,…,xn が並んだ線形リストを[x1,x2,…,Xn]で表し,空リストは[ ]で表す。次のように再帰的に定義される関数func(L)を,L=[1,3,2]を実引数として呼び出したとき, print文によって表示される数字はどれか。ここで,プログラム中の=は等号,:=は代入を表す。
〔関数の定義〕first([x1,x2,…,xn])はx1を返す。butfirst([x1,x2,…,xn])は[x2,…,xn]を返す。butfirst([x])は[ ]を返す。max(x,y)は,X≧yであればxを返し,そうでなければyを返す。func(L)
begin
if L = [] then return 0;
A := first(L);
B := func(butfirst(L));
C := max(A, B);
print C;
return C;
end