Alternativa D - X é 25 e y é 17.
Análise do Código
Para resolver esta questão, precisamos simular a execução do programa linha por linha, acompanhando como os valores são armazenados na memória.
Passo a Passo da Execução
- Declaração:
int x, y;
- São criadas duas variáveis inteiras. No momento, elas não possuem valores definidos.
- Primeira Atribuição:
x = 17;
- A variável
x recebe o valor 17. - Estado atual: x = 17
- Segunda Atribuição:
y = x;
- A variável
y recebe o valor atual de x. - Conceito Importante: Em linguagens como C, ao atribuir uma variável simples (
int) a outra, ocorre uma cópia do valor. y ganha seu próprio espaço na memória com o número 17. Mudanças futuras em x não afetam y. - Estado atual: x = 17, y = 17
- Terceira Atribuição:
x = 25;
- A variável
x recebe o novo valor 25. - O valor de
y não muda, pois ele já possui o valor 17 guardado independentemente. - Estado final: x = 25, y = 17
- Saída:
printf("%d %d\n", x, y);
- O programa imprime os valores finais encontrados no passo anterior.
Resumo dos Valores
| Linha | Ação | Valor de x | Valor de y |
|---|
| 4 | x = 17; | 17 | - |
| 5 | y = x; | 17 | 17 |
| 6 | x = 25; | 25 | 17 |
Portanto, ao final da execução, X vale 25 e Y vale 17.