Questão FC331131
Em relação à linguagem de programação Python, analise o código abaixo. y = range(2,8) for n in y: print( pow(n,1) & 0x3 ) Sabendo-se que o código acima corresponde a um programa, q
Linguagens de Programação
FGV · 2024
Em relação à linguagem de programação Python, analise o código abaixo.
y = range(2,8)
for n in y:
print( pow(n,1) & 0x3 )
Sabendo-se que o código acima corresponde a um programa, que é executado com sucesso, ele terá como resultado os seguintes números impressos:
- 3 – 0 – 1 – 2 – 3.
- 2 – 3 – 0 – 1 – 2 – 3.
- 2 – 3 – 0 – 1 – 2 – 3 – 0.
- 3 – 4 – 0 – 1 – 3 – 7 – 0.
- 3 – 0 – 1 – 2 – 3 – 0.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
range(2,8) gera os inteiros de 2 até 7 inclusive, ou seja: 2, 3, 4, 5, 6, 7.
pow(n,1) calcula \(n^1\), que é simplesmente o próprio \(n\); não altera o valor.
O operador & em Python é o bitwise AND. A constante 0x3 é o inteiro 3 em hexadecimal, isto é \(0x3 = 3_{10} = 0b11\).
Fazer \(n\) & \(0x3\) conserva apenas os dois bits menos significativos de \(n\), equivalendo a \(n \bmod 4\). Assim, para cada \(n\):
2 → \(2 \bmod 4 = 2\)
3 → \(3 \bmod 4 = 3\)
4 → \(4 \bmod 4 = 0\)
5 → \(5 \bmod 4 = 1\)
6 → \(6 \bmod 4 = 2\)
7 → \(7 \bmod 4 = 3\)
Portanto, a sequência impressa é: 2 – 3 – 0 – 1 – 2 – 3, conforme a alternativa correta.
Conteúdo do catálogo FC Concursos · Atualizado em