Ques1: ¿Cuál es el resultado de este programa?
class A { public int i; private int j; } class B extends A { void display() { super.j = super.i + 1; System.out.println(super.i + " " + super.j); } } class inheritance { public static void main(String args[]) { B obj = new B(); obj.i = 1; obj.j = 2; obj.display(); } }
a) 2 2
b) 3 3
c) Error de tiempo de ejecución
d) Error de compilación
Answer: d
Explicación: la clase A contiene una variable miembro privada j, esta no puede ser heredada por la subclase B. Entonces, en la clase B no podemos acceder a j. Entonces dará un error de tiempo de compilación.
Ques2: ¿Cuál es la salida de este programa?
class selection_statements { public static void main(String args[]) { int var1 = 5; int var2 = 6; if ((var2 = 1) == var1) System.out.print(var2); else System.out.print(++var2); } }
opciones:a) 1
b) 2
c) 3
d) 4
Answer: b
Explicación: en la declaración «If», primero var2 se inicializa en 1 y luego se verifica la condición si var2 es igual a var1. Como sabemos, var1 es 5 y var2 es 1, por lo que la condición será falsa y, de lo contrario, se ejecutará la parte .
Ques3: ¿Cuál es el resultado de este programa?
class comma_operator { public static void main(String args[]) { int sum = 0; for (int i = 0, j = 0; i < 5 & j < 5; ++i, j = i + 1) sum += i; System.out.println(sum); } }
opciones:
a) 5
b) 6
c) 14
d) error de compilación
Answer: b
Explicación: Usando el operador de coma, podemos incluir más de una instrucción en la parte de inicialización e iteración del ciclo for. Por lo tanto, se ejecuta tanto ++i como j = i + 1 i obtiene el valor: 0, 1, 2, 3, y j obtiene los valores: 0, 1, 2, 3, 4, 5.
Pregunta4. ¿Cuál será la salida del programa?
class Geeks { public static void main(String[] args) { Geeks g = new Geeks(); g.start(); } void start() { long[] a1 = { 3, 4, 5 }; long[] a2 = fix(a1); System.out.print(a1[0] + a1[1] + a1[2] + " "); System.out.println(a2[0] + a2[1] + a2[2]); } long[] fix(long[] a3) { a3[1] = 7; return a3; } }
opciones:
a) 12 15
b) 15 15.
c) 3 4 5 3 7 5
d) 3 7 5 3 7 5
Answer: b
Explicación: Las variables de referencia a1 y a3 se refieren al mismo objeto de array larga. Cuando se llama al método fix(), la array a1 se pasa como referencia. Por lo tanto, el valor de a3[1] se convierte en 7, que también se reflejará en a1[] debido a la llamada por referencia . Entonces la array a1[] se convierte en {3, 7, 5}. Cuando esto se devuelve a a2[], también se convierte en {3, 7, 5}.
Salida: 3 + 7 + 5 + ” ” + 3 + 7 + 5 = 15 15
Pregunta5. ¿Cuál será la salida del programa?
class BitShift { public static void main(String[] args) { int x = 0x80000000; System.out.print(x + " and "); x = x >>> 31; System.out.println(x); } }
opciones:
a) -2147483648 y 1
b) 0x80000000 y 0x00000001
c) -2147483648 y -1
d) 1 y -2147483648
Answer: a
Explicación: La opción A es correcta. El operador >>> mueve todos los bits a la derecha, llenando con ceros los bits de la izquierda. La transformación de bits se ve así:
Before: 1000 0000 0000 0000 0000 0000 0000 0000 After: 0000 0000 0000 0000 0000 0000 0000 0001
La opción C es incorrecta porque el operador >>> cero llena los bits de la izquierda, que en este caso cambia el signo de x, como se muestra.
Este artículo es una contribución de Rishabh Jain . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA