Chapter 1: "Java Foundamentals" Data Structures with Java, Rick Mercer Answers to Self-Check Questions 1-1 - either "valid" or explanation of why not "valid" -a- valid -b- identifier cannot begin with a number -c- valid -d- identifier cannot contain a period (dot) -e- cannot contain a space -f- valid -g- cannot contain '(' or ')' -h- valid -i- cannot contain periods (dots) -j- valid, but reserved -k- cannot begin with a number -l- cannot contain a space -m- valid -n- valid -o- cannot contain a back slash (special character) -p- valid (and it exists in several places in Java's libriaries) 1-2 valid or not valid -a- valid -b- not valid -c- not valid -d- valid 1-3 import java.util.Scanner; public class RelativeError { public static void main (String[]args){ double relativeError=0.0; Scanner keyboard = new Scanner(System.in); System.out.println("Enter relativeError [0.0 through 1.0]: "); relativeError = keyboard.nextDouble(); System.out.println("You entered: " + relativeError); } } 1-4 4.6 -2.2 4.08 0.35 let 2 decimals be enough, actual output: 0.35294117647058826 1-5 -a- Enter sale: 10.00 Sale: 10.0 Tax: 0.7000000000000001 Total: 10.7 -b- Enter sale: 12.34 Sale: 12.34 Tax: 0.86 2 decimals is enough Total: 13.2 -c- Enter sale: 100.00 Sale: 100.0 Tax: 7.0 Total: 107.0 1-6 - only the following expressions evaluate to "true" -a- 0 -h- 1 -b- 4 -i- 3 -c- false -j- true -d- false -k- true -e- false -l- false -f- true -m- false 1-7 import java.util.Scanner; public class Average { public static void main (String[]args){ Scanner kb = new Scanner(System.in); System.out.println("Enter test 1: "); double one = kb.nextDouble(); System.out.println("Enter test 2: "); double two = kb.nextDouble(); System.out.println("Enter test 3: "); double three = kb.nextDouble(); System.out.println("Average = " + (one + two + three) / 3); } } 1-8 -a- 64.0 -b- 3 (actually 3L, which is a long constant) -c- 2 -d- 12.345 -e- 4.57 1-9 intent error Although it compiles, the answer is wrong. It is evaluating 4/100.0 instead of 100.0/4 1-10 correct intent error - corrections in ALL CAPS double sum, number; System.out.println("Enter sum: "); SUM = keyboard.nextInt(); System.out.println("Enter number: ); NUMBER = keyboard.nextInt(); average = sum/number; 1-11 Explain the error keyboard (suspected to be a Scanner) is never instantiated 1-12 No To correct, add parnethesis: double average = (x + y + z) / 3.0;