Key to CSE142A Midterm, Winter 2013 handout #15
1. Expression Value
-----------------------------------------------
3 * 4 + 5 * 6 42
23 % 5 + - 17 % (16 % 10) -2 or 4
"1" + 2 + 3 * 4 + (5 + 6) "121211"
1.5 * 2 + 20 / 3 / 4.0 + 6 / 4 5.5
345 / 10 / 3 + 10 / (5 / 2.0) 15.0
2. Parameter Mystery. The program produces the following output.
foo wants buzz to sue.
bill wants sue to buzz.
bill wants sue to hope.
hope wants bill to sue.
3. Method Call Output Produced
---------------------------------------
ifElseMystery(1, 8); 3 8
ifElseMystery(3, 5); 5 0
ifElseMystery(4, 5); 5 6
ifElseMystery(8, 6); 8 2
4. Method Call Value Returned
--------------------------------------
mystery(3) 2
mystery(4) 3
mystery(5) 5
mystery(6) 8
5. y > x z < 0 z > 0
+---------------------+---------------------+---------------------+
Point A | sometimes | never | never |
+---------------------+---------------------+---------------------+
Point B | never | never | sometimes |
+---------------------+---------------------+---------------------+
Point C | sometimes | never | always |
+---------------------+---------------------+---------------------+
Point D | always | never | sometimes |
+---------------------+---------------------+---------------------+
Point E | always | sometimes | sometimes |
+---------------------+---------------------+---------------------+
6. One possible solution appears below.
public static void printMultiples(int n, int times) {
System.out.print("The first " + times + " multiples of " + n
+ " are " + + n);
for (int i = 2; i <= times; i++) {
System.out.print(", " + i * n);
}
System.out.println();
}
7. One possible solution appears below.
public static int digitRange(int n) {
int min = n % 10;
int max = n % 10;
while (n > 0) {
int digit = n % 10;
n = n / 10;
if (digit < min) {
min = digit;
}
if (digit > max) {
max = digit;
}
}
return max - min;
}
8. Two possible solutions appear below.
public static String undouble(String s) {
String result = "";
if (s.length() > 0) {
char last = s.charAt(0);
result += last;
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) != last) {
result += s.charAt(i);
}
last = s.charAt(i);
}
}
return result;
}
public static String undouble(String s) {
String result = "";
if (s.length() > 0) {
result = s.substring(0, 1);
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i) != s.charAt(i - 1)) {
result += s.charAt(i);
}
}
}
return result;
}
Stuart Reges
Last modified: Fri Sep 16 16:16:07 PDT 2011