Questão de Programação — Linguagens de programação — FGV 2024
Programação›Linguagens de programação
Código
fg075154
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
Seja o seguinte código escrito em linguagem C:Assinale a opção que indica o que será impresso no console padrão de saída pelo programa.
A0 0 1
B0 1 2 3 4
C0 4 8 12 16
D0 8 16
E4 12 20
Revelar gabarito e comentário▾
GabaritoE — 4 12 20
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”.
Resolução
Gabarito: letra E — a conta chega a 4 12 20 — alternativa E.
A ideia por trás
O comando for em C é uma estrutura de repetição que concentra três partes: a inicialização, a condição de continuação e o incremento. Ele executa a inicialização uma única vez, depois verifica a condição antes de cada iteração; se verdadeira, executa o bloco, depois aplica o incremento e repete. A variável de controle é atualizada a cada volta, e é comum imprimir valores derivados dela.
A ordem de execução é fixa: inicialização → condição → bloco → incremento → condição → ... . O valor impresso pode ser o da variável de controle ou uma expressão com ela, e o incremento define o passo. Se o incremento for i += 8, a variável pula de 8 em 8; se o printf usa i + 4, o valor mostrado é sempre 4 a mais que o valor atual de i. A condição i < 24 determina quando parar.
Esta questão testa se você acompanha o fluxo do laço e distingue o valor da variável de controle do valor impresso. O passo do incremento e a expressão no printf são as pegadinhas.
O que a questão dá
código em C com laço for
inicialização: i = 0
condição: i < 24
incremento: i += 8
corpo: printf("%d ", i + 4)
O que queremos: a sequência de números impressa no console
Passo 1 — Simular a primeira iteração
Começamos com i = 0. A condição 0 < 24 é verdadeira, então o bloco executa. O printf imprime i + 4, ou seja, 0 + 4 = 4. Depois o incremento i += 8 faz i virar 8.
Por que esta fórmula: A expressão i + 4 é o que está dentro do printf; o incremento i += 8 é o passo do laço.
De onde vem cada valor: = inicialização: 0 · = constante: 8 (incremento do laço)
NÃO CAIA NESSA!
Imprimir i em vez de i + 4, o que daria 0.
Passo 2 — Simular a segunda iteração
Agora i = 8. A condição 8 < 24 é verdadeira, então imprime i + 4 = 12. Depois incrementa para 16.
Por que esta fórmula: Mesma lógica: imprime i + 4 e depois soma 8.
De onde vem cada valor: = passo 1: 8 · = constante: 8 (incremento do laço)
NÃO CAIA NESSA!
Esquecer que o incremento é 8, não 4.
Passo 3 — Simular a terceira iteração
Com i = 16, a condição 16 < 24 é verdadeira, imprime i + 4 = 20. Incrementa para 24.
Por que esta fórmula: Continua o mesmo padrão.
De onde vem cada valor: = passo 2: 16 · = constante: 8 (incremento do laço)
NÃO CAIA NESSA!
Achar que a condição é i <= 24 e incluir 24 na saída.
Passo 4 — Verificar a condição de parada
Após o incremento, i = 24. A condição 24 < 24 é falsa, então o laço termina. Não há mais impressões.