Pular para o conteúdo principal

Questão de Programação — Java — FUNDATEC 2023

ProgramaçãoJava
Código
qq896831
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Java
Analise o seguinte trecho de código Java:int n= 017;System.out.println(n);O que acontecerá após a execução?
  1. AImprime 017 na saída padrão.
  2. BImprime 17 na saída padrão.
  3. CImprime 15 na saída padrão por conversão implícita de octal para decimal.
  4. DProduz erro de compilação.
  5. EProduz erro em tempo de execução.
Revelar gabarito e comentário

GabaritoC — Imprime 15 na saída padrão por conversão implícita de octal para decimal.

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

Literais octais em Java

Gabarito: alternativa C. Em Java, o prefixo 0 em um literal inteiro indica que ele está em base octal. Assim, 017 equivale a 1×81+7×80=8+7=151 \times 8^1 + 7 \times 8^0 = 8 + 7 = 15 em decimal. Portanto, o programa imprime 15.

  1. 1Prefixo 0 = octal
  2. 2017 = 1×8¹ + 7×8⁰
  3. 3Resultado: 15 decimal
  4. 4System.out.println(15)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

O código não imprime 017 como string. O literal 017 é interpretado como um número octal e convertido para inteiro. A impressão com System.out.println utiliza a representação decimal padrão.

Alternativa B — ❌ Incorreta

O valor octal 017 é 15 decimal, não 17. Confundir com o número decimal 17 é um erro comum.

Alternativa C — ✅ Correta ⟵ GABARITO

A conversão implícita de octal para decimal ocorre durante a compilação: o literal 017 é armazenado como o inteiro 15. Ao imprimir, exibe 15. Esta é a resposta correta.

Alternativa D — ❌ Incorreta

Não há erro de compilação. Literais octais são perfeitamente válidos em Java, desde que os dígitos estejam entre 0 e 7 (como é o caso).

Alternativa E — ❌ Incorreta

Não há erro em tempo de execução. O programa compila e executa normalmente.

PEGA ESSA DICA!

Lembre-se: em Java, prefixo 0 = octal, 0x = hexadecimal, 0b = binário (desde Java 7). Para evitar confusão, evite usar literais octais, a menos que necessário.

Gabarito: alternativa C.

Link permanente: /questoes/qq896831