Questão de Programação — Conceitos básicos de programação — FGV 2025
Programação›Conceitos 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.É correto afirmar que estrutura criada
Aexibe uma lista encadeada como saída na tela.
Brecebe via teclado a palavra segredo.
Ctesta a condição do laço de repetição no início.
Dconverte todas as entradas via teclado em maiúsculas.
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:
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.
1while (Python)
2Testa condição no início
3Pode não executar o bloco
4do-while (C/Java)
5Testa condição no final
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.