4.21. Preencha os espaços em branco com o valor das respectivas colunas, depois de executada a instrução à sua esquerda.

Nota: Devem ser utilizados os valores alterados das variáveis em cada linhas

Passo 1

Então temos essa tabela:

Vamos começar a resolver.

Na primeira linha temos o comando x + + , esse comando incrementa 1 ao valor de x , mas não faz nada com y e nem z . Depois de executado temos x = 5 + 1 = 6 , e as outras variáveis permanecem as mesmas.

Passo 2

Agora vamos para a segunda linha. Temos agora o comando y * = ( z + +   + 2 ) , isso é a mesma coisa que y = y * ( z + +   + 2 ) , ou ainda y = y + z + 1 + 2 . Então é só substituir os valores:

y = 10 + 7 + 1 + 2 = 90

E lembre-se também que o valor de z foi incrementado, então z = 8 .

Passo 3

Vamos para terceira linha: y = ! x . Esse comando faz uma atribuição interessante, ele está atribuindo o valor de NÃO x para y . Essa operação resulta em 0 se o valor de x for diferente de 0 . Então ficamos com:

Passo 4

Chegamos na quarta linha: z = x % 2 +   - - y . x % 2 é a sobra da divisão entre x e 2 , uma vez que x = 6 temos x % 2 = 0 . Nossa atribuição então fica assim: z = 0 +   - - y . Em resumo, estamos atribuindo a z o valor de y decrementado em 1 . Então z = - 1 e também y = - 1 , já que foi decrementado.

Passo 5

Vamos para quinta linha z = ( x = = y ) . Olha que interessante, estamos atribuindo a z o valor de uma verificação, a verificação se x é igual a y . Em C, quando essa verificação é verdadeira o valor retornado é 1 , mas se for falsa, como é o caso, o valor retornado é 0 . Portanto ficamos com:

Passo 6

Estamos quase acabando. Temos agora ! z , que quer dizer NÃO z . Olha só, aqui a gente não fez atribuição nenhuma, só dissemos NÃO z . Então nenhuma variável muda de valor.

Passo 7

Finalmente vamos terminar. Agora temos z = x % 8 , que é a sobra da divisão entre x e 8 .

O valor de x é 6 , então 6 8 sobra o próprio 6 .

E assim nós terminamos nossa tabela.

Resposta