Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — INSTITUTO AOCP 2025

ProgramaçãoLinguagens de programação
Código
qg543492
Banca
INSTITUTO AOCP
Órgão
TRE-TO
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Área de Atividade: Apoio Especializado - Especialidade: Tecnologia da Informação
Com base no seguinte trecho de código em Python, que manipula listas e estruturas de repetição, analise as assertivas e assinale a alternativa que aponta as corretas.nomes = [“Ana”, “Bruno”, “Carlos”, “Diana”, “Eduardo”]for i in range(len(nomes)):if i % 2 == 0:print(nomes[i])I. O código percorre a lista nomes e imprime todos os elementos. II. A função range(len(nomes)) gera os índices de 0 a 4.III. A condição i % 2 == 0 verifica se o índice é par.IV. Os nomes “Ana”, “Carlos” e “Eduardo” serão impressos.V. A função print(nomes[i]) imprime diretamente o nome localizado no índice atual.
  1. AApenas I, II e V.
  2. BApenas II, III, IV e V.
  3. CApenas III e IV.
  4. DApenas I, III e IV.
  5. EI, II, III, IV e V.
Revelar gabarito e comentário

GabaritoB — Apenas II, III, IV e V.

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 e listas em Python

Gabarito: letra B. O código percorre a lista nomes usando range(len(nomes)), que gera os índices de 0 a 4, e imprime apenas os elementos cujo índice é par (0, 2 e 4), ou seja, “Ana”, “Carlos” e “Eduardo”. A assertiva I está incorreta porque o código não imprime todos os elementos, apenas os de índice par. As assertivas II, III, IV e V estão corretas.

O trecho de código apresentado é um exemplo clássico de iteração sobre uma lista em Python, combinando a função range() com a função len() para percorrer os índices, e o operador módulo (%) para filtrar elementos. Vamos entender cada parte:

  1. nomes = [“Ana”, “Bruno”, “Carlos”, “Diana”, “Eduardo”]: cria uma lista com 5 elementos. Em Python, a indexação começa em 0, então “Ana” está no índice 0, “Bruno” no índice 1, “Carlos” no índice 2, “Diana” no índice 3 e “Eduardo” no índice 4.

  1. for i in range(len(nomes)):: a função len(nomes) retorna o número de elementos da lista, que é 5. A função range(5) gera uma sequência de números inteiros de 0 até 4 (o limite superior é exclusivo). Portanto, o laço for itera com a variável i assumindo os valores 0, 1, 2, 3 e 4, um por vez.

  1. if i % 2 == 0:: o operador % (módulo) retorna o resto da divisão de i por 2. Se o resto for 0, significa que i é um número par. A condição i % 2 == 0 é verdadeira apenas para os índices pares: 0, 2 e 4.

  1. print(nomes[i]): esta linha imprime o elemento da lista localizado na posição i. Como a condição do if só permite a execução quando i é par, apenas os elementos nos índices 0, 2 e 4 serão impressos: “Ana”, “Carlos” e “Eduardo”.

A pegadinha desta questão está na assertiva I, que afirma que o código imprime todos os elementos. O candidato apressado pode ler o laço for e concluir que ele percorre a lista inteira, esquecendo-se da condição if que filtra os índices. É essencial analisar o código linha por linha, simulando a execução, para identificar exatamente quais elementos são impressos.

Na prática, se você executar este código, a saída será:

Ana
Carlos
Eduardo

Perceba que “Bruno” (índice 1) e “Diana” (índice 3) não são impressos porque seus índices são ímpares. Essa é a distinção crucial entre percorrer a lista e imprimir todos os elementos versus percorrer e imprimir apenas os que atendem a uma condição.

Guarde este critério: a presença de uma estrutura condicional (if) dentro do laço de repetição altera o comportamento do código, e é exatamente nesse ponto que as assertivas se dividem.

Item I — ❌ Incorreto

A assertiva afirma que o código percorre a lista e imprime todos os elementos. Isso é falso. O laço for percorre todos os índices, mas a condição if i % 2 == 0 restringe a impressão apenas aos índices pares. Portanto, os elementos “Bruno” e “Diana” não são impressos. O erro está na palavra “todos”, que generaliza indevidamente o comportamento do código.

Item II — ✅ Correto

A função range(len(nomes)) gera os índices de 0 a 4. Como len(nomes) retorna 5, range(5) produz a sequência 0, 1, 2, 3, 4. O limite superior (5) é exclusivo, ou seja, o último número gerado é 4. A assertiva está correta.

Item III — ✅ Correto

A condição i % 2 == 0 verifica se o índice i é par. O operador % retorna o resto da divisão de i por 2. Se o resto for 0, o número é par. A assertiva está correta.

Item IV — ✅ Correto

Os nomes “Ana”, “Carlos” e “Eduardo” serão impressos. Eles estão nos índices 0, 2 e 4, respectivamente, que são pares. A condição i % 2 == 0 é verdadeira para esses índices, então o print(nomes[i]) será executado para cada um deles. A assertiva está correta.

Item V — ✅ Correto

A função print(nomes[i]) imprime diretamente o nome localizado no índice atual i. A variável i é o índice corrente do laço, e nomes[i] acessa o elemento da lista nessa posição. A assertiva está correta.

Conclusão: Corretos: II, III, IV e V → portanto a alternativa é a letra B.

Gabarito: letra B

Link permanente: /questoes/qg543492