GeraProva GeraProva Provas com IA para professores do Brasil
Computação1º anoBNCC EF15CO02Média⏱ medio

Qual é o resultado da chamada recursiva da função abaixo para n = 3? python def fatorial(n): if n == 0: return…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO02

Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Qual é o resultado da chamada recursiva da função abaixo para n = 3? python def fatorial(n): if n == 0: return 1 else: return n * fatorial(n - 1)

  1. A) 3
  2. B) 6
  3. C) 9
  4. D) 0
  5. E) 1

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. A função calcula o fatorial de n. Quando n é 0, retorna 1 (caso base). Caso contrário, retorna n multiplicado pelo resultado de fatorial(n - 1). Passo 2: Para n = 3, a chamada é fatorial(3), que retorna 3 * fatorial(2). Passo 3: fatorial(2) retorna 2 * fatorial(1), e fatorial(1) retorna 1 * fatorial(0). Passo 4: fatorial(0) retorna 1 pelo caso base. Passo 5: Desfazendo as chamadas de volta: fatorial(1) = 1 * 1 = 1; fatorial(2) = 2 * 1 = 2; fatorial(3) = 3 * 2 = 6. Passo 6: Portanto o resultado é 6, alternativa B, que coincide com o gabarito oficial. Por que as outras estão erradas: A) 3 é apenas o primeiro fator, sem multiplicar pelas chamadas seguintes; C) 9 seria 3 * 3, multiplicando n por ele mesmo em vez de usar n - 1; D) 0 não é o resultado de nenhuma multiplicação válida aqui, pois o caso base retorna 1 e não 0; E) 1 é apenas o valor do caso base, que não é multiplicado de volta pelos demais níveis da recursão.

💡 Dica: Analise a função e calcule o fatorial de 3.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno considera apenas a primeira chamada, retornando n sem completar as multiplicações das chamadas recursivas seguintes.

Por que engana: Confundir a funcao recursiva com uma funcao iterativa, nao aplicando corretamente a chamada recursiva e o caso base.

B Correta

O fatorial de 3 é 3 * 2 * 1 = 6.

C Erradaerro: Procedimental

O aluno interpreta n * fatorial(n - 1) como n multiplicado por n, trocando o argumento decrescente da recursão por n novamente.

D Erradaerro: Conceitual

O aluno acredita que o caso base retorna 0, confundindo o elemento neutro da multiplicação com o zero absorvente.

E Erradaerro: Procedimental

O aluno pega apenas o valor do caso base (1) e esquece que cada nível da recursão multiplica o resultado das chamadas inferiores.

Raio-X da questão

Dificuldade Média
Bloom Lembrar
Leitura medio
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ direta🧩 consolidacao
🎯 Conceito central

função recursiva

📌 Objetivo

avaliacao

🧱 Pré-requisitos

conceito de recursao · operacoes multiplicativas

📚 Reveja

Revisar o conceito de recursão e como calcular fatoriais.

⚠️ Erro mais comum

Confundir a funcao recursiva com uma funcao iterativa, nao aplicando corretamente a chamada recursiva e o caso base.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.