GeraProva GeraProva Provas com IA para professores do Brasil
Computação1º anoBNCC EF15CO02Fácil⏱ medio

Analise o pseudocódigo abaixo que processa uma lista L e uma variável acumuladora acc. A chamada inicial é…

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

Analise o pseudocódigo abaixo que processa uma lista L e uma variável acumuladora acc. A chamada inicial é somar(L,0). A função é recursiva de cauda (tail recursion)? funcao somar(L, acc): se L == [] entao retorne acc senao retorne somar(resto(L), acc + primeiro(L))

  1. A) Não, pois a função utiliza variáveis globais além do acumulador.
  2. B) Sim, porque a chamada recursiva é feita em um loop.
  3. C) Não, pois a função soma primeiro os elementos da lista antes de retornar.
  4. D) Sim. É recursão de cauda.
  5. E) Sim, mas precisa de mais de uma chamada recursiva para ser eficiente.

✅ Resposta correta: alternativa D

Resolução passo a passo

  1. Identifique a definição de recursão de cauda: a chamada recursiva é a última operação executada pela função, e o resultado da chamada é devolvido diretamente, sem nenhuma operação pendente depois dela.
  2. Analise o pseudocódigo. Quando L é vazia, a função retorna acc. Caso contrário, a última ação é retornar somar(resto(L), acc + primeiro(L)). Nada é feito com o resultado da chamada além de devolvê-lo.
  3. Note que o acumulador acc recebe a soma parcial (acc + primeiro(L)) antes da chamada, de modo que o trabalho já está feito quando a recursão avança. Assim, não há necessidade de guardar contexto na pilha para operações posteriores.
  4. Logo, a função é recursiva de cauda, e a resposta correta é a alternativa D. O gabarito oficial está correto.
  5. Por que as outras estão erradas: A) não há variáveis globais, apenas parâmetros; B) a chamada é recursiva, não um loop; C) a soma ocorre a cada chamada, não ao final; E) há apenas uma chamada recursiva, e ela é justamente o que caracteriza a cauda.

💡 Dica: Verifique a definição de recursão de cauda.

Alternativa por alternativa

A Erradaerro: Conceitual

O aluno acredita que a função depende de variáveis globais, confundindo os parâmetros L e acc com estado externo ao escopo.

B Erradaerro: Conceitual

O aluno confunde recursão com iteração, achando que a chamada recursiva equivale a um loop, e por isso associa a cauda à repetição.

C Erradaerro: Procedimentala que mais engana

O aluno imagina que a soma só acontece no final, após percorrer toda a lista, quando na verdade acc + primeiro(L) é calculado a cada passo.

Por que engana: Confundir recursão de cauda com recursão normal, acreditando que a ordem das operações não afeta a eficiência.

D Correta

A última ação da função é a chamada recursiva sem operações adicionais após o retorno; o acumulador acc acumula o resultado parcial, caracterizando tail recursion.

E Erradaerro: Conceitual

O aluno pensa que a recursão de cauda exige múltiplas chamadas para ser eficiente, quando na verdade o que a define é a chamada recursiva ser a última operação, em uma única chamada.

Raio-X da questão

Dificuldade Fácil
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✍️ interpretativa🧩 desafio
🎯 Conceito central

recursão de cauda

📌 Objetivo

avaliacao

🧱 Pré-requisitos

recursão de cauda · funções recursivas

📚 Reveja

Revisar o conceito de recursão de cauda em funções.

⚠️ Erro mais comum

Confundir recursão de cauda com recursão normal, acreditando que a ordem das operações não afeta a eficiência.

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