Em funções recursivas, a posição da chamada recursiva em relação às demais linhas de seu código influencia o resultado. Dependendo da posição, a recursividade é dita como pré-ordem (quando o processamento antecede a chamada recursiva); ordem simétrica (quando o processamento encontra-se entre duas chamadas recursivas) ou, finalmente, pós-ordem (processamento após as chamadas recursivas). Para essa questão, suponha o código a seguir:
#include <stdio.h>
void Recursao1(int i)
{
if(i>=5) return;
printf("%d ",i);
Recursao1(i+1);
}
void Recursao2(int i)
{
if(i>=5) return;
Recursao2(i+1);
printf("%d ",i);
}
int main()
{
printf("Recursao1\n");
Recursao1(0);
printf("\n\nRecursao2\n");
Recursao2(0);
return 0;
}
Assinale a opção que você julgue ser a correta:
|
||
.A função “Recursao1” segue uma recursão pré-ordem – logo o seu resultado é “4 3 2 1 0”. Por sua vez, a função “Recursao2” é pós-ordem, por consequência, o seu resultado é: “0 1 2 3 4” . |
||
.A função “Recursao1” segue uma recursão pré-ordem – logo o seu resultado é “0 1 2 3 4”. Por sua vez, a função “Recursao2” é pós-ordem eu resultado é o mesmo da função “Recursao1” . |
||
.A função “Recursao1” segue uma recursão pré-ordem – logo o seu resultado é “0 1 2 3 4”. Por sua vez, a função “Recursao2” é pós-ordem, por consequência, o seu resultado é: “4 3 2 1 0” . |
||
.A função “Recursao1” segue uma recursão pós-ordem – logo o seu resultado é “4 3 2 1 0”. Por sua vez, a função “Recursao2” é pré-ordem, por consequência, o seu resultado é: “0 1 2 3 4” . |
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar