Pular para o conteúdo principal

Questão de Programação — Programação estruturada — FUNDATEC 2026

ProgramaçãoProgramação estruturada
Código
qg686039
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Programação de Sistemas
Analise o seguinte código em linguagem C:Imagem associada para resolução da questãoA saída produzida pelo programa será:
  1. A1 2 3 4
  2. B2 4 6 8
  3. C1 4 9 16
  4. D2 3 4 5
  5. E0 2 4 6
Revelar gabarito e comentário

GabaritoB — 2 4 6 8

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 B — a conta chega a 2 4 6 8 — alternativa B.

A ideia por trás

O comando for é uma estrutura de repetição da programação estruturada que executa um bloco de código várias vezes. Ele é formado por três partes separadas por ponto e vírgula: a inicialização (executada uma única vez antes do laço), a condição (testada antes de cada repetição; se verdadeira, o bloco roda, se falsa, o laço termina) e a atualização (executada ao final de cada repetição, geralmente para modificar a variável de controle).

A cada iteração, o valor da variável de controle i é usado dentro do bloco. No código, o bloco imprime 2 * i, ou seja, o dobro do valor atual de i. A condição i <= 4 garante que o laço rode enquanto i for menor ou igual a 4, e o incremento i++ aumenta i em 1 a cada volta. Assim, i assume os valores 1, 2, 3 e 4, e o que é impresso é 2, 4, 6 e 8.

Esta questão testa se você entende que o valor impresso pode ser uma expressão que depende da variável de controle, e não a própria variável. A pegadinha é confundir o valor de i com o valor de 2 * i.

O que a questão dá

  • laço for com inicialização i = 1

  • condição i <= 4

  • atualização i++

  • corpo do laço: printf("%d ", 2 * i)

O que queremos: a sequência de números impressa pelo programa

Passo 1 — Executar a primeira iteração

Começamos com i = 1 (inicialização). Testamos a condição: 1 <= 4 é verdadeiro, então o bloco executa. O bloco imprime 2 * i, que é 2 * 1 = 2.

Por que esta fórmula: A expressão 2 * i é o que está dentro do printf; ela calcula o dobro do valor atual de i.

2×i2 \times i

De onde vem cada valor: 22 = constante: 2 · ii = definição: inicialização do laço, i = 1

2×1=22 \times 1 = \boxed{2}
NÃO CAIA NESSA!

Imprimir i em vez de 2 * i, resultando em 1.

Passo 2 — Atualizar e testar a segunda iteração

Após a primeira impressão, o i++ incrementa i para 2. Testamos a condição: 2 <= 4 é verdadeiro, então o bloco executa novamente, imprimindo 2 * 2 = 4.

Por que esta fórmula: O incremento i++ é a atualização padrão do for; ele soma 1 ao valor de i.

i=i+1i = i + 1

De onde vem cada valor: ii = passo 1: valor atual de i, 1

i=1+1i = 1 + 1
i=2i = \boxed{2}
NÃO CAIA NESSA!

Esquecer de atualizar i, fazendo o laço infinito.

Passo 3 — Repetir para i = 3 e i = 4

O mesmo processo se repete: i vira 3, imprime 2 * 3 = 6; depois i vira 4, imprime 2 * 4 = 8. A condição ainda é verdadeira para i = 4.

Por que esta fórmula: Cada iteração segue o mesmo padrão: testar, imprimir 2*i, incrementar.

6e8\boxed{6 e 8}
NÃO CAIA NESSA!

Parar antes de i = 4, achando que a condição é i < 4.

Passo 4 — Encerrar o laço

Depois de i = 4, o incremento faz i = 5. Agora a condição 5 <= 4 é falsa, então o laço termina. A sequência completa impressa é 2 4 6 8.

2 468\boxed{2\ 4 6 8}
NÃO CAIA NESSA!

Incluir o 10, achando que o laço continua até i = 5.

Resposta: 2 4 6 8 — alternativa B

Link permanente: /questoes/qg686039