Questão de Programação — Programação estruturada — FUNDATEC 2025
Programação›Programação estruturada
Código
qg472055
Banca
FUNDATEC
Órgão
GHC-RS
Ano
2025
Nível
Médio
Cargo
Programador
O que acontece após a sua execução do seguinte programa, escrito na linguagem C?#include <stdio.h>#include <string.h>int calcular(int x, int y) {int i = ++x;int c = 0;for ( ; i<y; i++) {c+= i;if (i % 2 == 0);continue;i++;}return c;}main() {int a = 0;int b = 5;printf("\n%d", calcular(a, b));}
AImprime o número 4
BImprime o número 9
CImprime o número 10
DAcusa erro de sintaxe
EAcusa erro em tempo de execução
Revelar gabarito e comentário▾
GabaritoC — Imprime o número 10
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”.
Programação em C: análise de loop e continue
Gabarito: letra C. O programa imprime 10. A função calcular inicia i com ++x, que incrementa x (parâmetro local) de 0 para 1. O loop for executa enquanto i < 5, somando i a c a cada iteração. A instrução if (i % 2 == 0); é um comando vazio (ponto e vírgula), e o continue é executado incondicionalmente, fazendo com que a linha i++; após ele nunca seja alcançada. Assim, a soma é 1+2+3+4 = 10.
NÃO CAIA NESSA!
O ponto e vírgula após o if torna o teste inócuo; muitos candidatos interpretam que o continue só ocorre quando i é par, mas na verdade ele ocorre sempre. Além disso, o i++ após o continue é código morto. Atenção à leitura literal da sintaxe em C.
Iteração
i (antes)
i<5?
c antes
c+=i
i (após incremento no for)
1
1
sim
0
1
2
2
2
sim
1
3
3
3
3
sim
3
6
4
4
4
sim
6
10
5
5
5
não
A função retorna c = 10. main imprime esse valor. Não há erro de sintaxe ou execução.