Alternativa A - Subprogramas recursivos possuem chamadas a si mesmos.
Introdução
O tema envolve subprogramas (rotinas) recursivos, que são funções que se chamam a si mesmas. Para analisar as afirmativas, é necessário conhecer as propriedades básicas da recursão.
Desenvolvimento
- Recursão é definida como o mecanismo em que uma subrotina chama a si mesma, geralmente para resolver problemas que podem ser divididos em casos menores.
- Análise das alternativas:
- Alternativa A: Correta. A principal característica da recursão é a chamada da própria subrotina, o que a distingue de chamadas sequenciais.
- Alternativa B: Incorreta. A execução não fica "suspendida"; em vez disso, a subrotina é pausada temporariamente enquanto a chamada recursiva é processada, depois de qual ela retorna à execução original.
- Alternativa C: Embora seja verdadeiro que cada chamada recursiva pode alocar um frame de pilha (stack) com endereço de retorno e variáveis locais, essa afirmação não é a mais fundamental para definir a recursão.
- Alternativa D: Embora a recursão possa causar overflow de pilha se houver chamadas excessivas sem condição de parada, essa é uma consequência, não uma propriedade básica.
- Alternativa E: Incorreta. Para evitar loop infinito, subprogramas recursivos precisam ter uma condição de parada (base) que encerra as chamadas.
Conclusão
A alternativa A é a mais diretamente relacionada à definição de subprogramas recursivos, pois sua principal característica é a chamada a si mesma.
Alternativa A