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

Em uma aula de Computação, uma turma analisou um algoritmo que reorganiza uma lista de inteiros por meio de…

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

Em uma aula de Computação, uma turma analisou um algoritmo que reorganiza uma lista de inteiros por meio de chamadas recursivas. Diferentemente da soma prefixada usual, o algoritmo abaixo processa primeiro o restante da lista e, ao retornar, acrescenta ao primeiro elemento o último valor já produzido. func soma_prefixos(L): se L == [] então retorne [] senao R := soma_prefixos(resto(L)) se R == [] então retorne [primeiro(L)] senao retorne concatenar([primeiro(L) + ultimo(R)], R) A função concatenar([x], R) coloca o elemento x no início da lista R. Considerando exatamente as regras de execução apresentadas no texto-base, qual lista é retornada pela chamada soma_prefixos([2, -1, 4])?

  1. A) [6, 3, 4]
  2. B) [6, 4, 3]
  3. C) [2, 1, 5]
  4. D) [2, 3, 7]
  5. E) [4, 3, 6]

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. Resolvo a chamada soma_prefixos([2, -1, 4]) seguindo as regras do texto-base, começando pela chamada mais interna. Passo 2: soma_prefixos([4]) chama soma_prefixos([]), que retorna []. Como R é [], o resultado é [primeiro([4])] = [4]. Passo 3: soma_prefixos([-1, 4]) recebe R = [4]. Como R não é vazio, calcula primeiro(L) + ultimo(R) = -1 + 4 = 3 e concatena [3] com R, obtendo [3, 4]. Passo 4: soma_prefixos([2, -1, 4]) recebe R = [3, 4]. Calcula primeiro(L) + ultimo(R) = 2 + 4 = 6 e concatena [6] com R, obtendo [6, 3, 4]. Passo 5: Conclusão: a lista retornada é [6, 3, 4], alternativa A, que coincide com o gabarito oficial. Passo 6: Por que as outras estão erradas: B inverte a ordem de inserção do novo elemento, E inverte a leitura da lista final, C corresponde à soma prefixada usual da esquerda para a direita, e D não aplica a regra ao primeiro elemento da lista.

💡 Dica: Analise o algoritmo e aplique-o à lista fornecida.

Alternativa por alternativa

A Correta

A chamada com [2, -1, 4] é resolvida a partir das listas menores. Para [4], o restante é vazio, portanto o retorno é [4]. Para [-1, 4], soma-se -1 ao último elemento de [4], obtendo [3, 4]. Finalmente, para [2, -1, 4], soma-se 2 ao último elemento de [3, 4], que é 4, e o resultado é [6, 3, 4].

B Erradaerro: Procedimentala que mais engana

O aluno acredita que o novo valor deve ser colocado no fim da lista retornada, e não no início, como indica a função concatenar([x], R). Ele ainda pode ter feito a conta corretamente, mas montou a lista na ordem errada.

Por que engana: Confundir a ordem das operações e somar os elementos de forma incorreta, resultando em uma lista errada.

C Erradaerro: Conceitual

O aluno aplica a soma prefixada usual, acumulando da esquerda para a direita (2, 2 + (-1) = 1, 1 + 4 = 5), o que contraria a instrução de que o algoritmo processa primeiro o restante da lista.

D Erradaerro: Procedimental

O aluno calcula corretamente os valores -1 + 4 = 3 e 3 + 4 = 7, mas não aplica a regra ao primeiro elemento e mantém o 2 original, ignorando que o primeiro elemento também deve receber a soma com o último valor produzido.

E Erradaerro: Atenção

O aluno obtém os valores certos, mas lê ou escreve a lista resultante de trás para frente, invertendo a ordem final dos elementos em relação à saída produzida pelas chamadas recursivas.

Raio-X da questão

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

algoritmo recursivo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

funções recursivas · listas em programação

📚 Reveja

Revisar como funcionam algoritmos recursivos e somas prefixadas.

⚠️ Erro mais comum

Confundir a ordem das operações e somar os elementos de forma incorreta, resultando em uma lista errada.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

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.