Questão de Programação — Linguagens de programação — FGV 2024
- Código
- fg084716
- Banca
- FGV
- Órgão
- EPE
- Ano
- 2024
- Nível
- Superior
- Cargo
- Analista de Gestão Corporativa - Tecnologia da Informação (Soluções)
- A0
- B1
- C3
- D[0, 0, 0, 0, 0]
- E[0]
GabaritoA — 0
Gabarito: letra A. Após a execução do código, z recebe o valor 0. A chave da questão é entender que y = x não cria uma cópia da lista, mas faz y apontar para o mesmo objeto x. Assim, qualquer alteração em x reflete em y e vice‑versa.
Vamos simular passo a passo:
x = [] → lista vazia.
O laço for i in range(1,10,2): x.append(i) adiciona os números ímpares de 1 a 9, resultando em x = [1, 3, 5, 7, 9].
y = x → y passa a referenciar o mesmo objeto que x. Ambas as variáveis apontam para a mesma lista na memória.
x[1] = 0 → altera o elemento de índice 1 (segundo elemento) para 0. Como x e y compartilham o objeto, a lista agora é [1, 0, 5, 7, 9].
z = y[1] → acessa o índice 1 da lista referenciada por y, que é 0. Portanto, z = 0.
z recebe 0, conforme demonstrado acima.
1 é o valor do índice 0 antes da modificação. Na linha 6, y[1] já foi alterado para 0.
3 era o valor original de x[1] antes da atribuição x[1] = 0. Após a linha 5, o valor é 0.
z é um inteiro, não uma lista. O código não produz uma lista de zeros.
Novamente, z é um inteiro, não uma lista.
A banca testa se o candidato sabe que y = x não copia a lista. Muitos alunos pensam que y se torna uma cópia independente, mas em Python a atribuição entre variáveis de objeto mutável (listas, dicionários, etc.) cria apenas uma nova referência ao mesmo objeto. A alteração em x[1] afeta y porque ambos apontam para a mesma lista. Memorize: variáveis em Python são rótulos para objetos, não caixas que guardam valores.
Gabarito: letra A
Link permanente: /questoes/fg084716