Análise da Questão
A questão aborda conceitos fundamentais de programação estruturada, especificamente sobre o uso e classificação de funções (ou subprogramas/subrotinas), com foco na linguagem C.
Vamos analisar cada alternativa para encontrar a correta:
- Alternativa A: Incorreta. A palavra-chave
void em C indica explicitamente que a função não retorna nenhum valor. Portanto, dizer que ela retorna "apenas inteiros" é um erro conceitual grave. - Alternativa B: Incorreta. As funções são a base da programação estruturada, permitindo modularizar o código, reutilizar trechos e facilitar a manutenção. Elas são essenciais.
- Alternativa C: Incorreta. O código dentro de uma função não é executado automaticamente no início do programa. Ele só roda quando a função é explicitamente chamada (invocada) em outra parte do código.
- Alternativa D: Incorreta. Em C, é perfeitamente válido criar funções que não possuem parâmetros. Exemplo:
void saudacao() { ... }. - Alternativa E: Correta. Na teoria da computação e na programação estruturada, faz-se uma distinção clássica:
- Função: Executa uma tarefa e devolve um valor (retorno).
- Procedimento: Executa uma tarefa e não devolve valor algum (no C, isso é representado pelo tipo
void).
Portanto, a afirmação de que uma função que não devolve valor é designada como procedimento é a definição teórica correta neste contexto.
Alternativa E