GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF69CO02Difícil⏱ medio

Analise a seguinte função em Python que usa recursão: def soma(n): if n == 0: return 0 else: return n +…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO02

Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Analise a seguinte função em Python que usa recursão: def soma(n): if n == 0: return 0 else: return n + soma(n-1). Qual é seu valor para n = 5?

  1. A) 10
  2. B) 15
  3. C) 20
  4. D) 5
  5. E) 0

✅ Resposta correta: alternativa B

Resolução passo a passo

  1. A função soma(n) retorna 0 quando n é 0; caso contrário, retorna n somado ao resultado de soma(n-1).
  2. Calculando soma(5) = 5 + soma(4).
  3. soma(4) = 4 + soma(3), então soma(5) = 5 + 4 + soma(3).
  4. soma(3) = 3 + soma(2), soma(2) = 2 + soma(1), soma(1) = 1 + soma(0).
  5. soma(0) = 0, logo soma(1) = 1, soma(2) = 3, soma(3) = 6, soma(4) = 10 e soma(5) = 15.
  6. Assim, o valor é 15, que é a soma dos inteiros de 1 a 5 (5+4+3+2+1).
  7. A alternativa A (10) está errada, pois corresponde a soma(4), não a soma(5).
  8. A alternativa C (20) está errada, pois não corresponde a nenhuma soma parcial dos termos da recursão.
  9. A alternativa D (5) está errada, pois é apenas o valor de n, ignorando as chamadas recursivas.
  10. A alternativa E (0) está errada, pois é o caso base, que só ocorre quando n é 0.
  11. Conclusão: o gabarito oficial B está correto.

💡 Dica: Calcule a soma recursivamente para n = 5.

Alternativa por alternativa

A Erradaerro: Procedimentala que mais engana

O aluno provavelmente contou apenas até o termo 4, somando 4+3+2+1, ou seja, calculou soma(4) em vez de soma(5).

Por que engana: Confundir a soma acumulativa da recursao com multiplicacao ou nao entender a condicao base da funcao recursiva.

B Correta

A soma de 5+4+3+2+1+0 resulta em 15.

C Erradaerro: Procedimental

O aluno possivelmente somou valores de forma arbitrária, como 5+4+3+2+6, ou dobrou um resultado parcial sem seguir a regem da recursão.

D Erradaerro: Conceitual

O aluno acreditou que a função simplesmente retorna o próprio valor de n, ignorando que cada chamada soma n às chamadas seguintes.

E Erradaerro: Conceitual

O aluno confundiu o caso base (n == 0 retorna 0) com o resultado final, achando que a função sempre retorna 0.

Raio-X da questão

Dificuldade Difícil
Bloom Aplicar
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

funcoes recursivas basicas · operacoes aritmeticas simples

📚 Reveja

Revisar conceitos de recursão e funções em Python.

⚠️ Erro mais comum

Confundir a soma acumulativa da recursao com multiplicacao ou nao entender a condicao base da funcao recursiva.

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Programação - Linguagem de programação

🔎 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.