A recursividade é um conceito fundamental em ciência da com...

Próximas questões
Com base no mesmo assunto
Q4193134 Algoritmos e Estrutura de Dados
A recursividade é um conceito fundamental em ciência da computação, em que uma função chama a si mesma para resolver instâncias menores do mesmo problema. No que se refere à estrutura e aos riscos do uso de funções recursivas, assinale a alternativa CORRETA.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: O elemento decisivo era identificar, no enunciado, a exigência estrutural da recursão: a presença de uma condição de parada para encerrar as chamadas.

Tema central: condição de parada na recursão
Análise das alternativas
A
Errada
Está errada porque recursividade não impede o uso de variáveis locais. Pelo contrário, cada chamada recursiva possui seu próprio contexto de execução, com seu próprio conjunto de variáveis locais.
B
Errada
Está errada porque não existe regra geral segundo a qual o compilador transforme qualquer laço simples em recursão para otimizar o processamento. A afirmação generaliza algo que a base expressamente nega.
C
Errada
Está errada porque recursão profunda e ilimitada não garante menor consumo de RAM na pilha. Cada chamada recursiva adiciona um quadro de ativação, de modo que maior profundidade tende a aumentar o uso da pilha e pode levar a estouro.
D
Certa
A alternativa D está certa porque o elemento estrutural indispensável de uma função recursiva válida é o caso base, também chamado de condição de parada. É ele que interrompe as chamadas sucessivas e permite que a execução retorne; sem esse ponto, a recursão não se encerra adequadamente.
Pegadinha da questão
A confusão explorada foi desviar do critério estrutural essencial da recursão — o caso base — com afirmações falsas sobre variáveis locais, otimização automática pelo compilador e suposto menor uso de memória.
Dica para questões semelhantes
  • Em questões sobre recursão, primeiro verifique se a alternativa respeita o caso base ou condição de parada.
  • Afirmações de que recursão exige variáveis globais devem ser rejeitadas, porque cada chamada pode ter variáveis locais próprias.
  • Desconfie de enunciados absolutos sobre compilador ou otimização automática de laços em recursão.
  • Quando a alternativa prometer menor uso de pilha em recursão profunda, confronte com o fato de que cada chamada consome memória de pilha.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo