Ed
ano passado
Vamos analisar o código passo a passo para entender o que acontece durante a execução. 1. Declaração das variáveis: - `int x = 10;` - `int y = 5;` - `int retorno = 0;` 2. Primeira chamada da função `calculo(&x, y)`: - `*a` (que é `x`) recebe `(*a) + 3`, ou seja, `10 + 3 = 13`. Portanto, `x` agora é `13`. - `b` (que é `y`) é passado por valor, então `b = b * (*a)` se torna `5 * 13 = 65`, mas isso não altera `y` no `main`. - `i` é incrementado para `1`. - A função retorna `1`. 3. Segunda chamada da função `calculo(&x, y)`: - `*a` (que é `x`) recebe `(*a) + 3`, ou seja, `13 + 3 = 16`. Portanto, `x` agora é `16`. - `b` (que é `y`) é novamente passado por valor, então `b = b * (*a)` se torna `5 * 16 = 80`, mas isso não altera `y` no `main`. - `i` é incrementado para `2`. - A função retorna `2`. 4. Resultado final: - Após as duas chamadas, temos: - `x = 16` - `y = 5` (não foi alterado) - `retorno = 2` Portanto, o resultado final impresso será: `valor de x: 16, valor de y: 5 e valor de retorno: 2`. A alternativa correta é: E 16, 5, 2.
Cadastre-se ou realize login
Mais perguntas desse material