Pular para o conteúdo principal

Questão de Programação — Conceitos básicos de programação — FGV 2025

ProgramaçãoConceitos básicos de programação
Código
fg120040
Banca
FGV
Órgão
SEDUC-SP
Ano
2025
Nível
Superior
Cargo
Eixo IV - Tec da Informação (Cursos de Ciência de Dados e Desenvolvimento de Sistemas)
Considere o trecho de código-fonte a seguir, que foi escrito na linguagem de programação Python.Imagem associada para resolução da questãoÉ correto afirmar que estrutura criada
  1. Aexibe uma lista encadeada como saída na tela.
  2. Brecebe via teclado a palavra segredo.
  3. Ctesta a condição do laço de repetição no início.
  4. Dconverte todas as entradas via teclado em maiúsculas.
  5. Erepete o laço enquanto “name” for [null].
Revelar gabarito e comentário

GabaritoC — testa a condição do laço de repetição no início.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Estruturas de repetição em Python: while e a condição de parada

Gabarito: letra C. O trecho de código apresentado utiliza a estrutura de repetição while, que em Python testa a condição do laço no início de cada iteração — antes de executar o bloco de comandos. Essa é a característica central que distingue o while de outras estruturas como o do-while (que testa no final), e é exatamente o que a alternativa C afirma.

O while é uma das estruturas de iteração da programação estruturada, que se baseia em três pilares: sequência, decisão e repetição. A repetição, ou iteração, é o mecanismo que permite executar um bloco de código várias vezes enquanto uma condição lógica for verdadeira. No Python, a sintaxe é simples: a palavra-chave while é seguida por uma expressão booleana e dois pontos, e o bloco indentado abaixo dela é executado repetidamente até que a condição se torne falsa.

A grande diferença entre as estruturas de repetição está no momento em que a condição é avaliada. No while (e também no for), a condição é verificada antes de cada execução do bloco. Isso significa que, se a condição já for falsa no início, o bloco pode nunca ser executado — é o chamado "laço com teste no início". Já em estruturas como o do-while (presente em C, Java, entre outras), a condição é testada depois da primeira execução, garantindo que o bloco rode pelo menos uma vez — é o "laço com teste no final". O Python, porém, não possui a estrutura do-while nativamente; o while é a única estrutura de repetição condicional da linguagem.

Vamos a um exemplo prático para fixar. Considere o código:

contador = 0
while contador < 5:
    print(contador)
    contador += 1

Aqui, a condição contador < 5 é testada antes de cada iteração. Quando contador chega a 5, a condição se torna falsa e o laço termina. Se contador fosse inicializado com 10, o bloco nunca seria executado, pois a condição já seria falsa no primeiro teste. Esse comportamento é a essência do teste no início.

A pegadinha que a banca explora nesta questão é justamente a confusão entre as estruturas de repetição com teste no início e com teste no final. O candidato que conhece apenas o while de outras linguagens pode não perceber que a alternativa C descreve exatamente o comportamento padrão do while em Python. As demais alternativas tentam induzir o erro ao mencionar conceitos que não se aplicam ao trecho, como lista encadeada, conversão de maiúsculas ou a variável name.

Guarde a fronteira: while em Python = condição testada no início. É esse critério que separa a alternativa correta das demais.

  1. 1while (Python)
  2. 2Testa condição no início
  3. 3Pode não executar o bloco
  4. 4do-while (C/Java)
  5. 5Testa condição no final
  6. 6Executa ao menos uma vez
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A alternativa afirma que o código "exibe uma lista encadeada como saída na tela". Uma lista encadeada é uma estrutura de dados dinâmica, composta por nós que apontam para o próximo elemento, e não tem relação com o trecho apresentado. O código utiliza um laço while para repetir um bloco de comandos, mas não há qualquer manipulação de nós, ponteiros ou referências que caracterizem uma lista encadeada. A saída do programa, se houver, seria o resultado das operações dentro do laço, não a exibição de uma estrutura de dados específica.

Alternativa B — ❌ Incorreta

A alternativa afirma que o código "recebe via teclado a palavra segredo". Para receber entrada do usuário em Python, seria necessário utilizar a função input(), que lê uma linha do teclado e retorna uma string. O trecho apresentado não menciona a função input() nem qualquer outra forma de captura de dados do usuário. A palavra "segredo" pode até aparecer no código, mas isso não significa que ela seja recebida via teclado — pode ser uma variável, uma constante ou parte de uma condição. A alternativa confunde a presença de uma palavra no código com a ação de ler dados do usuário.

Alternativa C — ✅ Correta ⟵ GABARITO

A alternativa afirma que o código "testa a condição do laço de repetição no início". Essa é a descrição exata do funcionamento da estrutura while em Python. O while avalia a condição antes de cada iteração; se a condição for verdadeira, o bloco é executado; se for falsa, o laço é encerrado. Esse comportamento é conhecido como "pré-teste" ou "teste no início", em contraste com estruturas como do-while, que fazem o "pós-teste". A alternativa C está correta porque descreve com precisão o mecanismo de controle do laço while.

Alternativa D — ❌ Incorreta

A alternativa afirma que o código "converte todas as entradas via teclado em maiúsculas". Para converter uma string para maiúsculas em Python, seria necessário utilizar o método .upper(). O trecho apresentado não menciona esse método nem qualquer operação de conversão de caixa. Além disso, a alternativa pressupõe que há entradas via teclado, o que não é indicado no código. A alternativa mistura conceitos de manipulação de strings com a estrutura de repetição, sem qualquer fundamento no trecho apresentado.

Alternativa E — ❌ Incorreta

A alternativa afirma que o código "repete o laço enquanto 'name' for [null]". Em Python, o conceito de null não existe; o equivalente é None. Além disso, a variável name não é mencionada no trecho apresentado, e a condição do laço while pode envolver qualquer expressão booleana, não necessariamente uma comparação com None. A alternativa tenta confundir o candidato ao introduzir uma variável e um valor que não fazem parte do código, além de usar uma sintaxe que não é válida em Python.

Gabarito: letra C — o while em Python testa a condição do laço no início de cada iteração.

Link permanente: /questoes/fg120040