Gabarito disponível
Analise a seguinte função, elaborada na linguagem C de programação.
func_f(n)
int n;
{
int a, b;
if (n == 0)
return(1);
a = n – 1;
b = func_f(a);
return(n*b);
}
Caso, no programa principal, seja colocada a linha
printf(”%d”, func_f(4));
o valor impresso na saída padrão será:
func_f(n)
int n;
{
int a, b;
if (n == 0)
return(1);
a = n – 1;
b = func_f(a);
return(n*b);
}
Caso, no programa principal, seja colocada a linha
printf(”%d”, func_f(4));
o valor impresso na saída padrão será:
Resolução comentada
func_f é o fatorial; func_f(4)=24.
A função é recursiva: func_f(0)=1 e func_f(n)=n*func_f(n-1). Assim, func_f(4)=4*3*2*1*1=24.
Análise das alternativas
B) 0 e C) 1 seriam apenas o caso base. D) 6 é func_f(3). E) 12 não resulta do cálculo.
Referência: Linguagem C – recursividade (fatorial).
Resolução comentada do VaiConcursos.