Sail E0 Webinar

MCQs

Total Questions : 21 | Page 1 of 3 pages
Question 1.


What will be the output of the program?


public class X
{
public static void main(String [] args)
{
String names [] = new String[5];
for (int x=0; x < args.length; x++)
names[x] = args[x];
System.out.println(names[2]);
}
}


and the command line invocation is



> java X a b


  1.    names
  2.    null
  3.    Compilation fails
  4.    An exception is thrown at runtime
 Discuss Question
Answer: Option B. -> null

The names array is initialized with five null elements. Then elements 0 and 1 

are assigned the String values "a" and "b" respectively (the command-line 

arguments passed to main). Elements of names array 2, 3, and 4 remain 

unassigned, so they have a value of null.



Question 2.


In the given program, how many lines of output will be produced?


public class Test
{
public static void main(String [] args)
{
int [] [] [] x = new int [3] [] [];
int i, j;
x[0] = new int[4][];
x[1] = new int[2][];
x[2] = new int[5][];
for (i = 0; i < x.length; i++)
{
for (j = 0; j < x[i].length; j++)
{
x[i][j] = new int [i + j + 1];
System.out.println("size = " + x[i][j].length);
}
}
}
}
  1.    7
  2.    9
  3.    11
  4.    13
  5.    Compilation fails
 Discuss Question
Answer: Option C. -> 11

The loops use the array sizes (length).

It produces 11 lines of output as given below.

D:Java>javac Test.java

D:Java>java Test

size = 1

size = 2

size = 3

size = 4

size = 2

size = 3

size = 3

size = 4

size = 5

size = 6

size = 7

Therefore, 11 is the answer.



Question 3.


What will be the output of the program?


public class CommandArgsTwo
{
public static void main(String [] argh)
{
int x;
x = argh.length;
for (int y = 1; y <= x; y++)
{
System.out.print(" " + argh[y]);
}
}
}


and the command-line invocation is



> java CommandArgsTwo 1 2 3


  1.    0 1 2
  2.    1 2 3
  3.    0 0 0
  4.    An exception is thrown at runtime
 Discuss Question
Answer: Option D. -> An exception is thrown at runtime

An exception is thrown because at some point in (System.out.print(" " + argh[y]);), 

the value of x will be equal to y, resulting in an attempt to access an index out of

 bounds for the array. Remember that you can access only as far as length - 1, 

so loop logical tests should use x < someArray.length as opposed to x < = some

Array.length.


Question 4.


What will be the output of the program ?


public class Test
{
public static void main(String [] args)
{
signed int x = 10;
for (int y=0; y
  1.    10, 9, 8, 7, 6,
  2.    9, 8, 7, 6, 5,
  3.    Compilation fails.
  4.    An exception is thrown at runtime.
 Discuss Question
Answer: Option C. -> Compilation fails.

The word "signed" is not a valid modifier keyword in the Java language. All number 

primitives in Java are signed. Hence the Compilation will fails.


Question 5.


What will be the output of the program?


public class TestDogs
{
public static void main(String [] args)
{
Dog [][] theDogs = new Dog[3][];
System.out.println(theDogs[2][0].toString());
}
}
class Dog { }
  1.    null
  2.    theDogs
  3.    Compilation fails
  4.    An exception is thrown at runtime
 Discuss Question
Answer: Option D. -> An exception is thrown at runtime

The second dimension of the array referenced by theDogs has not been 

initialized. Attempting to access an uninitialized object element (System.

out.println(theDogs[2][0].toString());) raises a NullPointerException.


Question 6.
public class F0091
{
public void main( String[] args )
{
System.out.println( "Hello" + args[0] );
}
}


What will be the output of the program, if this code is executed with the command line:



> java F0091 world


  1.    Hello
  2.    Hello Foo91
  3.    Hello world
  4.    The code does not run.
 Discuss Question
Answer: Option D. -> The code does not run.

Option D is correct. A runtime error will occur owning to the main method of the 

code fragment not being declared static:

Exception in thread "main" java.lang.NoSuchMethodError: main

The Java Language Specification clearly states: "The main method must be 

declared public, static, and void. It must accept a single argument that is an 

array of strings."


Question 7.


What will be the output of the program?


public class CommandArgs
{
public static void main(String [] args)
{
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
String s4 = args[4];
System.out.print(" args[2] = " + s2);
}
}


and the command-line invocation is



> java CommandArgs 1 2 3 4


  1.    args[2] = 2
  2.    args[2] = 3
  3.    args[2] = 2
  4.    An exception is thrown at runtime.
 Discuss Question
Answer: Option D. -> An exception is thrown at runtime.

An exception is thrown because in the code String s4 = args[4];, the array index 

(the fifth element) is out of bounds. The exception thrown is the cleverly named 

ArrayIndexOutOfBoundsException


Question 8.

Which is a valid declarations of a String?


  1.    String s1 = null;
  2.    String s2 = 'null';
  3.    String s3 = (String) 'abc';
  4.    String s4 = (String) 'ufeed';
 Discuss Question
Answer: Option A. -> String s1 = null;

Option A sets the String reference to null.

Option B is wrong because null cannot be in single quotes.

Option C is wrong because there are multiple characters between the 

single quotes ('abc').

Option D is wrong because you can't cast a char (primitive) to a String 

(object).


Question 9.

What is the numerical range of a char?


  1.    -128 to 127
  2.    -(`2^15`) to (`2^15`) - 1
  3.    0 to 32767
  4.    0 to 65535
 Discuss Question
Answer: Option D. -> 0 to 65535

A char is really a 16-bit integer behind the scenes, so it supports 216 (from 0 to 65535) values.
Question 10.


What will be the output of the program?


public class CommandArgsThree
{
public static void main(String [] args)
{
String [][] argCopy = new String[2][2];
int x;
argCopy[0] = args;
x = argCopy[0].length;
for (int y = 0; y < x; y++)
{
System.out.print(" " + argCopy[0][y]);
}
}
}


and the command-line invocation is



> java CommandArgsThree 1 2 3


  1.    0 0
  2.    1 2
  3.    0 0 0
  4.    1 2 3
 Discuss Question
Answer: Option D. -> 1 2 3

In argCopy[0] = args;, the reference variable argCopy[0], which was referring to 

an array with two elements, is reassigned to an array (args) with three elements.


Latest Videos

Latest Test Papers