Key to CSE142 Midterm, Spring 2017 handout
#13
1. Expression
Value
-----------------------------------------------
2 *
6 - (1 + 3) * 2 - 4 * 3
-8
5 %
(2 % 6) + 132 % 10 + 4 % 7
7
408
/ 40 / 3 - 3 / 2.0 + 0.3 * 2
2.1
1 +
1 + "4 - 2" + 3 * 2 + 8 / 2 "24 -
264"
11 /
2 * 4.0 - 2.5 * 2 / 0.5 + 0.25 10.25
2. Parameter Mystery. The program produces the following
output.
dna: sit yah be riri
fu: sit yah be kenny
yahyah: sit riri
be down
humble: sit kenny be fu
3. Method Call
Output Produced
---------------------------------------
ifElseMystery(12, 12); 13 15
ifElseMystery(4, 5); 5 4
ifElseMystery(11, 5); 11 8
ifElseMystery(2, 13); 1 14
ifElseMystery(3, 20); 1 21
ifElseMystery(7, 7); 8 10
4. Method Call
Output Produced
---------------------------------------
mystery(4, 4);
1 1
mystery(202, 201);
3 2
mystery(934, 8344);
3 1
mystery(1083, 81);
2 1
5.
y <= 0
x % 2 == 0
z == 0
+---------------------+---------------------+---------------------+
Point A | sometimes | sometimes | always
|
+---------------------+---------------------+---------------------+
Point B | never
|
sometimes
|
sometimes |
+---------------------+---------------------+---------------------+
Point C | never
|
never
|
never
|
+---------------------+---------------------+---------------------+
Point D | sometimes |
always | sometimes |
+---------------------+---------------------+---------------------+
Point E | always
|
sometimes
|
sometimes |
+---------------------+---------------------+---------------------+
6. One possible solution appears below.
public static void generateGrades(Random
r, int num) {
int grade = r.nextInt(21);
int sum = grade;
int min = grade;
System.out.print("grades:
" + grade);
for (int i
= 2; i <= num; i++) {
grade = r.nextInt(21);
System.out.print(", " + grade);
if (grade < min) {
min = grade;
}
sum += grade;
}
System.out.println();
System.out.println("min grade: " + min);
System.out.println("total points: " + sum);
System.out.println("average grade: " + (double) sum / num);
}
7. One possible solution appears below.
public static boolean testFairCoin(Scanner console) {
int heads = 0;
int count = 0;
System.out.print("next
flip? ");
int userInput
= console.nextInt();
while (userInput != 0) {
if (userInput == 1) {
heads++;
}
count++;
System.out.print("next flip? ");
userInput = console.nextInt();
}
double percent = heads * 100.0 / count;
System.out.println("was heads " + percent + "% of the
time");
return percent >= 45.0 && percent <= 55.0;
}
8. One possible solution appears below.
public static String findMatching(String
s1, String s2) {
String result = "";
for (int i
= 0; i < Math.min(s1.length(),
s2.length()); i++) {
if (s1.charAt(i) ==
s2.charAt(i)) {
result += s1.charAt(i);
} else {
result += ".";
}
}
int rest = Math.abs(s1.length()
- s2.length());
for (int i
= 0; i < rest; i++) {
result += ".";
}
return result;
}