 # CSCI A201/A597 and I210 Midterm Exam One

Spring Semester 2002

Directions:
• Please read the questions carefully and select the ONE ANSWER that is best, then mark the corresponding space on the answer sheet for each question.

• All correct answers are worth exactly one point. Leaving a question unanswered will count as a zero. There is no penalty for guessing. DO NOT MARK more than one answer for each question.

• Don't forget to write your name and student ID on the scannable answer sheet provided. You have two hours (120 minutes) to complete the test. The test is open-book.

Good luck and do well!

 1. What is the output produced by the following three lines (when embedded in a complete program)? ```int x, y; x = 2; y = 3; System.out.println(1 + "x" + y); ``` `123`   `33`   `13`   `15` `other` Note: To save space I wrote `other` where I would have put "None of the above."

The program prints `1x3` so the correct answer is `other`.

 2. What is the output produced by the following three lines (when embedded in a complete program)? ```int x, y; x = 3; y = 2; System.out.println("1" + (x + y)); ``` `132`   `33`   `13` `15`   `6`

 3. What is the output produced by the following two lines (when embedded in a complete program)? ```char a; a = 3 + 'B'; System.out.println(a); ``` `E`   `B`   `C`   `3`   `other`

 4. What is the output produced by the following program fragment (when embedded in a complete program)? Note that the indentation may or may not be right so please be careful. ```if ('C' < 'A' + 3) System.out.print(1 + 3 / 2); System.out.print(2);``` `2`   `1.52`   `12` `22`   `other`

 5. What is the type of this expression: `"1" + 'a'` `int`   `char`   `boolean`   `double` `other`

The type is `String` so the answer is `other`.

 6. What is the type of this expression: `1 == 3` `int`   `char` `boolean`   `double`   `other`

 7. What is the type of this expression: `1 / 2` `int`   `char`   `boolean`   `double`   `other`

 8. What is the type of this expression: `"abc".length()` `int`   `char`   `boolean`   `double`   `other`

 9. What is the type of this expression: `"abc".length() == 3` `int`   `char` `boolean`   `double`   `other`

 10. What is the type of this expression: `"appearance".substring(2, 6)` `int`   `char`   `boolean`   `double` `other`

The type is `String` so the correct answer is `other`.

 11. What is the type of this expression: `"abc".toUpperCase()` `int`   `char`   `boolean`   `double` `other`

The type is `String` so the correct answer is `other`.

 12. What is the output produced by the following three lines (when embedded in a complete program)? ```int a, b; a = 3; b = 5; System.out.println(b * (a / b) + a % b);``` `1`   `2` `3`   `6`   `other`

 13. What is the output produced by the following three lines (when embedded in a complete program)? ```int a, b; a = 3; b = 5; System.out.println(b * a / b + a % b);``` `1`   `2`   `3` `6`   `other`

 14. What is the output produced by the following code when embedded in a complete program? (Note that the program may or may not be indented correctly so think about it carefully.) ```int x = 3; if (2 > x) System.out.print("*"); else System.out.print("*"); if (x < 2) System.out.println("*"); System.out.print("*");``` `*` `**`   `***`   `****`   `other`

 15. What is the output produced by the following code when embedded in a complete program? (Note that the program may or may not be indented correctly so think about it carefully.) ```int x = 3; if (x > 5) { if (x < 10) System.out.print("**"); } else System.out.print("*"); System.out.print("*");``` `*` `**`   `***`   `****`   `other`

 16. What is the output produced by the following code when embedded in a complete program? (Note that the program may or may not be indented correctly so think about it carefully.) ```int x = 3; if (x < 5 || x > 10) System.out.print("*"); if (x < 5 && x > 10) System.out.print("*"); if (x < 10 && x > 5) System.out.print("*"); if (x < 10 && x > 5) System.out.print("*"); System.out.print("*");``` `*` `**`   `***`   `****`   `other`

 17. What is the output produced by the following code when embedded in a complete program? (Note that the program may or may not be indented correctly so think about it carefully.) ```int x = 3; if (x < 5 || x > 10) System.out.print("*"); else if (x < 5 && x > 10) System.out.print("*"); else if (x < 10 && x > 5) System.out.print("*"); else if (x < 10 && x > 5) System.out.print("*"); else System.out.print("*");``` `*`   `**`   `***`   `****`   `other`

 18. What is the output produced by the following code when embedded in a complete program? (Note that the program may or may not be indented correctly so think about it carefully.) ```if (2 <= 3 && 0 != 1) System.out.print("*"); else System.out.print("*"); System.out.print("*"); if (2 > 3 || 0 == 1) System.out.print("*"); else System.out.print("*"); System.out.print("*"); ``` `*`   `**`   `***` `****`   `other`

 19. What is the output produced by the following code when embedded in a complete program? ```boolean x = false; if (true) System.out.print(10); else System.out.print(1); x = x || !x; if (x) System.out.print(0); else System.out.print(00); ``` `10` `100`   `1000`   `10000`   `other`

 20. What is the output produced by the following code when embedded in a complete program? ```if (!false && false || true) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

 21. What is the output produced by the following code when embedded in a complete program? ```if (false && (!false || true)) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 22. What is the output produced by the following code when embedded in a complete program? ```if (false && (false || !true)) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 23. What is the output produced by the following code when embedded in a complete program? ```if (false && !(false || true)) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 24. What is the output produced by the following code when embedded in a complete program? ```if (!false && (!false || !true)) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

 25. What is the output produced by the following code when embedded in a complete program? ```if (!false && !false || !true) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

 26. What is the output produced by the following code when embedded in a complete program? ```if (!(false && false || true)) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 27. What is the output produced by the following code when embedded in a complete program? ```if (!true) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 28. What is the output produced by the following code when embedded in a complete program? ```if (false) { System.out.print(false); } else { System.out.print(true); }``` `true`   `false`

 29. What is the output produced by the following code when embedded in a complete program? ```if ((2 > 3) == false) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

 30. What is the output produced by the following code when embedded in a complete program? ```if (! (2 > 3)) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

 31. What is the output produced by the following code when embedded in a complete program? ```if (2 <= 3) { System.out.print(false); } else { System.out.print(true); }``` `true` `false`

32. Are these two code fragments equivalent (do they always change `x` in the exact same way)?

Fragment 1 Fragment 2
```if (x == 8)
x = x + 3;
else
x = 5;```
```if (x == 8)
x = x + 3;
if (x != 8)
x = 5;```

1.   `Yes.`
2. `No.`

They are almost equivalent. The only value of `x` for which they don't behave the same is `8` (eight). For the following 5 (five) exercises consider the following method definitions:

```public static int f(int x) {
return x + 1;
}
public static int g(int x) { return x + 2; }
public static int h(int x) { return x - 2; }
public static int k(int x) { return x - 1; }``` Here's how you find the answer to 33-37:

```frilled.cs.indiana.edu%cat One.java
class One {
public static void main(String[] args) {

System.out.println( g(2) );
System.out.println( g(h(2)) );
System.out.println( k(g(2) + h(2)) );
System.out.println( f(0) + f(1) + f(2) );
System.out.println( f(2) );

}

public static int f(int x) {
return x + 1;
}
public static int g(int x) { return x + 2; }
public static int h(int x) { return x - 2; }
public static int k(int x) { return x - 1; }

}
frilled.cs.indiana.edu%javac One.java
frilled.cs.indiana.edu%java One
4
2
3
6
3
frilled.cs.indiana.edu%```

 33. What does `g(2)` evaluate to? 0    1    2    3 `other`

 34. What does `g(h(2))` evaluate to? 0    1 2    3   `other`

 35. What does `k(g(2) + h(2))` evaluate to? 0    1    2 3   `other`

 36. What does `f(0) + f(1) + f(2)` evaluate to? 0    1    2    3 `other`

 37. What does `f(2)` evaluate to? 0    1    2 3   `other`

 38. `"true"` is an example of what kind of constant? `int`   `char`   `boolean` `String`   `other`

 39. `true` is an example of what kind of constant? `int`   `char` `boolean`   `String`   `other`

 40. Assume that `x` is an integer variable. Simplify the following expression: `!((x >= 4) && (x <= 4))` `true`   `false` `x != 4`   `x == 4`   `other`

Warning: Don't overlook the logical negation (bang!) at the front.

 41. How many instance methods do you see defined below? ```class One { int balance; int f() { return 1; } static int g() { return 2; } One(int x) { this.balance = x; } public static void main(String[] args) { } } ``` 0 1    2    3   `other`

 42. How many static methods do you see defined below? ```class One { int balance; int f() { return 1; } static int g() { return 2; } One(int x) { this.balance = x; } public static void main(String[] args) { } } ``` 0    1 2    3   `other`

 43. How many instance variables do you see defined below? ```class One { int n; int m; int fun(int p) { int q = p + 1; return q; } } ``` 0    1 2    3   `other`

 44. How many instance variables do you see defined below? ```class One { static int n; int m; int fun(int p) { int q = p + 1; return q; } } ``` 0 1    2    3   `other`

 45. How many instance variables do you see defined below? ```class One { static int n; int fun(int p) { int m; int q = p + 1; return q; } } ``` 0    1    2    3   `other`

 46. How many local variables do you see defined below? ```class One { static int n; int fun(int p) { int m; int q = p + 1; return q; } } ``` 0    1 2    3   `other`

 47. You compile and run this program. What is the output (or outcome)? ```class Wan { int value; int addOne() { value += 1; return 0; } void report() { System.out.println(value); } public static void main(String[] args) { Wan a = new Wan(); Wan b = new Wan(); a.addOne(); b.addOne(); b.addOne(); a.addOne(); a.report(); } } ``` 0    1 2    3   `other`

The focus of this exercise and the next was the difference between `static` and non-`static` variables.

 48. You compile and run this program. What is the output (or outcome)? ```class Wan { static int value; int addOne() { value += 1; return 0; } void report() { System.out.println(value); } public static void main(String[] args) { Wan a = new Wan(); Wan b = new Wan(); a.addOne(); b.addOne(); b.addOne(); a.addOne(); a.report(); } } ``` 0    1    2    3 `other`

This one prints a `4` (four) so the answer is `other`.

 49. Which of the following expressions does NOT print a `4` (four)? `System.out.println('P' - 'K');` `System.out.println(3 % 5 + 1);` `System.out.println("123".length() + 1);` `System.out.println((char)('3' + 1));` `System.out.println(16 / (1 + 1) / 2);` Note: There are no typos!

 50. What's the output produced by the following lines (when embedded in a complete program)? ```String a = "blue"; String b = "berry"; System.out.println( "blueberry".substring(a.length(), b.length()));``` `b`   `l`   `u`   `e`   `other`

 51. What gets printed when you compile and run the following program? ```public class A { public static void main(String[] args) { System.out.println(nuf(fun(3, 2), 1)); } public static int fun(int a, int b) { return a - b; } public static int nuf(int b, int a) { return a - b; } }``` `0`   `1`   `2`   `3`   `other` There are no typos, so please don't rush!

 52. What is the result of attempting to compile and run the following code? ```class Example { public static void main(String[] args) { Example e = new Example(); System.out.println(e.fun(e.fun())); } int fun() { return 1; } int fun(int n) { return 1 + n; } } ``` `0`   `1` `2`   `3`   `other`

`A201/A597/I210 Midterm Exam Wed Feb 13 2002 in RH100`