Qual o resultado quando o seguinte fragmento de código for executado?
int a = 8;
int b = 3;
float f = a++/b--;
System.out.println(f);
A. 3.0
B. 4.5
C. 2.0
D. 2.6
Caso o operador incremento/decremento se apresentasse anteriormente à a/b, o valor de memória já seria passado às variáveis resultando no valor 3.0 (alternativa A). Ainda que os operadores ++ e -- tenham maior procedência que /, não há conflito entre as operações neste exemplo. Portanto, a operação 8/3 resulta em 2.0 para f do tipo float, depois que a é incrementado para 9 e b é decrementado para 2 (alternativa C). Os demais valores não são possíveis de alcançar com as operações apresentadas.
Alternativa correta: C.
Eu e mais alguns colegas de trabalho iniciamos um grupo de estudo para a certificação SCJP. Postaremos aqui todas questões estudadas, suas respectivas respostas e nossos comentários sobre elas. Espero que seja tão útil para quem lê, quanto é para nós...
Mostrando postagens com marcador Tipos. Mostrar todas as postagens
Mostrando postagens com marcador Tipos. Mostrar todas as postagens
quarta-feira, 4 de agosto de 2010
Questão 7 - Inicialização de vetores
Considere as seguintes linhas de código:
float[] x = new float[10];
Float[] y = new Float[10];
Depois da execução, quais das expressões a seguir são verdadeiras?
A. x[9] == 0
B. x[10] == 0.0f
C. y[9] == 0.0f
D. x.length == 10
E. y.length() == 10
F. y[9] == null
O compilador inicializa todos os elementos do array x para 0.0f, que é o elemento default para tipo float. Todos os elementos do array y são inicializados para null, desde que null é o valor default para tipos de referência de objetos. Na alternativa A, 0 é promovido a 0.0f durante a comparação, enquanto que x[9] é o último elemento do array. Alternativa B é incorreta ao tentar acessar x[10], o que resulta em disparar uma exceção. A alternativa F é correta e C é incorreta porque y[9] é null e não pode ser comparada a 0.0f. Todos os arrays têm uma variável de instância nomeada length, que retorna o número de elementos no array. Dessa forma D está correta, enquanto E está incorreta visto que não há nenhum método chamado length().
Alternativas corretas: A, D, F.
float[] x = new float[10];
Float[] y = new Float[10];
Depois da execução, quais das expressões a seguir são verdadeiras?
A. x[9] == 0
B. x[10] == 0.0f
C. y[9] == 0.0f
D. x.length == 10
E. y.length() == 10
F. y[9] == null
O compilador inicializa todos os elementos do array x para 0.0f, que é o elemento default para tipo float. Todos os elementos do array y são inicializados para null, desde que null é o valor default para tipos de referência de objetos. Na alternativa A, 0 é promovido a 0.0f durante a comparação, enquanto que x[9] é o último elemento do array. Alternativa B é incorreta ao tentar acessar x[10], o que resulta em disparar uma exceção. A alternativa F é correta e C é incorreta porque y[9] é null e não pode ser comparada a 0.0f. Todos os arrays têm uma variável de instância nomeada length, que retorna o número de elementos no array. Dessa forma D está correta, enquanto E está incorreta visto que não há nenhum método chamado length().
Alternativas corretas: A, D, F.
Marcadores:
Classes Nativas,
Pegadinhas,
Tipos
Assinar:
Postagens (Atom)