GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF08CO01Difícil⏱ 2 a 3 minu

Uma banca de feira registra em uma lista o preço de cada cesta vendida durante a manhã. Para calcular o total…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF08CO01

Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Uma banca de feira registra em uma lista o preço de cada cesta vendida durante a manhã. Para calcular o total arrecadado, foi criada a função abaixo, ainda incompleta. funcao somar(vendas, posicao) se __________ retorne __________ fim_se retorne vendas[posicao] + somar(vendas, posicao + 1) fim_funcao A primeira chamada é somar(vendas, 0). Qual preenchimento faz a função somar todos os valores da lista usando recursão, sem tentar acessar uma posição inexistente?

  1. A) posicao = tamanho(vendas); retornar vendas[posicao]
  2. B) posicao = tamanho(vendas) - 1; retornar 0
  3. C) posicao = 0; retornar tamanho(vendas) + 1
  4. D) posicao = tamanho(vendas); retornar 1
  5. E) posicao = tamanho(vendas); retornar 0

✅ Resposta correta: alternativa E

Resolução passo a passo

  1. a função percorre a lista posição por posição, somando vendas[posicao] com o resultado da chamada seguinte. Para não acessar uma posição inexistente, a recursão precisa de um caso base que pare exatamente quando a lista acaba. Passo 2: a última posição válida é tamanho(vendas) - 1, então quando posicao chega a tamanho(vendas) não há mais valores a somar. Passo 3: na condição do se, deve-se colocar posicao = tamanho(vendas), que é o momento em que a lista termina. Passo 4: nesse caso base, retorne 0, pois não há mais nada a acumular e o elemento inexistente não é acessado. Passo 5: por que as outras estão erradas. Na A, retornar vendas[posicao] com posicao igual ao tamanho acessa uma posição inexistente. Na B, a condição posicao = tamanho - 1 interrompe a recursão antes do último elemento, que fica fora da soma. Na C, posicao = 0 dispara já na primeira chamada e retorna tamanho + 1, que não é a soma dos valores. Na D, retornar 1 faz cada passo somar 1 em vez do preço da cesta, contando itens em vez de somar valores. Passo 6: portanto a alternativa E é a única que completa a função corretamente, e coincide com o gabarito oficial.

💡 Dica: A recursão deve parar quando a posição atingir o tamanho da lista, retornando zero.

Alternativa por alternativa

A Erradaerro: Conceitual

Acredita que o caso base deve ser disparado quando posicao já alcança o tamanho e que é válido acessar vendas[tamanho], além de retornar esse valor como caso final.

B Erradaerro: Procedimental

Confunde o índice do último elemento com o ponto de parada da recursão, o que faz o último valor da lista ser ignorado na soma.

C Erradaerro: Procedimental

Acha que a condição de parada deve ser testada na posição inicial (zero) e que o retorno deve ser o tamanho da lista somado a 1, sem relação com a soma dos preços.

D Erradaerro: Conceitual

Acredita que o valor do caso base pode ser qualquer elemento neutro de contagem, como 1, e não percebe que a soma precisa usar o elemento neutro da adição, que é 0.

E Correta

Ao alcançar o fim da lista, a função retorna 0 e as chamadas anteriores somam os valores já acessados.

Raio-X da questão

Dificuldade Difícil
Bloom analisar
Leitura Baixo
Discriminação Médio
Peso pedagógico Fundamenta
Autonomia do enunciado Alta; apresenta códi
Cobertura da habilidade Avalia con
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ Questão objetiva de 🧩 Verificar domínio bá
🎯 Conceito central

Caso-base em recursão

📌 Objetivo

Identificar a condiç

🧱 Pré-requisitos

Índices e tamanho de listas · Soma e valor neutro zero

📚 Reveja

Recursão sobre listas

⚠️ Erro mais comum

Usar a última posição como caso-base e tentar acessar novamente um elemento inexistente.

🤝 Socioemocional

Persistência na análise passo a passo

🏫 Contexto

Exemplo cotidiano si

Questões parecidas com resolução

Todas as questões de Programação - Programação com listas e recursã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.