GeraProva GeraProva Provas com IA para professores do Brasil
Computação4º anoBNCC EF15CO02Difícil⏱ curto

Em uma função recursiva, qual é o elemento crucial para evitar um loop infinito?

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

Em uma função recursiva, qual é o elemento crucial para evitar um loop infinito?

  1. A) A chamada da função
  2. B) Somente variáveis globais
  3. C) Condição de parada
  4. D) Recursão múltipla
  5. E) Aumento de variáveis

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. Uma função recursiva é aquela que chama a si mesma para resolver versões menores do mesmo problema. Sem um critério de término, essa sequência de chamadas nunca se encerra, gerando um loop infinito (na prática, estouro da pilha de execução).
  2. O elemento que impede esse ciclo é a condição de parada (também chamada de caso base), um teste que, quando satisfeito, faz a função retornar um valor diretamente, sem fazer nova chamada recursiva.
  3. Por que as outras alternativas estão erradas: A) a chamada da função é justamente o que cria a recursão, e sozinha ela tende a perpetuar o ciclo; B) variáveis globais não são exigidas pela recursão e não garantem término; D) recursão múltipla significa que a função faz mais de uma chamada recursiva, o que não evita nada e pode até aumentar o custo; E) aumento de variáveis não tem relação com o encerramento das chamadas, e o que importa é que os argumentos se aproximem do caso base.
  4. Portanto, a resposta correta é a alternativa C, em concordância com o gabarito oficial.

💡 Dica: Pense sobre as condições de parada em funções recursivas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

O aluno pensa que a própria chamada da função controla o fluxo e encerra a recursão, confundindo o mecanismo que repete a execução com o mecanismo que a interrompe.

Por que engana: Confundir a chamada da funcao com a condicao de parada, levando a pensar que a chamada sozinha evita loop infinito.

B Erradaerro: Conceitual

O aluno acredita que é preciso usar variáveis globais para controlar a recursão, quando o controle depende de um teste sobre os parâmetros e não do escopo das variáveis.

C Correta

A condição de parada é o elemento que previne loops infinitos.

D Erradaerro: Senso comum

O aluno associa a ideia de 'mais recursão' a mais segurança, supondo que várias chamadas recursivas garantam o término, quando na verdade isso não impede o ciclo infinito.

E Erradaerro: Conceitual

O aluno acha que simplesmente variar ou aumentar valores em cada chamada encerra a recursão, sem perceber que é preciso uma condição explícita que leve a um caso base.

Raio-X da questão

Dificuldade Difícil
Bloom Analisar
Leitura medio
Discriminação medio
Peso pedagógico medio
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 funcao · conceito de condicao de parada

📚 Reveja

Revisar os conceitos de recursão e condições de parada.

⚠️ Erro mais comum

Confundir a chamada da funcao com a condicao de parada, levando a pensar que a chamada sozinha evita loop infinito.

🌎 Tema transversal

ciencia_tecnologia

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