Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — UFPel-CES 2015

ProgramaçãoLinguagens de programação
Código
qq152867
Banca
UFPel-CES
Órgão
UFPEL
Ano
2015
Nível
Médio
Cargo
Técnico em Tecnologia da Informação
Analise o código abaixo em Javascript:<script type="text/javascript">var valor=8, x=1;while (valor<10) {x*=valor;valor-=2;if(valor==4)break;}confirm(x+" ");</script>Assinale a opção correta que será impressa para a variável valor.
  1. A148.
  2. B3628800.
  3. C48.
  4. D1680.
  5. E1.
Revelar gabarito e comentário

GabaritoC — 48.

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

Análise do código JavaScript

A questão testa a execução de um loop while com comandos de atribuição, decremento e break. O segredo é simular passo a passo as iterações, atualizando as variáveis valor e x.

Simulação

Inicialização: valor = 8, x = 1.

1ª iteração: valor < 108 < 10 é verdadeiro.

  • x *= valorx = 1 * 8 = 8

  • valor -= 2valor = 8 - 2 = 6

  • if(valor == 4)6 == 4 é falso, não executa break.

2ª iteração: valor < 106 < 10 é verdadeiro.

  • x *= valorx = 8 * 6 = 48

  • valor -= 2valor = 6 - 2 = 4

  • if(valor == 4)4 == 4 é verdadeiro, executa break.

O loop é interrompido. O comando confirm(x + " ") exibirá o valor de x, que é 48.

Alternativas

Alternativa A — ❌ Incorreta

O valor 148 não corresponde a nenhum produto parcial da simulação. O erro provavelmente vem de uma contagem incorreta de iterações ou de multiplicações equivocadas.

Alternativa B — ❌ Incorreta

3628800 é o fatorial de 10 (10! = 3.628.800). O código não calcula fatorial; ele multiplica valores decrescentes de 2 em 2 até atingir 4 e para. Não há relação com esse número.

Alternativa C — ✅ Correta

Conforme a simulação, x assume os valores: 1 → 8 → 48. O break interrompe o loop quando valor se torna 4, e o valor final de x é 48.

Alternativa D — ❌ Incorreta

1680 é o produto de 8×6×5×7 ou algo similar, mas não corresponde à sequência do código. O loop só multiplica 8 e 6, resultando em 48.

Alternativa E — ❌ Incorreta

O valor 1 seria o inicial de x, mas ele é alterado na primeira iteração para 8. Portanto, não é o valor exibido.

PEGA ESSA DICA!

Em questões de loop com break, simule cada iteração manualmente, atualizando todas as variáveis. Anote os valores após cada passo para evitar erros de contagem.

Gabarito: letra C

Link permanente: /questoes/qq152867