Pular para o conteúdo principal

Questão de Programação — Programação orientada a aspectos — FGV 2024

ProgramaçãoProgramação orientada a aspectos
Código
fg085535
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Júnior I - Desenvolvimento de Software para Operação de Satélites
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. A3 – 0 – 1 – 2 – 3.
  2. B2 – 3 – 0 – 1 – 2 – 3.
  3. C2 – 3 – 0 – 1 – 2 – 3 – 0.
  4. D3 – 4 – 0 – 1 – 3 – 7 – 0.
  5. E3 – 0 – 1 – 2 – 3 – 0.
Revelar gabarito e comentário

GabaritoA — 3 – 0 – 1 – 2 – 3.

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”.

Linguagem Python: operações bitwise e range

Gabarito: letra A. O código imprime o resultado de n & 3 para cada n no intervalo range(3,8), gerando a sequência: 3, 0, 1, 2, 3.

O código apresentado deve ser analisado com atenção. O range(2,8) geraria números de 2 a 7, mas o gabarito oficial indica que o intervalo correto é range(3,8) (provavelmente um erro de digitação no enunciado). Assim, os valores de n são: 3, 4, 5, 6, 7.

Para cada n, calcula-se pow(n,1) & 0x3. pow(n,1) retorna n (expoente 1). O operador & realiza o AND bitwise com 0x3 (decimal 3). O resultado é n & 3, que equivale aos dois bits menos significativos de n.

Cálculo passo a passo:

  • n=3: binário 11, 11 & 11 = 11 (3)

  • n=4: binário 100, 100 & 011 = 0

  • n=5: binário 101, 101 & 011 = 1

  • n=6: binário 110, 110 & 011 = 2

  • n=7: binário 111, 111 & 011 = 3

Sequência impressa: 3, 0, 1, 2, 3.

Alternativa A — ✅ Correta ⟵ GABARITO

Apresenta exatamente a sequência calculada: 3, 0, 1, 2, 3.

Alternativa B — ❌ Incorreta

Mostra 2, 3, 0, 1, 2, 3, que seria a sequência para range(2,8) (n=2 a 7).

Alternativa C — ❌ Incorreta

Inclui um 0 extra no final (2, 3, 0, 1, 2, 3, 0).

Alternativa D — ❌ Incorreta

Valores completamente diferentes, como 4 e 7.

Alternativa E — ❌ Incorreta

Começa com 3, mas tem 6 números e termina com 0, não correspondendo.

NÃO CAIA NESSA!

O range(2,8) geraria 6 números, mas a banca considerou range(3,8) (5 números). Fique atento ao intervalo exato.

Gabarito: letra A.

Link permanente: /questoes/fg085535