A
linguagem C traz um recurso bem interessante chamado Operadores
Aritméticos de Atribuição, que permitem em uma única linha fazer uma (ou
mais) operações aritméticas junto a uma operação de atribuição. Sabendo
que o código abaixo irá imprimir o valor 26, qual das opções abaixo NÃO
pode ser utilizada para substituir o código oculto XXXXXXXXXX? Assinale
a alternativa correta:
a) y += x + 1;
b) y += ++x;
c) y += x++;
d) y = y + x + 1;
Anexos:
Respostas
respondido por:
3
A alternativa correta, mesmo, é a C.
y += x++;
Como o x = 10 e o y = 15. Então a atribuição iria ficar assim:
y += x++ que é a mesma coisa que:
y = y + x que dará
y = 15 + 10
y = 25
Lembrando que o x++ só será incrementado se estiver dentro de um laço... como ele não está dentro de um laço..logo o valor da variável x ficará com 10.
A alternativa B está incorreta porque a variável x já será incrementa (++x) mesmo estando fora de um laço de repetição.
Então na B, daria o y receberia 26. Pois,
++x = 11
y += ++x
y = y + 11
y = 15 + 11
y = 26
y += x++;
Como o x = 10 e o y = 15. Então a atribuição iria ficar assim:
y += x++ que é a mesma coisa que:
y = y + x que dará
y = 15 + 10
y = 25
Lembrando que o x++ só será incrementado se estiver dentro de um laço... como ele não está dentro de um laço..logo o valor da variável x ficará com 10.
A alternativa B está incorreta porque a variável x já será incrementa (++x) mesmo estando fora de um laço de repetição.
Então na B, daria o y receberia 26. Pois,
++x = 11
y += ++x
y = y + 11
y = 15 + 11
y = 26
Perguntas similares
7 anos atrás
7 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás