Questão de Programação — Geral — CESPE / CEBRASPE 2025
- Código
- ce217120
- Banca
- CESPE / CEBRASPE
- Órgão
- TJ-PA
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista Judiciário - Especialidade: Análise de Sistemas

- CCerto
- EErrado

GabaritoC — Certo
Gabarito: letra C (CERTO). O código executa dois laços aninhados que acumulam na variável soma o produto de cada par (i, j), com i decrescendo de 5 a 1 e j crescendo de 1 até o valor atual de i. O somatório de todos os produtos é 140, portanto o resultado exibido é o número 140 — e não a string "number". A afirmação do item está correta.
O que a questão testa é a capacidade de rastrear a execução de laços aninhados em JavaScript, um dos temas mais recorrentes em provas de programação. O candidato precisa simular mentalmente (ou no papel) cada iteração, somando os produtos j * i conforme as condições dos laços. O erro clássico é se perder no meio da contagem ou esquecer que o laço interno recomeça do 1 a cada mudança de i.
Vamos entender a estrutura: o laço externo controla i, que começa em 5 e vai até 1 (decrementando). Para cada valor de i, o laço interno faz j variar de 1 até i (incrementando). A cada passagem, soma recebe soma + j * i. Ou seja, para cada i, somamos 1*i + 2*i + 3*i + ... + i*i, que é i * (1 + 2 + ... + i).
Aplicando a fórmula da soma dos primeiros n naturais, , temos para cada i:
:
:
:
:
:
Somando tudo: . O resultado é exatamente 140, um número, e não a string "number". A pegadinha está em confundir o valor numérico com o tipo de dado: a variável soma é inicializada com o número 0 e acumula apenas números, então o console.log exibirá o número 140.
A distinção importante aqui é entre o valor exibido e o tipo do valor. Em JavaScript, typeof 140 retorna "number", mas o console.log(140) exibe simplesmente 140. O item afirma que o código apresentará "number" como resultado — o que só ocorreria se o código imprimisse typeof soma, e não soma. Como o código imprime a variável soma diretamente, o resultado é o número 140.
Guarde o critério decisivo: para julgar o item, basta calcular o somatório dos produtos e verificar o que é passado ao console.log. Se o código imprimisse typeof soma, aí sim o resultado seria a string "number".
O item está correto porque o código, ao ser executado, exibe o número 140, e não a string "number". A simulação completa da execução confirma:
Para i = 5: j vai de 1 a 5, acumulando 5 + 10 + 15 + 20 + 25 = 75.
Para i = 4: j vai de 1 a 4, acumulando 4 + 8 + 12 + 16 = 40 (total 115).
Para i = 3: j vai de 1 a 3, acumulando 3 + 6 + 9 = 18 (total 133).
Para i = 2: j vai de 1 a 2, acumulando 2 + 4 = 6 (total 139).
Para i = 1: j vai de 1 a 1, acumulando 1 (total 140).
O console.log(soma) exibirá 140, um valor numérico. A afirmação de que o resultado será "number" (a string) é falsa, pois o código não utiliza o operador typeof. Portanto, o item está certo.
A banca explora a confusão entre o valor exibido e o tipo do valor. O candidato pode pensar que, como soma é um número, o console.log exibirá a string "number" — mas isso só aconteceria com console.log(typeof soma). Aqui, o código imprime o valor diretamente, então o resultado é o número 140.
Em questões de rastreamento de laços, monte uma tabela com os valores de i, j e soma a cada iteração. Isso evita erros de contagem e ajuda a visualizar o padrão. Para laços aninhados com acumulação, tente identificar uma fórmula fechada (como a soma dos primeiros n naturais) para acelerar o cálculo.
Gabarito: letra C (CERTO).
Link permanente: /questoes/ce217120