Considere o código a seguir, utilizando a linguagem de prog...

Próximas questões
Com base no mesmo assunto
Q1245038 Programação
Considere o código a seguir, utilizando a linguagem de programação C. Assinale a alternativa correta.
#include <stdio.h> int main() { int x = 1, y, z; y = ++x; z = y++; y = 2; printf("%%%d, %d, %d%%", x, y, z); return 0; }
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - Será impresso: %2, 2, 2%.

Vamos analisar cada linha do código para entendermos a saída e por que a alternativa C é a correta:

Na primeira linha de código com a variável, temos a declaração e atribuição da variável int x = 1, que significa que a variável x começa com o valor 1.

Na linha seguinte, y = ++x, o operador de incremento ++ antes da variável x indica um incremento prévio, ou seja, x é incrementado antes de seu valor ser atribuído a y. Então, x passa a ser 2 e y também recebe o valor 2.

Logo depois, z = y++, o operador de incremento ++ após a variável y indica um incremento posterior, então o valor atual de y (que é 2) é atribuído a z, e depois y é incrementado para 3. No entanto, a linha seguinte imediatamente redefine y para 2 com y = 2, sem influenciar os valores de x ou z.

Finalmente, a linha com printf("%%%d, %d, %d%%", x, y, z) imprime os valores das variáveis. As sequências %% no início e no final são escapamentos para imprimir o caractere % literalmente. Assim, os valores que serão impressos entre os sinais de porcentagem são os valores atuais de x, y e z, que são 2, 2 e 2, respectivamente. Portanto, a saída correta será %2, 2, 2%.

É importante notar que entender a diferença entre o incremento prévio (++x) e posterior (x++) é fundamental para resolver esse tipo de questão. Além disso, o candidato precisa estar atento aos detalhes da função printf, como a maneira correta de escapar caracteres especiais como o percentual.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Para imprimir na tela o símbolo "%" sem que o mesmo seja lido como parte do código, é só escrevê-lo duas vezes:

"%%%d"

duas vezes para a impressão, uma vez para o código.

na tela aparecerá somente %2.

@Barbara Fonseca

não entendi poderia me explicar?

1). primeiro, você teria que fazer o método chinês para saber que todos os valores vão ser igual 2

2). saber o conceito de pré-incremento e pós incremento

3). mesmo não sabendo o lance dos "percentis", chutaria a letra C

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo