1
FINAL EXAM AND COURSE OUTCOMES MATCHING
COURSE OUTCOMES
Upon successful completion of this course, students should be able to
Here is a mapping of the final comprehensive exam against the course outcomes:
Question
Matches outcomes
1
1
2
2
3
3, 4, 5
4
6, 7
5
1, 2, 3, 4, 5, 6, 7
2
Name:_______________________
Covers chs8-19
Final Exam
CSCI 1302 Introduction to Programming
Armstrong Atlantic State University
Instructor: Y. Daniel Liang
Please note that the university policy prohibits giving the exam score by email. If you need to know your
final exam score, come to see me during my office hours next semester.
1. a
1. statement1, statement2, statement3, statement5, statement6.
b
c
3
2. Design and use interfaces (10 pts)
Write a class named Octagon that extends GeometricObject
and implements the Comparable and Cloneable interfaces.
Draw the UML diagram that involves Octagon,
GeometricObject, Comparable, and Cloneable.
Octagon
«interface»
Colorable
+howToColor(): void
GeometricObject
«interface»
Cloneable
public class Octagon extends GeometricObject
implements Comparable, Cloneable {
private double side;
4
}
/** Implement the clone method in
the Object class */
public Object clone() {
// Implement it
try {
return super.clone();
}
5
3. Design and create GUI applications (10 pts)
Write a Java applet to add two numbers from text fields, and
displays the result in a noneditable text field. Enable your applet
to run standalone with a main method. A sample run of the applet is
shown in the following figure.
// Create an instance of the applet
Test applet = new Test();
// Add the applet instance to the frame
frame.add(applet, BorderLayout.CENTER);
// Invoke init() and start()
applet.init();
applet.start();
6
setLayout(new BorderLayout());
add(p1, BorderLayout.CENTER);
add(p2, BorderLayout.SOUTH);
}
7
4. Text I/O (10 pts)
Write a program that will count the number of characters (excluding
control characters ‘\r’ and ‘\n’), words, and lines, in a file. Words
are separated by spaces, tabs, carriage return, or linefeed
characters. The file name should be passed as a commandline argument,
as shown in the following sample run.
}
// Create a Scanner for the file
Scanner input = new Scanner(sourceFile);
while (input.hasNext()) {
String s = input.nextLine();
charCount += s.length();
lineCount++;
wordCount += countWords(s);
}
8
4. (Alternative Question) (10 pts)
Write a program that converts US dollars into Canadian dollars, as
shown in the following figure. The program let the user enter an amount
in US dollars and display it equivalent value in Canadian dollars when
clicking the Convert button. One dollar is 1.5 Canadian dollars.
public class Test extends JApplet {
private JTextField jtfUSDollars = new JTextField();
private JTextField jtfCADollars = new JTextField();
private JButton jbtConvert = new JButton(“Convert”);
9
applet.init();
applet.start();
// Display the frame
frame.setSize(300, 200);
frame.setLocationRelativeTo(null); // Center the frame
frame.setVisible(true);
}
// Default Constructor
public Test() {
add(p3, BorderLayout.CENTER);
add(p4, BorderLayout.SOUTH);
10
5. Multiple Choice Questions: (1 pts each)
(1. Mark your answers on the sheet. 2. Login and click Take
Instructor Assigned Quiz for QFinal. 3. Submit it online
within 5 mins. 4. Close the Internet browser.)
1. _________ describes the state of an object.
a. data fields
b. methods
c. constructors
d. none of the above
#
2. An attribute that is shared by all objects of the class is coded
using ________.
a. an instance variable
b. a static variable
c. an instance method
d. a static method
#
3. If a class named Student has no constructors defined explicitly,
the following constructor is implicitly provided.
a. public Student()
b. protected Student()
c. private Student()
d. Student()
#
4. If a class named Student has a constructor Student(String name)
defined explicitly, the following constructor is implicitly provided.
a. public Student()
b. protected Student()
c. private Student()
d. Student()
e. None
#
5. Suppose the xMethod() is invoked in the following constructor in
a class, xMethod() is _________ in the class.
public MyClass() {
xMethod();
}
a. a static method
b. an instance method
c. a static method or an instance method
11
#
6. Suppose the xMethod() is invoked from a main method in a class as
follows, xMethod() is _________ in the class.
public static void main(String[] args) {
xMethod();
}
a. a static method
b. an instance method
c. a static or an instance method
#
7. What would be the result of attempting to compile and
run the following code?
public class Test {
static int x;
public static void main(String[] args){
System.out.println(“Value is ” + x);
}
}
a. The output “Value is 0” is printed.
b. An “illegal array declaration syntax” compiler error occurs.
c. A “possible reference before assignment” compiler error occurs.
d. A runtime error occurs, because x is not initialized.
#
8. Analyze the following code:
public class Test {
private int t;
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.t);
}
}
a. The variable t is not initialized and therefore causes errors.
b. The variable t is private and therefore cannot be accessed in the
main method.
c. Since t is an instance variable, it cannot appear in the static
main method.
d. The program compiles and runs fine.
#
9. Suppose s is a string with the value “java”. What will be
assigned to x if you execute the following code?
char x = s.charAt(4);
a. ‘a’
b. ‘v’
12
c. Nothing will be assigned to x, because the execution causes the
runtime error StringIndexOutofBoundsException.
d. None of the above.
#
10. What is the printout for the following code?
class Test {
public static void main(String[] args) {
int[] x = new int[3];
System.out.println(“x[0] is “+x[0]);
}
}
a. The program has a syntax error because the size of the array
wasn’t specified when declaring the array.
b. The program has a runtime error because the array elements are
not initialized.
c. The program runs fine and displays x[0] is 0.
d. None of the above.
#
11. How can you get the word “abc” in the main method from the
following call?
java Test “+” 3 “abc” 2
a. args[0]
b. args[1]
c. args[2]
d. args[3]
#
12. Which code fragment would correctly identify the number of
arguments passed via the command line to a Java application,
excluding the name of the class that is being invoked?
a. int count = args.length;
b. int count = args.length 1;
c. int count = 0; while (args[count] != null) count ++;
d. int count=0; while (!(args[count].equals(“”))) count ++;
#
13. Show the output of running the class Test in the following code
lines:
interface A {
void print();
}
class C {}
class B extends C implements A {
13
public void print() { }
}
class Test {
public static void main(String[] args) {
B b = new B();
if (b instanceof A)
System.out.println(“b is an instance of A”);
if (b instanceof C)
System.out.println(“b is an instance of C”);
}
}
a. Nothing.
b. b is an instance of A.
c. b is an instance of C.
d. b is an instance of A followed by b is an instance of C.
#
14. When you implement a method that is defined in a superclass, you
__________ the original method.
a. overload
b. override
c. copy
d. call
#
15. What modifier should you use on a variable so that it can only be
referenced inside its defining class.
a. public
b. private
c. protected
d. Use the default modifier.
#
16. What is the output of running class C?
class A {
public A() {
System.out.println(
“The default constructor of A is invoked”);
}
}
class B extends A {
public B() {
System.out.println(
“The default constructor of B is invoked”);
}
}
public class C {
public static void main(String[] args) {
14
B b = new B();
}
}
a. none
b. “The default constructor of B is invoked”
c. “The default constructor of A is invoked” followed by “The
default constructor of B is invoked”
d. “The default constructor of A is invoked”
#
17. Analyze the following program.
class Test {
public static void main(String[] args) {
try {
String s = “5.6”;
Integer.parseInt(s); // Cause a NumberFormatException
int i = 0;
int y = 2 / i;
System.out.println(“Welcome to Java”);
}
catch (Exception ex) {
System.out.println(ex);
}
}
}
a. An exception is raised due to Integer.parseInt(s);
b. An exception is raised due to 2 / i;
c. The program has a compilation error.
d. The program compiles and runs without exceptions.
#
18. What is displayed on the console when running the following
program?
class Test {
public static void main(String[] args) {
try {
System.out.println(“Welcome to Java”);
int i = 0;
int y = 2/i;
System.out.println(“Welcome to Java”);
}
catch (RuntimeException ex) {
System.out.println(“Welcome to Java”);
}
finally {
System.out.println(“End of the block”);
}
}
15
}
a. The program displays Welcome to Java three times followed by End
of the block.
b. The program displays Welcome to Java two times followed by End of
the block.
c. The program displays Welcome to Java three times.
d. The program displays Welcome to Java two times.
#
19. To append data to an existing file, use _____________ to construct a
FileOutputStream for file out.dat.
a. new FileOutputStream(“out.dat”)
b. new FileOutputStream(“out.dat”, false)
c. new FileOutputStream(“out.dat”, true)
d. new FileOutputStream(true, “out.dat”)
#
20. After the following program is finished, how many bytes are written to the
file t.dat?
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
DataOutputStream output = new DataOutputStream(
new FileOutputStream(“t.dat”));
output.writeShort(1234);
output.writeShort(5678);
output.close();
}
}
a. 2 bytes.
b. 4 bytes.
c. 8 bytes.
d. 16 bytes.