Mini Teste 16: Programação recursiva

Considera o programa a seguir:

#include <stdio.h>
float a;

float XfuncN(float x, int n)
{
  float c;

  c = 0.0;
  if (n==0)
    return(1.0)
  else
    return(x*XfuncN(x, n-1));
}

void main()
{
  printf("%0.1f", XfuncN(3.0, 3));
}

1. Qual será o output do programa?

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