Questão de Programação — Linguagens de programação — UFPel-CES 2015
- Código
- qq152867
- Banca
- UFPel-CES
- Órgão
- UFPEL
- Ano
- 2015
- Nível
- Médio
- Cargo
- Técnico em Tecnologia da Informação
- A148.
- B3628800.
- C48.
- D1680.
- E1.
GabaritoC — 48.
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.
Inicialização: valor = 8, x = 1.
1ª iteração: valor < 10 → 8 < 10 é verdadeiro.
x *= valor → x = 1 * 8 = 8
valor -= 2 → valor = 8 - 2 = 6
if(valor == 4) → 6 == 4 é falso, não executa break.
2ª iteração: valor < 10 → 6 < 10 é verdadeiro.
x *= valor → x = 8 * 6 = 48
valor -= 2 → valor = 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.
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.
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.
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.
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.
O valor 1 seria o inicial de x, mas ele é alterado na primeira iteração para 8. Portanto, não é o valor exibido.
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