Top-Rated Free Essay
Preview

Java

Good Essays
5076 Words
Grammar
Grammar
Plagiarism
Plagiarism
Writing
Writing
Score
Score
Java
Java Software Solutions: Foundations of Program Design, 6e (Lewis/Loftus)
Chapter 1 Introduction

Multiple-Choice Questions

1) A Java program is best classified as
A) hardware
B) software
C) storage
D) processor
E) input
Answer: B
Explanation: B) Programs are classified as software to differentiate them from the mechanisms of the computer (hardware). Storage and the processor are two forms of hardware while input is the information that the program processes.

2) 6 bits can be used to represent ________ distinct items or values
A) 6
B) 20
C) 24
D) 32
E) 64
Answer: E
Explanation: E) With n bits, we can represent 2n different values. 26 = 64.

3) When executing a program, the processor reads each program instruction from
A) secondary memory (storage)
B) the Internet
C) registers stored in the processor
D) main memory
E) could be any of these
Answer: D
Explanation: D) The program is first loaded from secondary memory into main memory before it is executed so that the processor is not slowed down by reading each instruction. This idea of executing programs stored in memory is called the Stored Program Computer and was pioneered by John Von Neumann in the 1940s.

4) Which memory capacity is the largest?
A) 1,500,000,000,000 bytes
B) 100 gigabytes
C) 3,500,000 kilobytes
D) 10 terabyte
E) 12,000,000 megabytes
Answer: E
Explanation: E) We convert each of these capacities to bytes (rounding off) to compare them. The value in A remains the same, 1 1/2 trillion bytes. The value in B is 100 billion bytes. The value in C is 3 1/2 billion bytes. The value in D is 10 trillion bytes. The answer in E is 12 trillion bytes.

5) Binary numbers are composed entirely of
A) 0s
B) 1s
C) 0s and 1s
D) 0s, 1s and 2s
E) any digits between 0 and 9
Answer: C
Explanation: C) Binary is base 2. In Mathematics, numbers in base n are composed entirely of digits between 0 and n-1.

6) Volatility is a property of
A) RAM
B) ROM
C) disk
D) software
E) computer networks
Answer: A
Explanation: A) Volatility means that the contents of memory are lost if the electrical power is shut off. This is true of RAM (Random Access Memory), but not ROM (Read Only Memory) or disk. Software and computer networks are not forms of memory.

7) The ability to directly obtain a stored item by referencing its address is known as
A) random access
B) sequential access
C) read-only access
D) fetch access
E) volatility
Answer: A
Explanation: A) Random access is meant to convey the idea that accessing any item is equally easy, and that any item is retrievable based solely on its address. Random access is the form of access used by both RAM and ROM memory. Disk access, called direct access, is a similar idea, and direct and random access are sometimes referred to synonymously. Sequential access is used by tape.

8) Which phase of the fetch-decode-execute cycle might use a circuit in the arithmetic-logic unit?
A) fetch
B) decode
C) execute
D) during fetch or execute, but not decode
E) could be used in fetch, decode or execute phase
Answer: C
Explanation: C) The fetch phase retrieves (fetches) the next program instruction from memory. The decode phase determines which circuit(s) needs to be used to execute the instruction. The instruction is executed during the execute phase. If the instruction is either an arithmetic operation (like add or multiply) or a logical operation (like comparing two values), then it is carried out by the ALU.

9) In order for a computer to be accessible over a computer network, the computer needs its own
A) MODEM
B) communication line
C) network address
D) packet
E) router
Answer: C
Explanation: C) In order to differentiate between the computers on a network, each is given its own, unique, network address. In this way, a message intended for one computer can be recognized by that computer through the message's destination address. A MODEM is a device that is used to allow a computer to communicate to another computer over a telephone line. A communication line is the network media itself. A packet is a collection of data that is sent over a network. A router is a hardware device used to take a message from one network and move it to another based on the message's destination address.

10) For a computer to communicate over the Internet, it must use
A) the TCP protocol
B) the IP protocol
C) the combined TCP/IP protocol
D) the Ethernet protocol
E) the ARPANET protocol
Answer: C
Explanation: C) IP is the Internet Protocol, but the TCP (Transmission Control Protocol) also must be used because it handles such problems as how to piece together packets of the same message that arrive out of order. Ethernet is a LAN protocol, which might be used in addition to TCP/IP in some networks, but it is not needed to communicate over the Internet. There is no such thing as the ARPANET protocol.

11) A URL (Universal Resource Locator) specifies the address of
A) a computer on any network
B) a computer on the Internet
C) a local area network (LAN) on the Internet
D) a document or other type of file on the Internet
E) a Java program on the Internet
Answer: D
Explanation: D) URLs are used to locate documents (or other types of files such as an image or sound file) anywhere on the Internet. An URL contains the address of the LAN or WAN and the specific computer from which the file is to be retrieved; it specifies the file's address, not just the computer's address.

12) It is important to dissect a problem into manageable pieces before trying to solve the problem because
A) most problems are too complex to be solved as a single, large activity
B) most problems are solved by multiple people and it is easy to assign each piece to a separate person
C) it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program
D) our first solution may not solve the problem correctly
E) all of the above
Answer: A
Explanation: A) Any interesting problem will be too complex to solve easily as a single activity. By decomposing the problem, we can build small solutions for each piece and then integrate the pieces. Answer D is true, but it is not the reason why we will break a problem into pieces.

13) Once we have implemented the solution, we are not done with the problem because
A) the solution may not be the best (most efficient)
B) the solution may have errors and need testing and fixing before we are done
C) the solution may, at a later date, need revising to handle new specifications
D) the solution may, at a later date, need revising because of new programming language features
E) all of the above
Answer: E
Explanation: E) A program should not be considered as a finished product until we are reasonably assured that it is efficient and error-free. Further, it is common that programs require modification in the future because of a change to specifications or a change to the language or computer running the program.

14) Java is an example of a(n)
A) machine language
B) assembly language
C) high-level language
D) fourth generation language
E) both C and D
Answer: E
Explanation: E) While Java was created during the fourth generation, it is clearly also a high-level language. Machine language is the executable language of a machine, with programs written in 1s and 0s only. Assembly language uses mnemonics. Fourth generation languages are tools wrapped inside of programs so that the user has the flexibility to write some code to executed from within the program.

15) In the following list, which statement is not true regarding Java as a programming language?
A) It is a relatively recent language, having been introduced in 1995
B) It is a language whose programs do not require translating into machine language before they are executed
C) It is an object-oriented programming language
D) It is a language that embraces the idea of writing programs to be executed using the World Wide Web
E) All of the above are true
Answer: B
Explanation: B) All languages require translation into machine language. The other statements are all true about Java.

16) Comments should
A) rephrase the code it explains in English
B) be insightful and explain what the instruction's intention is
C) only be included in code that is difficult to understand
D) be used to define variables whose names are not easy to understand
E) all of the above
Answer: B
Explanation: B) One might answer E, but that then includes A and C, making "all of the above" incorrect. Comments should not rephrase in English what an instruction says, but instead should explain what that instruction is doing in relation to the program. Introductory programmers often have difficult explaining their code and wind up stating the obvious in their comments. While answer D is partially correct, it is not entirely trueall variables should have comments that explain their use.

17) The main method for a Java program is defined by
A) public static main( )
B) public static main(String[ ] args);
C) public static main(String[ ] args)
D) private static main(String[ ] args)
E) the main method could be defined as in A, C or D but not B
Answer: C
Explanation: C) In A, the parameter is missing. The parameters are defined later in the text, but in effect, they allow the user to run the program and include some initial arguments if the program calls for it. In B, the semicolon at the end of the statement is not allowed. In D, "private" instead of "public" would make the program non-executable by anyone and thus makes the definition meaningless.

18) The line of Java code "// System.out.println("Hello");" will
A) do nothing
B) cause "Hello" to be output
C) cause a syntax error
D) cause "(Hello)" to be output
E) there is no way to know without executing this line of code
Answer: A
Explanation: A) The characters "//" denote the beginning of a comment. The comment is not compiled and so, nothing would happen when this code is executed.

19) The instruction: System.out.println("Hello World"); might best be commented as
A) // prints "Hello World" to the screen
B) // prints a message
C) // used to demonstrate an output message
D) //
E) // meaningless instruction
Answer: C
Explanation: C) Comments in A and B state the obvious while the comments in D and E are meaningless. The comment in C explains why the instruction appears in the program.

20) Which character below is not allowed in an identifier?
A) $
B) _
C) 0 (zero)
D) q
E) ^
Answer: E
Explanation: E) Java identifiers can consist of any letter, digit, $ or _ as long as the identifier starts with a letter or _. ^ is not a legal character.

21) Which of the following is not syntactically legal in Java?
A) public class Foo
B) System.out.println("Hi");
C) { }
D) s t a t i c main(String[ ] args)
E) only B is legally valid, all of the rest are illegal
Answer: D
Explanation: D) The Java compiler would not recognize "s t a t i c" as "static" because the Java compiler treats white space (blanks) as separators between entities. The other statements are all legal, including "{ }" which is a block that happens to have no statements within it.

22) Which of the following is a legal Java identifier?
A) i
B) class
C) ilikeclass!
D) idon'tlikeclass
E) i-like-class
Answer: A
Explanation: A) Java identifiers cannot have the characters "!", "'" or "-" in them making answer C, D and E wrong. The word "class" is a reserved word in Java and cannot be used as an identifier. The identifier "i" is perfectly legal although it is not necessarily a good identifier since it is not descriptive of its use.

23) A unique aspect of Java that allows code compiled on one machine to be executed on a machine of a different hardware platform is Java's
A) bytecodes
B) syntax
C) use of objects
D) use of exception handling
E) all of the above
Answer: A
Explanation: A) The translation process for a Java program is to first compile it into bytecodes, which are architecturally neutral (that is, they can be used no matter what the architectural platform is). To execute the program, the bytecodes must be further compiled by a Java compiler or interpreted by a Java Virtual Machine.

24) Java is similar in syntax to what other high level language?
A) Pascal
B) Ada
C) C++
D) FORTRAN
E) BASIC
Answer: C
Explanation: C) The creators of Java decided to use syntax similar to C++ so that C++ programmers could easily learn Java. Variable declarations, assignment statements, loops, selection statements and comments are among the features that have nearly identical syntax. There are many differences however, so don't assume that any C or C++ programmer will easily or instantly be able to program in Java.

25) An error in a program that results in the program outputting $100 instead of the correct answer, $250 is
A) a programmer error
B) a syntax error
C) a run-time error
D) a logical error
E) a snafu
Answer: D
Explanation: D) While this is an error (answer A), programmers classify the type of error in order to more easily solve the problem. Syntax errors are caught by the compiler and the program cannot run without fixing all syntax errors. Run-time errors arise during program execution and cause the program to stop running. Logical errors are errors whereby the program can run to completion, but gives the wrong answer. If the result should have been $250, then the logic of the program is wrong since it output $100. A snafu is a term expressing a messed up situation in combat and should not be used by respectable programmers!

26) Which of the following is true regarding Java syntax and semantics?
A) a Java compiler can determine if you have followed proper syntax but not proper semantics
B) a Java compiler can determine if you have followed proper semantics but not proper syntax
C) a Java compiler can determine if you have followed both proper syntax and semantics
D) a Java compiler cannot determine if you have followed either proper syntax or semantics
E) a Java compiler can determine if you have followed proper syntax and can determine if you have followed proper semantics if you follow the Java naming convention rules
Answer: A
Explanation: A) Compilers for all languages have the ability to detect syntax errors because improper use of the syntax leads to situations where the compilers cannot translate the code properly. However, compilers are unable to follow the semantics of a program because this requires a degree of understanding what the program is intended to do and computers have no sense of understanding (at least at this point).

27) Following Java naming convention, which of the following would be the best name for a class about store customers?
A) StoreCustomer
B) Store Customer
C) storeCustomer
D) STORE_CUSTOMER
E) Store-Customer
Answer: A
Explanation: A) The Java naming convention states that classes should all start with an upper case letter and that multiple-word names should start each new name with an upper case letter while the remaining characters are lower case. Words should either be connected together without spaces, or connected with the "_" character. Answers B and E are not legal names, and using Java naming convention, C would qualify as a variable name and D would qualify as a constant.

28) Which of the following would be a good variable name for the current value of a stock?
A) curstoval
B) theCurrentValueOfThisStockIs
C) currentStockVal
D) csv
E) current
Answer: C
Explanation: C) Java allows long variable names but the programmer must find a good compromise between an excessive long name (as with B) and names too short to understand their use (A and D). The name current possibly might be reasonable if there are no other "current" values being referenced in the program.

29) Which of the following is a legal Java identifier?
A) 1ForAll
B) oneForAll
C) one/4/all
D) 1_4_all
E) 1forall
Answer: B
Explanation: B) Java identifiers cannot start with a number (so the answers in A, D and E are illegal) and cannot include the "/" character, so the answer in C is illegal.

30) A color image is broken down into individual pixels (points), each of which is represented by
A) a 1 for white and a 0 for black
B) 3 values denoting the intensity of red, green, and blue in the image
C) a single number indicating the intensity of color between white and black
D) two numbers, a value that denotes where between white and black the color is, and a brightness
E) none of the above, it is not possible to represent a color image
Answer: B
Explanation: B) Black and white images are stored using 0s and 1s while color images are stored using three values, one each for the degree of red, the degree of blue, and the degree of green.

31) Which of the following characters does not need to have an associated "closing" character in a Java program?
A) {
B) (
C) [
D) <
E) all of these require closing characters
Answer: D
Explanation: D) { is used to open a block, and so } is needed to close the block. ( is used to open an expression and so ) is needed to close an expression. [ is used to start an array index so ] is needed to close the array index. < is "less than" and > is "greater than" and these are not needed together, so < requires no closing character.

32) Mistyping "println" as "printn" will result in
A) a syntax error
B) a run-time error
C) a logical error
D) no error at all
E) converting the statement into a comment
Answer: A
Explanation: A) If the Java compiler cannot make sense of a command, the compiler cannot convert it and responds with a syntax error. While "println" is recognized as a command, "printn" is not, and so the compiler provides a syntax error.

True/False Questions

1) All information is stored in the computer using binary numbers.
Answer: TRUE
Explanation: The computer is a digital device meaning that it stores information in one of two states using binary. We must determine then how to represent meaningful information (such as a name or a program instruction or an image) in binary.

2) Java is an object-oriented programming language.
Answer: TRUE
Explanation: Java is classified as a high-level programming language but it is also classified as an object-oriented programming language because it allows the programmer to implement data structures as classes.

3) System.out.print is used in a program to denote that a documentation comment follows.
Answer: FALSE
Explanation: Documentation comments follow // marks or are embedded between /* and */. System.out.print is an instruction used to output a message to the screen (the Java console window).

4) Java byte codes are directly executable whereas Java source code is not.
Answer: FALSE
Explanation: Neither Java source code nor Java byte codes are executable. Both must be compiled or interpreted into machine code. Java byte codes are useful however in that they are machine-independent but semi-compiled code that allows your Java code to be transmitted over the Internet and executed on another computer even if that other computer is a completely different type.

5) The Java compiler is able to find all programmer errors.
Answer: FALSE
Explanation: The Java compiler can find syntax errors but cannot find either logical errors (errors that are caused because of poor logic in writing the program) or run-time errors (errors that arise during the execution of the program).

6) Java is a case-sensitive language meaning that Current, current and CURRENT will all reference the same identifier.
Answer: FALSE
Explanation: Java is case sensitive which means that Current, current and CURRENT will all be recognized as different identifiers. This causes problems with careless programmers who do not spell an identifier consistently in terms of upper and lower case characters.

7) Code placed inside of comments will not be compiled and therefore will not execute.
Answer: TRUE
Explanation: The compiler discards comments; therefore, any code inside a comment is discarded and is not compiled. Your executable program consists only of the code that is compiled.

8) The word "Public" is a reserved word.
Answer: FALSE
Explanation: "public" is a reserved word, but since Java is case sensitive, "Public" differs from "public" and therefore "Public" is not a reserved word.

9) Reserved words in Java can be redefined by the programmer to mean something other than their original intentions.
Answer: FALSE
Explanation: Java reserved words cannot be redefined.

10) In a Java program, dividing by 0 is a syntax error.
Answer: FALSE
Explanation: Dividing by 0 is not detected at compile time, and because a computer cannot divide by 0, this is a run-time error.

11) During translation, the compiler puts its output (the compiled Java program) into ROM.
Answer: FALSE
Explanation: ROM stands for read-only-memory. The compiled output (the byte codes) may be placed into RAM (writable random access memory) or into a file (on your hard drive, for example).

12) Objects are defined by a class that describes the characteristics common to all instances of the class.
Answer: TRUE
Explanation: "An object is an instance of a class." And, the purpose of a class is to describe these common characteristics.

13) Inheritance is a form of software reuse.
Answer: TRUE
Explanation: Inheritance allows us to capitalize on the similarities among various kinds of classes that have a common base (parent) class. Thus we reuse the base class each time a class inherits from it.

14) Polymorphism is the idea that we can refer to multiple types of related objects in consistent ways.
Answer: TRUE
Explanation: Polymorphism allows us to use the same name for similar behaviors that occur among diverse and possibly unrelated objects. For example, to "open" may refer to a file, or to a device, or to a communications line, etc. The same term, "open," is being usedeven though the objects that are being opened are quite different.

15) In Java, identifiers may be of any length up to a limit determined by the compiler.
Answer: FALSE
Explanation: Java (and Java compilers) do not limit the length of the identifiers you use. Identifiers may be as long as you wish. Good programming practice, however, will limit the lengths of the identifiers you create.

Free-Form Questions

1) What is wrong with the following class definition? public class Program1 { public static void main(String[ ] args) { System.out.println("My first Java program") } }
Answer: The one executable statement in the main method is missing a ";" at the end of the line. Executable statements end with ";".

2) What is wrong with the following class definition? public class Program2 public static void main(String[ ] args) { System.out.println("My second Java program"); }
Answer: The definition of a class is placed within { } statements, which are missing here.

3) Given the following class definition, what are the reserved words and what are the identifiers? public class Program3
{
public static void main(String[ ] args) { System.out.println("My third Java program"); }
}
Answer: The reserved words are public, class, static, void. The identifiers are main, String, System, out, Program3, and args. Main is the name of a method defined within the Program3 class. String and System.out are classes already defined in Java and println is a method of System.out. Program3 is a class, defined here, and args is a variable.

4) Provide a brief explanation of the role of main memory, the control unit, the arithmetic logic unit, and registers. (see figure 1.13)
Answer: Main memory is used to store the currently executing processes along with their data. The control unit performs the fetch-decode-execute cycle, which fetches an instruction from memory, decodes it and determines how it is to be executed. The arithmetic logic unit comprises a number of circuits that execute arithmetic and logic instructions. Registers are used to store values in the CPU temporarily while the current instruction(s) need them.

5) What is the output of the following when the main method is executed? public class Question4
{
public static void main(String[ ] args) { System.out.println("hi there"); System.out.println(" "); System.out.println("how are you doing today? "); }
}
Answer: hi there

how are you doing today?
Notice that while the Java compiler ignores "white space", blanks that appear in a println statement inside of quote marks are retained and output in that manner.

6) What is wrong with the following println statement?
System.out.println("My fourth Java Program);
Answer: It is missing a closing ". The compiler will look for a second " before the end of the statement. So, like { }, ( ), and [ ], an initial " must have a corresponding closing ".

7) Provide identifier names that would be used to represent a person's social security number, income tax withheld, and net pay.
Answer: socialSecurityNumber, or ssn, incomeTaxWithheld or incomeTax, and netPay all would be reasonable.

8) There are a number of reserved words in Java that have no current meaning (denoted with an * in figure 1.18). Why?
Answer: Java language designers anticipate introducing these statements in future versions, but have not yet implemented them because they are lower priority, or it has not been decided how they will be implemented or precisely what they will mean.

9) Rewrite the following comment so that it can appear over multiple lines.
// This is one really enormously long comment that might run off the page
Answer: We can do this in two ways, preceding each line with // or by enclosing the comment in /* and */

/* This is one really enormously

long comment that might run off the page */

// This is one really enormously // long comment that might run // off the page

10) Examine figure 1.7 before answering this question. What 8-bit value comes immediately before and what 8-bit value comes immediately after 10010111?
Answer: 10010110 comes immediately before 10010111 and 10010100 comes immediately after 10010111.

11) Rewrite the following program with better formatting to make it easier to read. public class
MyProgram
{ public static void main( String[ ] args) { System.out.println(
"Wow, this is messed up!" ); } }
Answer: There are many ways this program might appear. The following would be very acceptable: public class MyProgram
{
public static void main(String[ ] args) { System.out.println("Wow, this is messed up!"); }
}

12) A document of text is 15 pages long. Each page contains approximately 200 words and the average length of each word is 5 characters. Also assume one blank space between each word and no punctuation. How many bytes will it take to store this document in memory or on disk using ASCII?
Answer: A character is stored in ASCII using 8 bits or 1 byte. Therefore, 5 characters per word plus 1 blank space between words take 6 bytes per word (except for the first). Each page stores 200 words and there are 15 pages. So we need 15 * 200 * 6 - 1 (no blank space to start the text) = 17,999 bytes which is 17.58 kilobytes, or nearly 18 Kbytes.

13) Provide a brief description of the roles of the following hardware elements (that is, what each is used for):
a) CPU
b) Main memory
c) Secondary memory devices
d) Input/Output devices
Answer: a) The CPU is the processorit executes all program instructions. It does this through the fetch-decode-execute cycle where the next program instruction is fetched from memory, decoded in the CPU, and then executed by one or more circuits. b) Main memory is stored on chips on the motherboard and is used for quick access to the current program for the fetch-decode-execute cycle and to store data being used by this program. c) Secondary memory devices are storage devices, used to store programs and data not currently being used. Storage devices, such as the hard disk, also are used to store things for permanence and archives. d) Input/Output devices are used to communicate with the computer. Input devices, like the keyboard, take commands and data from the user and output devices, like the monitor, display the results of the process/computation.

14) Considering that the Pentium IV processor runs at a clock speed of about 850 MHz. What clock speed might we expect from a Pentium chip that would be released in 3 years?
Answer: 3400 MHz or 3.4 GHz. Explanation: The speed of processors has been doubling roughly every 18 months (1 1/2 years). So, in 3 years, the speed will probably have doubled twice, or be four times greater than it is now, 4 * 850 = 3400.

15) Write a Java program that will output on two separate lines the names of the authors of this textbook.
Answer: public class OutputNames
{
public static void main(String[ ] args) { System.out.println("John Lewis"); // output first author's name System.out.println("William Loftus"); // output second author's name }
}

16) Correct all the syntax errors in the following program. Public Class Program \\ A problem program ( Public static voided main[Strings( ) args] { system.out.println('This program'); \* oh, my... *\ system.out.println('has several syntax errors'); \* lots of errors *\ } )
Answer: public class Program // A problem program { public static void main(String[ ] args) { System.out.println("This program"); /* oh, my... */ System.out.println("has several syntax errors"); /* lots of errors */ } }

17) Name five of the fundamental terms which encompass object-oriented programming.
Answer: There are seven terms to choose from: object, attribute, method, class, encapsulation, inheritance, and polymorphism.

18) Write a Java program that will display the following three lines when it is run: * * * * * * * * *
Answer: public class Stars
{
public static void main(String[ ] args) { System.out.println(" *"); System.out.println(" * * *"); System.out.println("* * * * *"); }
}

You May Also Find These Documents Helpful