A
Java Course Outline
Using the Java By Dissection
book
by Ira
Pohl and
Charlie McDowell
Final Exam Sample
//What gets printed?
class Parray1 {
public static void main(String[] args) { int n = 20; boolean[] sieve = new boolean[n]; int i; for(i = 0; i < sieve.length; ++i) //initialize sieve[i] = true; for(int j = 2; j < 6; ++j) if (sieve[j]) crossOut(sieve, j, j + j); for(i = 0; i < sieve.length; ++i) if (sieve[i]) System.out.print(" " + i); System.out.println("\n\n____________________________________________ "); } public static void crossOut(boolean[] s, int interval, int start) { int i; for(i = start; i < s.length; i += interval) s[i] = false; } }
//What gets printed? class Parray2 { public static void main(String[] args) { int[] data = {1,3,5,8,11,15}; int sum = 0; for(int i = 1; i < data.length; ++i) { sum = sum + data[i] - data[i-1]; System.out.println("sum = " + sum); } } }
//What gets printed? class Parray3 { static int sumIf (int[] a, boolean[] b) { int sum = 0; for (int i = 0; i < a.length; ++i) if(b[i]) sum = sum + a[i]; return sum; } public static void main(String[] args) { int[] data = {1, 2, 3, 4, 5, 6, 7}; boolean[] filter = {true, false, true, true, false, true, true}; System.out.println("data:" + sumIf(data, filter)); for(int i = 0; i < filter.length; ++i) filter[i] = !filter[i]; System.out.println("data:" + sumIf(data, filter)); } }
//What gets printed? //Pair as an object class Pair { int first = 0, second = 0; public Pair(){ first = second = 0;} public Pair(int f, int s){ first = f; second = s;} int getFirst() { return first;} int getSecond() { return second;} void setFirst(int f) { first = f;} void setSecond(int s) { second = s;} void printPair() { System.out.println("Pair: " + first + ", " + second);} } public class PairTest{ public static void main(String[] args) { int i = 5; Pair c1 = new Pair(); Pair c2 = new Pair(2, 3); c1.printPair(); c1.setSecond(i); c1.printPair(); c2.printPair(); c2.setFirst(i * 3); c2.printPair(); System.out.println(c1.getFirst()); } }
//What gets printed class Fcn { static int M = 1; static int foo(int a) { return (a + 1); } static int goo(int x) { return foo(x + 1) * x; } static void hoo(int[] x, int i) { int temp = x[i]; x[i] = x[i + 1]; x[i + 1] = temp; } public static void main(String[] args) { int i = 2; int[] a = {1, 2, 3}; System.out.println("foo =" + foo(i)); System.out.println("foo =" + foo(i + M)); System.out.println("goo =" + goo(i + M)); hoo(a, 0); hoo(a, 1); for(i = 0; i < a.length; ++i) System.out.println(i + " : " + a[i]); } }