Um programa foi confeccionado na linguagem C, conforme abai...

Próximas questões
Com base no mesmo assunto
Q2369497 Programação

Um programa foi confeccionado na linguagem C, conforme abaixo:


#include <stdio.h>

#include <stdlib.h>

long int funcao (int n)

{ if(n==1)

           return n;

       return funcao(n-1) * n; }

int main ()

{ long int x;

      scanf ("%d", &x);

      printf ( " %d \n", funcao (x));

      return (0);}



Caso seja passado como entrada o valor de x=5, o resultado apresentado será: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - 120.

A questão pede para analisarmos o código de um programa escrito em linguagem C que implementa uma função recursiva. O tema central da questão é o entendimento de como funciona a recursividade, que é um conceito fundamental em programação, no qual uma função chama a si mesma para resolver um problema.

A função em questão parece calcular o fatorial de um número inteiro n. O fatorial de um número n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n. A definição recursiva do fatorial é:

  • Base da recursão: 1! = 1
  • Passo recursivo: n! = n * (n - 1)! para n > 1

O programa lê um valor inteiro para a variável x e invoca a função funcao passando x como argumento. A função funcao verifica se n é igual a 1 e, se for, retorna 1. Caso contrário, a função chama a si mesma com n - 1 e multiplica o resultado por n, o que é exatamente o cálculo de fatorial segundo a definição recursiva.

Para o valor de entrada x = 5, a sequência de chamadas recursivas será:

funcao(5)
 5 * funcao(4)
   5 * (4 * funcao(3))
     5 * (4 * (3 * funcao(2)))
       5 * (4 * (3 * (2 * funcao(1))))
         5 * (4 * (3 * (2 * 1)))

Calculando as multiplicações, obtemos:

5 * 4 * 3 * 2 * 1 = 120

Portanto, o resultado da função quando x é 5 será 120, que é o fatorial de 5. Por isso, a alternativa C é a correta.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gabarito C

5!

A função chamada usa de recursividade para calcular a fatorial do número

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo