Ed
há 2 meses
Vamos analisar o código fornecido para entender o que a função `recursividade` faz. A função `recursividade` é definida da seguinte forma: ```c int recursividade(int n) { if (n > 0) { n = 2 * recursividade(n - 1); return n; } else { return 1; } } ``` Quando chamamos `recursividade(4)`, o fluxo de execução será o seguinte: 1. `recursividade(4)` chama `recursividade(3)`. 2. `recursividade(3)` chama `recursividade(2)`. 3. `recursividade(2)` chama `recursividade(1)`. 4. `recursividade(1)` chama `recursividade(0)`. 5. `recursividade(0)` retorna `1`. Agora, vamos voltar pelas chamadas: - `recursividade(1)` retorna `2 * 1 = 2`. - `recursividade(2)` retorna `2 * 2 = 4`. - `recursividade(3)` retorna `2 * 4 = 8`. - `recursividade(4)` retorna `2 * 8 = 16`. Portanto, o valor retornado pela função `recursividade(4)` é `16`. A opção correta é: C) 16.