FC ConcursosFC Concursos

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:

  1. 3 – 0 – 1 – 2 – 3.
  2. 2 – 3 – 0 – 1 – 2 – 3.
  3. 2 – 3 – 0 – 1 – 2 – 3 – 0.
  4. 3 – 4 – 0 – 1 – 3 – 7 – 0.
  5. 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

Continue aprendendo