Ed
há 2 anos
Vamos analisar o programa passo a passo para entender o que ele faz e qual é o resultado de cada chamada da função `f1`. 1. Chamada `f1(10, 2)`: - `y` é diferente de 0, então `res = 10 / 2`, que resulta em `res = 5`. - O `while` executa enquanto `x > y` (10 > 2), então: - Primeira iteração: `res = 5 + 10` (res = 15), `x = 10 - 4` (x = 6). - Segunda iteração: `res = 15 + 6` (res = 21), `x = 6 - 4` (x = 2). - Terceira iteração: `x` não é mais maior que `y` (2 não é maior que 2), então o loop para. - Retorna `res = 21`. 2. Chamada `f1(5, 0)`: - `y` é igual a 0, então `res = 1 / 5`, que resulta em `res = 0.2`. - O `while` não executa porque `x` (5) não é maior que `y` (0). - Retorna `res = 0.2`. 3. Chamada `f1(8, 4)`: - `y` é diferente de 0, então `res = 8 / 4`, que resulta em `res = 2`. - O `while` executa enquanto `x > y` (8 > 4), então: - Primeira iteração: `res = 2 + 8` (res = 10), `x = 8 - 4` (x = 4). - Segunda iteração: `x` não é mais maior que `y` (4 não é maior que 4), então o loop para. - Retorna `res = 10`. Agora, juntando os resultados das chamadas: - `f1(10, 2)` retorna 21. - `f1(5, 0)` retorna 0.2. - `f1(8, 4)` retorna 10. Portanto, a sequência de resultados é: 21; 0.2; 10. Analisando as alternativas: A) 10; 6,2; 10. B) 10; 6,2; 21. C) 21; 6,2; 10. Nenhuma das alternativas corresponde exatamente aos resultados que encontramos. Parece que houve um erro nas opções apresentadas. Você pode verificar se as opções estão corretas ou se há algum erro na descrição do programa.
Cadastre-se ou realize login
Mais perguntas desse material