Pular para o conteúdo principal

Questão de Programação — Geral — CESPE / CEBRASPE 2025

ProgramaçãoGeral
Código
ce217120
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2025
Nível
Superior
Cargo
Analista Judiciário - Especialidade: Análise de Sistemas
Acerca de Ajax e TypeScript e seus frameworks, julgue o item seguinte.O código a seguir, ao ser executado, apresentará number como resultado.Imagem associada para resolução da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

JavaScript: laços aninhados e acumulação

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, Sn=n(n+1)2S_n = \frac{n(n+1)}{2}, temos para cada i:

  • i=5i = 5: 5×5×62=5×15=755 \times \frac{5 \times 6}{2} = 5 \times 15 = 75

  • i=4i = 4: 4×4×52=4×10=404 \times \frac{4 \times 5}{2} = 4 \times 10 = 40

  • i=3i = 3: 3×3×42=3×6=183 \times \frac{3 \times 4}{2} = 3 \times 6 = 18

  • i=2i = 2: 2×2×32=2×3=62 \times \frac{2 \times 3}{2} = 2 \times 3 = 6

  • i=1i = 1: 1×1×22=1×1=11 \times \frac{1 \times 2}{2} = 1 \times 1 = 1

Somando tudo: 75+40+18+6+1=14075 + 40 + 18 + 6 + 1 = 140. 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".

  1. 1i=5: soma 75
  2. 2i=4: soma 115
  3. 3i=3: soma 133
  4. 4i=2: soma 139
  5. 5i=1: soma 140
LEVEL · soulevel.com.br

Item — ✅ Correto ⟵ GABARITO

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.

NÃO CAIA NESSA!

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.

PEGA ESSA DICA!

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