Java MCQs on assignment operators and operator precedence in Java Programming Language.
1. Which of these have highest precedence? Answer: a 2. What should be expression1 evaluate to in using ternary operator as in this line? a) Integer Answer: c 3. What is the value stored in x in the following lines of Java code? a) 0 Answer: d 4. What is the order of precedence (highest to lowest) of following operators? a) 1 -> 2 -> 3 Answer: a 5. Which of these statements are incorrect? Answer: c 6. What will be the output of the following Java code? a) 10 7. What will be the output of the following Java code? a) 24 8 8. What will be the output of the following Java code? a) compile and runs fine Answer: d 9. Which of these lines of Java code will give better performance? a) 1 will give better performance as it has no parentheses Answer: c 10. What will be the output of the following Java program? a) compile time error
a) ()
b) ++
c) *
d) >>
Clarification: Order of precedence is (highest to lowest) a -> b -> c -> d. expression1 ? expression2 : expression3
b) Floating – point numbers
c) Boolean
d) None of the mentioned
Clarification: The controlling condition of ternary operator must evaluate to boolean. int x, y, z;
x = 0;
y = 1;
x = y = z = 8;
b) 1
c) 9
d) 8
Clarification: None.
b) 2 -> 1 -> 3
c) 3 -> 2 -> 1
d) 2 -> 3 -> 1
Clarification: None.
a) Equal to operator has least precedence
b) Brackets () have highest precedence
c) Division operator, /, has higher precedence than multiplication operator
d) Addition operator, +, and subtraction operator have equal precedence
Clarification: Division operator, /, has equal precedence as of multiplication operator. In expression involving multiplication and division evaluation of expression will begin from the right side when no brackets are used.
class operators
{
public static void main(String args[])
{
int var1 = 5;
int var2 = 6;
int var3;
var3 = ++ var2 * var1 / var2 + var2;
System.out.print(var3);
}
}
b) 11
c) 12
d) 56
Clarification: Operator ++ has the highest precedence than / , * and +. var2 is incremented to 7 and then used in expression, var3 = 7 * 5 / 7 + 7, gives 12.
output:
$ javac operators.java
$ java operators
12
class operators
{
public static void main(String args[])
{
int x = 8;
System.out.println(++x * 3 + " " + x);
}
}
b) 24 9
c) 27 8
d) 27 9
Clarification: Operator ++ has higher precedence than multiplication operator, *, x is incremented to 9 than multiplied with 3 giving 27.
output:
$ javac operators.java
$ java operators
27 9
class Output
{
public static void main(String args[])
{
int x=y=z=20;
}
}
b) 20
c) run time error
d) compile time error
Clarification: None. 1. a | 4 + c >> b & 7;
2. (a | ((( 4 * c ) >> b ) & 7 ))
b) 2 will give better performance as it has parentheses
c) Both 1 & 2 will give equal performance
d) Dependent on the computer system
Clarification: Parentheses do not degrade the performance of the program. Adding parentheses to reduce ambiguity does not negatively affect your system.
class Output
{
public static void main(String args[])
{
int a,b,c,d;
a=b=c=d=20
a+=b-=c*=d/=20
System.out.println(a+" "+b+" "+c+" "+d);
}
}
b) runtime error
c) a=20 b=0 c=20 d=1
d) none of the mentioned
Clarification: Expression will evaluate from right to left.
output:
$ javac Output.java
$ java Output
20 0 20 1