Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — CESPE / CEBRASPE 2024

ProgramaçãoLinguagens de programação
Código
ce176621
Banca
CESPE / CEBRASPE
Órgão
MPE-GO
Ano
2024
Nível
Superior
Cargo
Analista em Informática
Julgue o item seguinte, com base nos conceitos de linguagem de programação Ruby e Java.Em Ruby, o resultado da execução do comando%q{one\ntwo\n#{ 1 + 2 }} é “one\ntwo\n3”.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

Ruby: %q e interpolação de strings

Gabarito: Errado (E). Em Ruby, %q{...} é um delimitador de string não interpolado (equivalente a aspas simples). Isso significa que:

  • Sequências de escape como \n não são convertidas em quebra de linha, permanecem literais.

  • Expressões #{} não são avaliadas.

Portanto, o resultado do comando %q{one\ntwo\n#{ 1 + 2 }} é a string literal one\ntwo\n#{ 1 + 2 }, não "one\ntwo\n3". A banca tenta confundir com %Q{...} (ou %{...}), que é o delimitador interpolado e produziria "one\ntwo\n3".

  1. 1%q{...} (aspas simples)
  2. 2\n literal (não vira quebra)
  3. 3#{ } não é interpolado
  4. 4Resultado: string crua
LEVEL · soulevel.com.br

Alternativa C — ❌ Errada (e é o gabarito)

A afirmação diz que o resultado é “one\ntwo\n3”. Como explicado, %q não avalia a interpolação nem interpreta \n. Logo, a assertiva está incorreta.

NÃO CAIA NESSA!

A banca explora a confusão entre %q (não interpolado) e %Q (interpolado). Muitos candidatos assumem que todo delimitador percentual interpreta escapes e interpola, mas %q é a exceção. Memorize: q minúsculo = aspas simples; Q maiúsculo ou sem letra = aspas duplas.

Gabarito: E — Errado.

Link permanente: /questoes/ce176621