Mini Teste 16: Programação recursiva

Considera o programa a seguir:

PROGRAM CalculateN;
Var a: real;

Function XfuncN(x: real; n: integer): real;
Var c: real;
begin
  c := 0.0;
  if n=0 then
    XfuncN := 1.0
  else
    XfuncN := x*XfuncN(x, n-1);
end;

begin
  WriteLn(XfuncN(3.0, 3):0:1);
end.

1. Qual será o output do programa?

2. Quantas cópias da variável local c existem no máximo?