Followers

Sunday, 5 August 2012

Programming Questions&Answers


Question 1

class JMM102 {
  public static void main(String args[]) {
    for (int i = 0; i<5 ;i++) {
      switch(i) {
        case 0: System.out.print("v ");break;
        case 1: System.out.print("w ");
        case 2: System.out.print("x ");break;
        case 3: System.out.print("y ");
        case 4: System.out.print("z ");break;
        default: System.out.print("d ");
}}}}
What is the result of attempting to compile and run the program?
a.   Prints: v w x y z
b.  Prints: v w x y z d
c.   Prints: v w x x y z z
d.  Prints: v w w x y y z d
e.   Prints: d d d d d d
f.   Run-time error
g.  Compile-time error
h.  None of the above

Question 2

class JMM103 {
  public static void main(String args[]) {
    for (int i = 0; i < 5 ;i++) {
      switch(i) {
        0: System.out.print("v ");break;
        1: System.out.print("w ");
        2: System.out.print("x ");break;
        3: System.out.print("y ");
        4: System.out.print("z ");break;
}}}}
What is the result of attempting to compile and run the program?
a.   Prints: v w x y z
b.  Prints: v w x x y z z
c.   Prints: v w w x y y z
d.  Run-time error.
e.   Compile-time error.
f.   None of the above.

Question 3

class JMM107 {
  public static void main(String[] args) {
    boolean b = true;
    if (b = false) {System.out.print("A");
    } else if (b) {System.out.print("B");
    } else {System.out.print("C");}
}}
What is the result of attempting to compile and run the program?
a.   Prints: A
b.  Prints: B
c.   Prints: C
d.  Run-time error
e.   Compile-time error
f.   None of the above

Question 4

class JMM108 {
  static boolean b;
  public static void main(String[] args) {
    if (b) {System.out.print("A");
    } else if (b = false) {System.out.print("B");
    } else if (b) {System.out.print("C");
    } else if (!b) {System.out.print("D");
    } else {System.out.print("E");}
}}
What is the result of attempting to compile and run the program?
a.   Prints: A
b.  Prints: B
c.   Prints: C
d.  Prints: D
e.   Prints: E
f.   Run-time error
g.  Compile-time error
h.  None of the above

Question 5

class JMM109 {
  public static void main(String[] args) {
    boolean b;
    if (b = false) {System.out.print("A");
    } else if (b) {System.out.print("B");
    } else if (!b) {System.out.print("C");
    } else {System.out.print("D");}
}}
What is the result of attempting to compile and run the program?
a.   Prints: A
b.  Prints: B
c.   Prints: C
d.  Prints: D
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 6

class JMM122 {
  public static void main (String[] args) {
    for (int i = 0; i < 4; i++) {
      switch (i) {
        case 0: System.out.print("A");
        case 1: System.out.print("B");
        case 2: System.out.print("C");
}}}}
What is the result of attempting to compile and run the program?
a.   Prints: ABC
b.  Prints: ABCC
c.   Prints: CBA
d.  Prints: ABCBCC
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 7

class JMM123 {
  public static void main (String args[]) {
    int i = 0, j = 0, k = 0;
label1:
    for (int h = 0; h < 6; h++) {
label2:
      do { i++; k = h + i + j;
        switch (k) {
          default: break label1;
          case 1: continue label2;
          case 2: break;
          case 3: break label2;
          case 4: continue label2;
          case 5: continue label1;
        }
      } while (++j<5);
    }
    System.out.println(h + "," + i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0,1,0
b.  Prints: 0,2,1
c.   Prints: 1,3,1
d.  Prints: 2,4,1
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 8

class JMM103 {
  public static void main(String args[]) {
    byte b = -1;
    switch(b) {
      case 0:    System.out.print("zero "); break;
      case 100:  System.out.print("100 ");  break;
      case 1000: System.out.print("1000 "); break;
      default: System.out.print("Default ");
}}}
What is the result of attempting to compile and run the program?
a.   Prints: zero
b.  Prints: 100
c.   Prints: 1000
d.  Prints: Default
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 9

class JMM104 {
  public static void main (String args[]) {
    char c = 'b';
    switch(c) {
      case 'a': System.out.print("1");
      case 'b': System.out.print("2");
      case 'c': System.out.print("3");
      default:  System.out.print("4");
}}}
What is the result of attempting to compile and run the program?
a.   Prints: 3
b.  Prints: 34
c.   Prints: 234
d.  Prints: 1234
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 10

class JMM105 {
  public static void main(String args[]) {
    int x = 6; int success = 0;
    do  {
      switch(x) {
        case 0: System.out.print("0"); x += 5; break;
        case 1: System.out.print("1"); x += 3; break;
        case 2: System.out.print("2"); x += 1; break;
        case 3: System.out.print("3"); success++; break;
        case 4: System.out.print("4"); x -= 1; break;
        case 5: System.out.print("5"); x -= 4; break;
        case 6: System.out.print("6"); x -= 5; break;
      }
    } while ((x != 3) || (success < 2));
}}
What is the result of attempting to compile and run the program?
a.   Prints: 60514233
b.  Prints: 6152433
c.   Prints: 61433
d.  Prints: 6143
e.   Run-time error
f.   Compile-time error

Question 11

class JMM106 {
  public static void main(String args[]) {
    int x = -5; int success = 0;
    do  {
      switch(x) {
        case 0: System.out.print("0"); x += 5; break;
        case 1: System.out.print("1"); x += 3; break;
        case 2: System.out.print("2"); x += 1; break;
        case 3: System.out.print("3"); success++; break;
        case 4: System.out.print("4"); x -= 1; break;
        case 5: System.out.print("5"); x -= 4; break;
        case 6: System.out.print("6"); x -= 5; break;
        default: x += x < 0 ? 2 : -2;
      }
    } while ((x != 3) || (success < 2));
}}
What is the result of attempting to compile and run the program?
a.   Prints: 60514233
b.  Prints: 1433
c.   Prints: 61433
d.  Prints: 051433
e.   Run-time error
f.   Compile-time error

Question 12

class JMM124 {
  public static void main(String args[]) {
    int k;
    for (int i=0, j=0; i<2; i++,j++) {System.out.print(i);}     // 1
    for (int i=0, k=0; i<2; i++,k++) {System.out.print(i);}     // 2
    for (int i=0, int j=0; i<2; i++,j++) {System.out.print(i);} // 3
}}
What is the result of attempting to compile and run the program?
a.   Prints: 012345
b.  Prints: 010101
c.   Compile-time error at line 1
d.  Compile-time error at line 2
e.   Compile-time error at line 3
f.   Run-time error

Question 13

class JMM125 {
  static int i;
  public static void main(String args[]) {
    for (i=1; i<3; i++) {System.out.print(i);}     // 1
    for (int i=1; i<3; i++) {System.out.print(i);} // 2
    int i;                                         // 3
    for (i=0; i<2; i++) {System.out.print(i);}     // 4
    System.out.print(JMM125.i);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 1212010
b.  Prints: 1212013
c.   Compile-time error at line 1
d.  Compile-time error at line 2
e.   Compile-time error at line 4
f.   Run-time error
g.  None of the above

 

Question 14

class JMM126 {
  static int i;
  public static void main(String args[]) {
    for (i=1; i<3; i++)     {System.out.print(i);} // 1
    for (int i=1; i<3; i++) {System.out.print(i);} // 2
    int i;                                         // 3
    for (int i=0; i<2; i++) {System.out.print(i);} // 4
    System.out.print(JMM126.i);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 1212010
b.  Prints: 1212013
c.   Compile-time error at line 1
d.  Compile-time error at line 2
e.   Compile-time error at line 4
f.   Run-time error
g.  None of the above

Question 15

 
class JMM101 {
  public static void main(String[] args) {
    int i = 0;
    while (i++ < args.length) {
      System.out.print(args[i]);
}}}
java JMM101 A B C D E F
What is the result of attempting to compile and run the program using the specified command line?
a.   Prints: JMM101ABCDEF
b.  Prints: ABCDEF
c.   Compile-time error
d.  Run-time error
e.   None of the above

 

Question 16

class JMM110 {
  public static void main (String[] args) {
    int j = 0;
    do for (int i = 0; i++ < 2;)
      System.out.print(i);
    while (j++ < 2);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0001
b.  Prints: 012
c.   Prints: 012012
d.  Prints: 012345
e.   Prints: 001122
f.   Prints: 1112
g.  Prints: 111222
h.  Prints: 121212
i.   Run-time error
j.   Compile-time error
k.  None of the above

Question 17

class JMM111 {
  public static void main (String[] args) {
    int j = 0;
    for (int i = 0; i < 2; i++) do
      System.out.print(i);
    while (j++ < 2);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0001
b.  Prints: 012
c.   Prints: 012012
d.  Prints: 012345
e.   Prints: 001122
f.   Prints: 1112
g.  Prints: 111222
h.  Prints: 121212
i.   Run-time error
j.   Compile-time error
k.  None of the above

Question 18

class JMM112 {
  public static void main (String[] args) {
    int j = 0;
    for (int i = 0; i++ < 2;) do
      System.out.print(i);
    while (j++ < 2);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0001
b.  Prints: 012
c.   Prints: 012012
d.  Prints: 012345
e.   Prints: 001122
f.   Prints: 1112
g.  Prints: 111222
h.  Prints: 121212
i.   Run-time error
j.   Compile-time error
k.  None of the above

Question 19

class JMM113 {
  public static void main (String[] args) {
    int i = 0, j = 0, k = 0;
    do while (i++ < 3)
      System.out.print(k++);
    while (j++ < 3);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0001
b.  Prints: 012
c.   Prints: 012012
d.  Prints: 012345
e.   Prints: 001122
f.   Prints: 1112
g.  Prints: 111222
h.  Prints: 121212
i.   Run-time error
j.   Compile-time error
k.  None of the above

Question 20

class JMM114 {
  public static void main (String[] args) {
    int i = 0, j = 0;
    while (i++ < 3) do
      System.out.print(j);
    while (j++ < 3);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 0001
b.  Prints: 001122
c.   Prints: 012012
d.  Prints: 012345
e.   Prints: 1112
f.   Prints: 111222
g.  Prints: 121212
h.  Run-time error
i.   Compile-time error
j.   None of the above

Question 21

class JMM115 {
  static int m1(String s, int i) {
    System.out.print(s + i);
    return i;
  }
  public static void main (String[] args) {
    int i = 0, j = 0, k = 0;
    do while (m1("i", ++i) < 2)
      System.out.print("k" + ++k);
    while (m1("j", ++j) < 2);
}}
What is the result of attempting to compile and run the program?
a.   Prints: i1k1i2k2j1i3j2
b.  Prints: i1k1i2k2j1i1k1i2k2j2
c.   Prints: i1k1i2j1i3j2
d.  Run-time error
e.   Compile-time error
f.   None of the above

Question 22

class JMM116 {
  static int m1(String s, int i) {
    System.out.print(s + i);
    return i;
  }
  public static void main (String[] args) {
    int j = 0;
    for (int i = m1("A",0); m1("B",i) < 2; m1("C",++i)) {
      m1("J",++j);
    }
}}
What is the result of attempting to compile and run the program?
a.   Prints: A0B0C1J1B1C2J2B2
b.  Prints: A0B0J1C1B1J2C2B2
c.   Prints: A0B0J1C1A1B1J2C2A2B2
d.  Run-time error
e.   Compile-time error
f.   None of the above

Question 23

class JMM117 {
  public static void main (String[] args) {
    int i = 0, j = 9;
    do {
      i++;
      if (j-- < i++) {break;}
    } while (i < 5);
    System.out.print(i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 5,4
b.  Prints: 6,3
c.   Prints: 6,6
d.  Prints: 7,2
e.   Run-time error
f.   Compile-time error
g.  None of the above

Question 24

class JMM118 {
  public static void main (String[] args) {
    int i = 0, j = 9;
    while (i++ <= j--) {i++; if (j < 5) break;}
    System.out.print(i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 4,7
b.  Prints: 6,6
c.   Prints: 7,2
d.  Prints: 8,5
e.   Prints: 9,4
f.   Run-time error
g.  Compile-time error
h.  None of the above

Question 25

class JMM119 {
  public static void main (String[] args) {
    int i = 0, j = 9;
    do {
      if (j < 4) {break;} else if (j-- < 7) {continue;}
      i++;
    } while (i++ < 7);
    System.out.print(i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 4,7
b.  Prints: 6,6
c.   Prints: 6,5
d.  Prints: 6,4
e.   Prints: 7,5
f.   Prints: 8,4
g.  Run-time error
h.  Compile-time error
i.   None of the above

Question 26

class JMM120 {
  public static void main (String args[]) {
    int i = 0, j = 0, k = 0;
label1:
    for (;;) { i++;
label2:
      do {
        k = i + j;
        switch (k) {
          case 0: continue label2;
          case 1: continue label1;
          case 2: break;
          case 3: break label2;
          case 4: break label1;
          default: break label1;
        }
      } while (++j<5);
    }
    System.out.println(i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 2,1
b.  Prints: 2,2
c.   Prints: 3,1
d.  Prints: 3,2
e.   Prints: 3,3
f.   Run-time error
g.  Compile-time error
h.  None of the above

Question 27

class JMM121 {
  public static void main (String args[]) {
    int h = 0, i = 0, j = 0, k = 0;
label1:
    for (;;) { h++;
label2:
      do { i++; k = h + i + j;
        switch (k) {
          default: break label1;
          case 1: continue label1;
          case 2: break;
          case 3: break label2;
          case 4: continue label2;
          case 5: continue label1;
        }
      } while (++j < 5);
    }
    System.out.println(h + "," + i + "," + j);
}}
What is the result of attempting to compile and run the program?
a.   Prints: 1,2,3
b.  Prints: 1,3,2
c.   Prints: 2,2,2
d.  Prints: 2,4,1
e.   Prints: 2,4,2
f.   Run-time error
g.  Compile-time error
h.  None of the above



Answers



No.
Answer
Remark
1
Prints: v w x x y z z 
Cases one and three have no break statement, so the next case is also executed and x and z are printed twice.  
2
Compile-time error. 
The keyword, case, is missing from the case labels.  
3
Prints: C 
The boolean type variable, b, is initialized to true. The boolean expression of the first if statement, b = false, is a simple assignment expression that sets b to false. Always look carefully at the boolean expression of an if statement to verify that the expected equality operator (==) has not been replaced by the simple assignment operator (=).  
4
Prints: D 
The expression, b = false, appears to be testing the value of b, but it is really setting the value of b. Always look carefully at the boolean expression of an if statement to verify that the expected equality operator (==) has not been replaced by the simple assignment operator (=).  
5
Prints: C 
The first if statement initializes the value of b. The expression, b = false, appears to be testing the value of b, but it is really setting the value of b. Always look carefully at the boolean expression of an if statement to verify that the expected equality operator (==) has not been replaced by the simple assignment operator (=).  
6
Prints: ABCBCC 
The switch statement does not contain any break statements. The first case falls through to the second. The second case falls through to the third. There is no default switch label, so nothing is printed when variable i is 3.  
7
Compile-time error 
The loop variable, h, is local to the for statement. The print statement causes a compile-time error, because it refers to the out-of-scope local variable, h. Always check for variables that are out-of-scope!  
8
Compile-time error 
The case constant expression, 1000, produces a compile-time error, because it exceeds the range of the switch expression type, byte. The type of a switch expression can be byte, short, int or char. A constant expression is associated with each case label. Each case constant expression must be assignable to the type of the switch expression. In this case, the switch expression, b, is of type byte; so the maximum positive value of each case constant expression is limited to the maximum byte value, 127.  
9
Prints: 234 
No break statements appear inside the switch statement, so more than one case is processed.  
10
Prints: 61433 
On the first pass through the loop, the value of x is 6, so 5 is subtracted from x. On the second pass, the value of x is 1, so 3 is added to x. On the third pass, the value of x is 4, so 1 is subtracted from x. On the fourth pass, the value of x is 3, so the variable, success, is incremented from zero to one. On the final pass, the value of x is 3 and the variable, success, is incremented to the value, 2. The boolean expression of the do loop is now false, so control passes out of the loop.  
11
Prints: 1433 
On the first pass through the loop, the switch expression, x, has the value, -5. None of the case constants are matched, so the statement following the default label is executed causing the value of x to be set to -3. On the second pass, the default case of the switch statement is executed again, and two is again added to the value of x. The new value is -1. On the third pass, the value of x is again incremented, and the new value is +1. After that, the value of x is printed on each pass through the loop. For the last two passes, the value of x is 3.  
12
d  e 
Compile-time error at line 2  Compile-time error at line 3 
A compile-time error occurs at line 2 as a result of the attempt to shadow the method local variable, k, within the for-loop. A variable declared within the for-loop can not shadow a local variable of the enclosing method. At line 3, the declaration of variable j causes a compile-time error. The initialization part of a for statement may use a single local variable declaration statement to declare more than one local variable. Each of the new variables is declared in a comma separated list of variable declarators. In this program, the local variables should have been declared as follows: "int i=0, j=0;". Instead, the type of variable j has been incorrectly added to the declarator: "int i=0, int j=0;". The result is a compile-time error.  
13
Prints: 1212013 
A method local variable, i, is declared at line 3. At line 4, the initialization part of the for statement initializes the method local variable to the value zero. The for statement does not declare a new variable, i, so the method local variable is not shadowed within the loop. Suppose a local variable, v, is declared within a statement or block. Variable, v, can shadow a class variable or an instance variable of the same name, but a compile-time error is generated if v shadows a method local variable. Please note that a compile-time error is not generated if a local variable is shadowed within the declaration of a class that is nested within the scope of the local variable.  
14
Compile-time error at line 4 
A method local variable, i, is declared at line 3. At line 4, the initialization part of the for statement attempts to shadow the method local variable with a new variable that is intended to be local to the for statement. The result is a compile-time error. At line 2, a new variable, i, is declared within the for statement. That variable shadows the class variable, but it does not shadow the method local variable declared at line 3. The scope of a method local variable begins with its own initializer--if present--and extends to the end of the method body. At line 2, the method local variable is not in scope, so shadowing does not occur. Suppose a local variable, v, is declared within a statement or block. Variable, v, can shadow a class variable or an instance variable of the same name, but a compile-time error is generated if v shadows a method local variable. Please note that a compile-time error is not generated if a local variable is shadowed within the declaration of a class that is nested within the scope of the local variable.  
15
Run-time error 
The index, i, is incremented before the array access expression is evaluated, so the first element accessed is at index one instead of zero. The arguments, BCDEF, are printed before an ArrayIndexOutOfBoundsException is thrown when the attempt is made to access an element beyond the end of the array.  
16
Prints: 121212 
This trick question has a for loop nested inside of a do loop. For each iteration, the values of i and j are as follows: (1,0)(2,0)(1,1)(2,1)(1,2)(2,2).  
17
Prints: 0001 
This trick question has a do-loop nested inside of a for-loop. For each iteration, the values of i and j are as follows: (0,0)(0,1)(0,2)(1,3).  
18
Prints: 1112 
This trick question has a do-loop nested inside of a for-loop. For each iteration, the values of i and j are as follows: (1,0)(1,1)(1,2)(2,3).  
19
Prints: 012 
This trick question has a while-loop nested inside of a do-loop. For each iteration, the values of i, j and k are as follows: (1,0,0)(2,0,1)(3,0,2).  
20
Prints: 012345 
This trick question has a do-loop nested inside of a while-loop. For each iteration, the values of i and j are as follows: (1,0)(1,1)(1,2)(1,3)(2,4)(3,5).  
21
Prints: i1k1i2j1i3j2 
A while loop is nested inside of a do loop. The while loop iterates once during the first iteration of the do loop. The body of the while loop does not execute during the final iteration of the do loop.  
22
Prints: A0B0J1C1B1J2C2B2 
The initialization statement, labeled A, is processed first. The boolean expression, labeled B, is processed before each iteration of the loop. The body of the loop is processed next followed by the update expression, labeled C.  
23
Prints: 6,6 
Suppose the print statement, System.out.print("(" + i + "," + j + ")");, is inserted at the top of the loop. The output of the program would be as follows: (0,9)(2,8)(4,7)6,6. The variable, i, is incremented twice with each pass through the loop. The variable, j, is decremented once with each pass. The loop terminates when i reaches six.  
24
Prints: 9,4 
Suppose the print statement, System.out.print("(" + i + "," + j + ")");, is inserted at the top of the loop. The output of the program would be as follows: (1,8)(3,7)(5,6)(7,5)9,4. The variable, i, is incremented twice with each pass through the loop. The variable, j, is decremented once with each pass. The boolean expression of the while loop, i++ <= j--, is false when i reaches 8 and j reaches 5. The value of i is subsequently incremented and j is decremented yielding 9 and 4 respectively. Those values are printed.  
25
Prints: 8,4 
Suppose the print statement, System.out.print("(" + i + "," + j + ")");, is inserted at the top of the loop. The output of the program would be as follows: (0,9)(2,8)(4,7)(6,6)(7,5)8,4. The initial value of j is 9. With each pass through the loop, the expression, j-- < 7, decrements j. The initial value of variable i is 0. With each pass through the loop, the expression, i++ < 7, increments variable i. Inside the body of the loop, i is also incremented as long as j is greater than or equal to 7. When j is less than seven, variable i is no longer incremented inside the body of the loop, but it is still incremented by the expression, i++ < 7.  
26
Prints: 3,1 
Suppose the print statement, System.out.print("("+i+","+j+","+k+")");, is inserted before the switch statement. The output of the program would be as follows: (1,0,1)(2,0,2)(2,1,3)(3,1,4)3,1. On the first iteration, case 1 is processed. The "continue label1;" statement causes control to go directly to the top of the for-loop following the label, label1. The boolean expression of the do-loop is not processed. On the second iteration, case 2 is processed. The break statement causes the switch statement to complete, and control passes to the boolean expression of the do-loop. On the third iteration, case 3 is processed. The break with label statement, "break label2;", completes abruptly; and the do-loop completes abruptly without processing the loop expression, ++j<5, so j is not incremented. On the fourth iteration, case 4 is processed. The break with label statement, "break label1;", completes abruptly, and the for-loop completes abruptly.  
27
Prints: 1,3,2 
Suppose the print statement, System.out.print("("+h+","+i+","+j+","+k+")");, is inserted before the switch statement. The output of the program would be as follows: (1,1,0,2)(1,2,1,4)(1,3,2,6)1,3,2. Three iterations of the loop are executed. On the first iteration, the switch expression, k, matches the case constant, 2. The subsequent break statement is executed and the switch statement completes normally. On the second iteration, the switch expression matches the case constant, 4; and the subsequent continue statement causes control to pass to the loop-continuation point of the do statement where the expression, ++j < 5, is evaluated and found to be true. On the final iteration, the switch expression does not match any case constant; so the break statement following the default label is processed.  




No comments:

Post a Comment