Introduction to Java Programming, Fifth Edition, Y. Daniel Liang

Chapter 2 Primitive Data Types and Operations


Section 2.3 Identifiers
1  Is every letter in a Java keyword in lowercase?

A. true
B. false

2  Which of the following is a valid identifier?

A. $343
B. class
C. 9X
D. 8+9
E. radius

Section 2.4 Variables
3  Which of the following are correct names for variables according to Java naming conventions?

A. radius
B. Radius
C. RADIUS
D. findArea
E. FindArea

4  Which of the following are correct ways to declare variables?

A. int length; int width;
B. int length, width;
C. int length; width;
D. int length, int width;

Section 2.5 Assignment Statements and Assignment Expressions
5  ____________ is the Java assignment operator.

A. ==
B. :=
C. =
D. =:

6  To assign a value 1 to variable x, you write

A. 1 = x;
B. x = 1;
C. x := 1;
D. 1 := x;
E. x == 1;

7  which of the following assignment statements are incorrect.

A. i = j = k = 1;
B. i = 1; j = 1; k = 1;
C. i = 1 = j = 1 = k = 1;
D. i == j == k == 1;

Section 2.6 Constants
8  To declare a constant MAX_LENGTH inside a method with value 99.98, you write

A. final MAX_LENGTH = 99.98;
B. final float MAX_LENGTH = 99.98;
C. double MAX_LENGTH = 99.98;
D. final double MAX_LENGTH = 99.98;

9  Which of the following is a constant, according to Java naming conventions?

A. MAX_VALUE
B. Test
C. read
D. ReadInt
E. COUNT

10  To improve readability and maintainability, you should declare _________ instead of using literal values such as 3.14159.

A. variables
B. methods
C. constants
D. classes

Section 2.7 Numeric Data Types and Operations
11  Which of these data type requires the most amount of memory?

A. long
B. int
C. short
D. byte

12  To declare an int variable number with initial value 2, you write

A. int number = 2L;
B. int number = 2l;
C. int number = 2;
D. int number = 2.0;

13  What is result of 45 / 4?

A. 10
B. 11
C. 11.25
D. 12

14  Which of the following expression results in a value 1?

A. 2 % 1
B. 15 % 4
C. 25 % 5
D. 37 % 6

15  To add number to sum, you write (Note: Java is case-sensitive)

A. number += sum;
B. number = sum + number;
C. sum = Number + sum;
D. sum += number;
E. sum = sum + number;

16  Analyze the following code.

public class Test {
   public static void main(String[] args) {
     int month = 09;
     System.out.println("month is " + month);
   }
}

A. The program displays month is 09
B. The program displays month is 9
C. The program displays month is 9.0
D. The program has a syntax error, because 09 is an incorrect literal value.

17  what is y displayed in the following code?

public class Test1 {
   public static void main(String[] args) {
     int x = 1;
     int y = x = x + 1;
     System.out.println("y is " + y);
   }
}

A. y is 0.
B. y is 1 because x is assigned to y first.
C. y is 2 because x + 1 is assigned to x and then x is assigned to y.
D. The program has a syntax error since x is redeclared in the statement int y = x = x + 1.

18  What is i printed?
public class Test {
   public static void main(String[] args) {
     int j = 0;
     int i = ++j + j * 5;

     System.out.println("What is i? " + i);
   }
}

A. 0
B. 1
C. 5
D. 6

19  What is i printed in the following code?

public class Test {
   public static void main(String[] args) {
     int j = 0;
     int i = j++ + j * 5;

     System.out.println("What is i? " + i);
   }
}

A. 0
B. 1
C. 5
D. 6

20  what is y displayed in the following code?

public class Test {
   public static void main(String[] args) {
     int x = 1;
     int y = x++ + x;
     System.out.println("y is " + y);
   }
}

A. y is 1.
B. y is 2.
C. y is 3.
D. y is 4.

21  what is y displayed?

public class Test {
   public static void main(String[] args) {
     int x = 1;
     int y = x + x++;
     System.out.println("y is " + y);
   }
}

A. y is 1.
B. y is 2.
C. y is 3.
D. y is 4.

Section 2.8 Numeric Type Conversions
22  To assign a double variable d to an float variable x, you write

A. x = (long)d
B. x = (int)d;
C. x = d;
D. x = (float)d;

23  What is the printout of the following code:

double x = 5.5;
int y = (int)x;
System.out.println("x is " + x + " and y is " + y);

A. x is 5 and y is 6
B. x is 6.0 and y is 6.0
C. x is 6 and y is 6
D. x is 5.5 and y is 5
E. x is 5.5 and y is 5.0

24  Which of the following assignment statements is illegal?

A. float f = -34;
B. int t = 23;
C. short s = 10;
D. int t = (int)false;
E. int t = 4.5;

25  What is the value of (double)5/2?

A. 2;
B. 2.5;
C. 3;
D. 2.0;
E. 3.0;

26  What is the value of (double)(5/2)?

A. 2;
B. 2.5;
C. 3;
D. 2.0;
E. 3.0;

27  If you attempt to add an int, a byte, a long, and a double, the result will be a __________ value.

A. byte
B. int
C. long
D. double

Section 2.9 Character Data Type and Operations
28  Which of the following is the correct expression of character 4?

A. 4
B. "4"
C. '\0004'
D. '4'

29  A Java character is stored in __________.

A. one byte
B. two bytes
C. three bytes
D. four bytes

30  Suppose x is a char variable with a value 'b'. What is the printout of the statement System.out.println(++x)?

A. a
B. b
C. c
D. d

31  Which of the following statement prints smith\exam1\test.txt?

A. System.out.println("smith\exam1\test.txt");
B. System.out.println("smith\\exam1\\test.txt");
C. System.out.println("smith\"exam1\"test.txt");
D. System.out.println("smith"\exam1"\test.txt");

32  Suppose i is an int type varaible. Which of the following statements display the character whose Unicode is stored in variable i?

A. System.out.println(i);
B. System.out.println((char)i);
C. System.out.println((int)i);
D. System.out.println(i + " ");

33  The Unicode of 'a' is 97. What is the Unicode for 'c'?

A. 96
B. 97
C. 98
D. 99

34  What is the printout of System.out.println('z' - 'a')?

A. 25
B. 26
C. a
D. z

35  An int variable can hold __________.

A. 'x'
B. 120
C. 120.0
D. "x"
E. "120"

36  Which of the following assignment statements is correct?

A. char c = 'd';
B. char c = 100;
C. char c = "d";
D. char c = "100";
E. a and b.

Section 2.10 boolean Data Type and Operations
37  The "less than or equal to" comparison operator in Java is __________.

A. <
B. <=
C. =<
D. <<
E. !=

38  The equal comparison operator in Java is __________.

A. <>
B. !=
C. ==
D. ^=

39  In Java, the word true is ________.

A. a Java keyword
B. a Boolean literal
C. same as value 1
D. same as value 0

40  Which of the Boolean expressions below is incorrect?

A. (true) && (3 => 4)
B. !(x > 0) && (x > 0)
C. (x > 0) || (x < 0)
D. (x != 0) || (x = 0)
E. (-10 < x < 0)

41  Which of the following is the correct expression that evaluates to true if the number x is between 1 and 100 or the number is negative?

A. 1 < x < 100 && x < 0
B. ((x < 100) && (x > 1)) || (x < 0)
C. ((x < 100) && (x > 1)) && (x < 0)
D. (1 > x > 100) || (x < 0)

42  Suppose x=10 and y=10 what is x after evaluating the expression (y > 10) & (x++ > 10).

A. 9
B. 10
C. 11

43  Suppose x=10 and y=10 what is x after evaluating the expression (y > 10) && (x++ > 10).

A. 9
B. 10
C. 11

44  Suppose x=10 and y=10 what is x after evaluating the expression (y >= 10) | (x++ > 10).

A. 9
B. 10
C. 11

45  Suppose x=10 and y=10 what is x after evaluating the expression (y >= 10) || (x++ > 10).

A. 9
B. 10
C. 11

Section 2.11 Operator Precedence and Associativity
46  The order of the precedence (from high to low) of the operators +, *, &&, ||, & is:

A. &&, ||, &, *, +
B. *, +, &&, ||, &
C. *, +, &, &&, ||
D. *, +, &, ||, &&
E. &, ||, &&, *, +

47  Which of the following operators are right-associative.

A. *
B. +
C. %
D. &&
E. =

48  What is the value of the following expression?

true | true && false

A. true
B. false

49  What is the value of the following expression?

true || true && false

A. true
B. false

50  What is the value of the following expression?

true | true & false

A. true
B. false

Section 2.12 Operand Evaluation Order
51  Which of the following statements are true:

A. The left-hand operand of a binary operator is evaluated before any part of the right-hand operand is evaluated.
B. If no operands have side effects that change the value of a variable, the order of operand evaluation is irrelevant.
C. The order for evaluating operands takes precedence over the operator precedence rule.
D. If no operands have side effects that change the value of a variable, the order of operand evaluation is irrelevant.
E. The subexpressions in parentheses always gets evaluated first.

52  When Java evaluates 1 + 2 + 3 + (4 + 5) + 6 * 7, which operation is performed first?

A. 4 + 5
B. 6 * 7
C. 1 + 2
D. 2 + 3

53  According to the Java expression evaluation rule, Which of the following operator in the expression 3 + 4 + 4 * 5 is executed first?

A. the first +.
B. the second +.
C. the *.
D. It could be either the first + or the *.

Section 2.13 The String Type
54  The expression "Java " + 1 + 2 + 3 evaluates to ________.

A. Java123
B. Java6
C. Java15
D. Java33
E. Illegal expression

55  Note that the Unicode for character A is 65. The expression "A" + 1 evaluates to ________.

A. 66
B. B
C. A1
D. Illegal expression

56  Note that the Unicode for character A is 65. The expression 'A' + 1 evaluates to ________.

A. 66
B. B
C. A1
D. Illegal expression

Section 2.14 Getting Input from Input Dialogs
57  The __________ method displays an input dialog for reading a string.

A. String string = JOptionPane.showMessageDialog(null, "Enter a string", "Input Demo", JOptionPane.QUESTION_MESSAGE);
B. String string = JOptionPane.showInputDialog(null, "Enter a string", "Input Demo", JOptionPane.QUESTION_MESSAGE);
C. String string = JOptionPane.showInputDialog("Enter a string", "Input Demo", JOptionPane.QUESTION_MESSAGE);
D. String string = JOptionPane.showInputDialog(null, "Enter a string");
E. String string = JOptionPane.showInputDialog("Enter a string");

58  The __________ method parses a string s to an int value.

A. integer.parseInt(s);
B. Integer.parseInt(s);
C. integer.parseInteger(s);
D. Integer.parseInteger(s);

59  The __________ method parses a string s to a double value.

A. double.parseDouble(s);
B. Double.parsedouble(s);
C. double.parseDouble(s);
D. Double.parseDouble(s);

60  Analyze the following code.

import javax.swing.*;

public class ShowErrors {
   public static void main(String[] args) {
     int i;
     int j;
     String s = JOptionPane.showInputDialog(null,
       "Enter an integer", "Input",
       JOptionPane.QUESTION_MESSAGE);
     j = Integer.parseInt(s);

     if (j > 3) i = (i + 4);
   }
}

A. The program cannot compile because j is not initialized.
B. The program cannot compile because i does not have an initial value when it is used in i = i + 4;
C. The program compiles but has a runtime error because i deos not have an initial value when it is used in i = i + 4;
D. The program compiles and runs fine.

Section 2.15 Case Studies
61  The __________ method returns a raised to the power of b.

A. Math.power(a, b)
B. Math.exponent(a, b)
C. Math.pow(a, b)
D. Math.pow(b, a)

62  The expression (int)(76.0252175 * 100) / 100 evaluates to _________.

A. 76.02
B. 76
C. 76.0252175
D. 76.03

63  The System.currentTimeMills() returns ________________ .

A. the current time.
B. the current time in milliseconds.
C. the current time in milliseconds since midnight.
D. the current time in milliseconds since midnight, January 1, 1970.
E. the current time in milliseconds since midnight, January 1, 1970 GMT (the Unix time).

Section 2.17 Formatting Output (JDK 1.5 Feature)
64  To compile the class Test.java in JDK 1.5, use __________.

A. javac Test.java
B. javac -source jdk1.5 Test.java
C. javac -source 1.5 Test.java
D. java Test

65  Which of the following are valid specifiers for the printf statement?

A. %4c
B. %10b
C. %6d
D. %8.2d
E. %10.2e

66  The statement System.out.printf("%3.1f", 1234.56) outputs ___________.

A. 123.4
B. 123.5
C. 1234.5
D. 1234.56
E. 1234.6

67  The statement System.out.printf("%3.1e", 1234.56) outputs ___________.

A. 0.1e+04
B. 0.123456e+04
C. 0.123e+04
D. 1.2e+03
E. 1.23+03

68  The statement System.out.printf("%5d", 123456) outputs ___________.

A. 12345
B. 23456
C. 123456
D. 12345.6

69  The statement System.out.printf("%10s", 123456) outputs ___________. (Note: * represents a space)

A. 123456****
B. 23456*****
C. 123456****
D. ****123456

Section 2.18 Programming Style and Documentation
70  Programming style is important, because ______________.

A. a program may not compile if it has a bad style
B. good programming style can make a program run faster
C. good programming style makes a program more readable
D. good programming style helps reduce programming errors

71  According to Java naming convention, which of the following names can be variables?

A. FindArea
B. findArea
C. totalLength
D. TOTAL_LENGTH
E. class

Section 2.19 Programming Errors
72  If a program compiles fine, but it produces incorrect result, then the program suffers __________.
A. a compilation error
B. a runtim error
C. a logic error