Ed
há 7 dias
Vamos analisar o código passo a passo: ```c int x, y, z; z = 10; x = 3; y = (z > x) & ((x % 3) == 0); x = z / x; printf("X = %d, Z = %d, Y = %d", x, z, y); ``` 1. Inicialmente, `z = 10` e `x = 3`. 2. A expressão para `y` é: `(z > x) & ((x % 3) == 0)`. - `z > x` → `10 > 3` → verdadeiro (em C, verdadeiro é 1). - `x % 3` → `3 % 3` → 0, então `(x % 3) == 0` é verdadeiro (1). - O operador `&` é o operador bit a bit (AND), não o lógico `&&`. - Como ambos são 1, `1 & 1` = 1. - Portanto, `y = 1`. 3. Depois, `x = z / x` → `x = 10 / 3` → divisão inteira, resultado é 3. 4. O `printf` exibirá: `X = 3, Z = 10, Y = 1`. Resposta correta: X = 3, Z = 10, Y = 1