SóProvas


ID
1562224
Banca
Marinha
Órgão
Quadro Técnico
Ano
2013
Provas
Disciplina
Programação
Assuntos

Analise o programa a seguir desenvolvidos.


package p5;

public class P5 {

       public static void main(String[ ] args) {

              int c=1;

              c =0;


              System.out.print(c--);

              System.out.print(++c);

              System.out.print(c);


              c -= --c - c+ + ;


              System.out.print(c--);

              System.out.print(++c);

              System.out.println(c);

       }

}


Com relação às estruturas de controle aplicáveis à linguagem JAVA, ambiente Netbeans  7 . 2 . 1, no programa acima, que sequência será impressa ao final de sua execução?

Alternativas
Comentários
  • A questão foca nos operadores de incremento e decremento. Eles podem ser:

    Pré-fixados: é avaliado o valor incrementado (decrementado) de uma variável, ou seja, o valor trabalhado já é o incrementado (decrementado) ; e

    Pós-fixados: é avaliado o valor original, ou seja, o valor trabalhado é o valor original de uma variável e depois o valor da variável é incrementado (decrementado) .

    Exemplo com o operador de incremento/decremento pré-fixado:

    int x = 15;

    System.out.println(“x: ” + ++x); // O resultado gerado é x: 16.

    Exemplo com o operador de incremento/decremento pós-fixado:

    int x = 15;

    System.out.println(“x: ” + x++); // O resultado gerado é x: 15.

    System.out.println(“x: ” + x); // O resultado gerado é x: 16.

    Agora iremos ao código da questão.

    A variável c inicia com 1:

    int c = 1;

    A variável c é atualizado com 0:

    c = 0;

    Será impresso o valor original da variável c (decremento pós-fixado) e depois será decrementado (a variável c é atualizado para -1):

    System.out.print(c--); // Será impresso 0.

    Será impresso o valor já incrementado da variável c (decremento pré-fixado) (a variável c é atualizado para 0):

    System.out.print(++c); // Será impresso 0.

    Será impresso o valor atual da variável c:

    System.out.print(c); // Será impresso 0.

    Seguindo no código, temos a utilização de um operador de atribuição composta:

    c -= --c - c++;

    Organizando o trecho acima, temos:

    c = c - ((--c) - (c++));

    Tudo o que está à direita do operador de atribuição será repassado para a variável c. Então vamos comentar esse lado do operador:

    - Primeiro operando (c): c é igual a 0 (valor da variável até o momento);

    - Segundo operando (--c): c é igual a -1 (valor já decrementado da variável, pois se está usando operador de decremento pré-fixado);

    - Terceiro operando (c++): c é igual a -1 (valor atualizado da variável no segundo operando e depois o valor é incrementado).

    Organizando o trecho agora com valores, temos:

    c = 0 - ((-1) - (-1));

    c = 0(-1 + 1);

    c = 0 - 0;

    c = 0;

    Será impresso o valor original da variável c (decremento pós-fixado) e depois será decrementado (a variável c é atualizado para -1):

    System.out.print(c--); // Será impresso 0.

    Será impresso o valor já incrementado da variável c (decremento pré-fixado) (a variável c é atualizado para 0):

    System.out.print(++c); // Será impresso 0.

    Será impresso o valor atual da variável c:

    System.out.println(c); // Será impresso 0.

    Ao final, será impresso 000000.

    Gabarito: letra D.

    Referência:

    JSE02 - Java Standard Edition (Prof. Rogério Araújo) - Mód. 02. Disponível em: http://www.provasdeti.com.br/jse02ra-para-concursos.html.

  • aí não mano. Concentração fundiária é uma quantidade grande de terras na mão de poucos.

  • ISSO TARARAU