Questão de Programação — Conceitos básicos de programação — FUNDATEC 2025
Programação›Conceitos básicos de programação
Código
qg473695
Banca
FUNDATEC
Órgão
IF Sul - MG
Ano
2025
Nível
Superior
Cargo
PEBTT - Informática
Para responder a questão, considere o programa a seguir, feito em linguagem C.
As linhas estão numeradas apenas para referência.
Qual das linhas da função main retorna um erro de compilação?
A15.
B16.
C23.
D25.
E26.
Revelar gabarito e comentário▾
GabaritoC — 23.
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 C — a conta chega a Linha 23 — alternativa C.
A ideia por trás
Em C, uma função precisa ser conhecida pelo compilador antes de ser usada. Existem duas formas de apresentá-la: a declaração (protótipo), que informa nome, tipo de retorno e parâmetros sem o corpo, e a definição, que é a função completa com o corpo entre chaves. O compilador lê o código de cima para baixo, então, se uma chamada aparece antes da definição e não há protótipo, ele não sabe o que é aquela função naquele ponto.
A regra é simples: toda função usada deve ter sido declarada ou definida antes do uso. Se a definição vem depois da chamada, é obrigatório um protótipo antes. Sem ele, o compilador emite erro (ou warning tratado como erro). Isso vale para qualquer função, inclusive as definidas dentro do main, como neste caso.
A questão mostra um programa onde a função soma é chamada na linha 23 e só definida na linha 25, sem protótipo. O erro está na chamada, não na definição.
O que a questão dá
linha 15: declaração de variável com inicialização
linha 16: declaração de variável com inicialização
linha 23: chamada da função soma
linha 25: definição da função soma
linha 26: return dentro da função soma
O que queremos: qual linha da função main retorna erro de compilação
Passo 1 — Verificar se a função soma foi declarada antes
O compilador processa o código de cima para baixo. Para que a chamada na linha 23 seja válida, ele precisa já ter visto um protótipo ou a definição da função soma. Como a definição só aparece na linha 25, precisamos checar se há um protótipo antes da linha 23.
NÃO CAIA NESSA!
Achar que a definição da função serve como declaração para chamadas anteriores — não serve, a ordem importa.
Passo 2 — Concluir que a chamada é o erro
Sem protótipo e com a definição depois, a linha 23 é inválida. As demais linhas (15, 16, 25, 26) são sintaticamente corretas: declarações de variáveis, definição de função e return.
NÃO CAIA NESSA!
Confundir a ordem: a definição está certa, o problema é a chamada antes dela.