Sie sind auf Seite 1von 17

Specimen Exam Paper

TCC 102 Computing 2

Time: 3 Hours

Instructions to candidates:

1. Please check that this examination paper consists of fourteen (14) pages of printed material before you begin the examination.

2. This paper consists of FOUR parts: Part A (20 questions), Part B (10 questions), Part C (10 questions) and Part D (4 questions). Answer ALL questions of Part A and B in the MCQ Answer Sheet provided. Answer ALL questions in Part C and TWO out of FOUR questions in Part D in the Answer booklet provided.

3. Write in black or blue and answer all questions in the answer booklet provided.

4. No books, dictionaries, notes or any other written materials are allowed in this examination.

5. Non-programmable electronic calculator may be used.

2

TCC 101

Part A

Multiple Choice Questions

(40 marks)

1. What is the correct syntax for defining a new class Parakeet based on the superclass Bird?

A. class Parakeet isa Bird{ }

B. class Bird defines Parakeet{ }

C. class Bird hasa Parakeet{ }

D. class Parakeet extends Bird{ }

2. A subclass can directly access

A. public members of a superclass

B. private members of a superclass

C. all members of a superclass

D. none of the members of a superclass

3. The classes Reader and Writer are derived from the class

A. Streams

B. Inputs

C. Outputs

D. Object

4. Which of the following is a valid statement?

A. String name("Doe");

B. String ("Doe");

C. String name = "Doe";

D. name = new String;

3

TCC 101

5. What String instance method would return true when invoked like this:

a.method(b);

where a = "GROUNDhog" and b = "groundHOG"?

A. equals()

B. toLowerCase()

C. toUpperCase()

D. equalsIgnoreCase()

6. Consider the following definition of a recursive method.

public static int func1(int m, int n) { if (m == n || n == 1) return 1;

else

return func1(m - 1, n - 1) + n * func1(m - 1, n);

}

What precondition must exist in order to prevent the code above from infinite recursion?

A. m > = 0 and n >= 0

B. m >= 0 and n >= 1

C. m >= 1 and n >= 0

D. m >= 1 and n >= 1

7. Which of the following options above is a correct Web page for the applet WelcomeHomeApplet?

A.

B

<HTML> <BODY> <OBJECT "WelcomeHomeApplet.class"> </OBJECT> </BODY> </HTML>

<HTML> <BODY> <OBJECT code="WelcomeHomeApplet.class" width = 250 height = 200> </OBJECT> </HTML>

4

TCC 101

C <HTML> <OBJECT code="WelcomeHomeApplet.class" width = 250 height = 200> </HTML>

D <HTML> <BODY> <OBJECT code="WelcomeHomeApplet.class" width = 250 height = 200> </OBJECT> </BODY> </HTML>

8. Which of the following is NOT included in the Java applet above?

A. Check box

C. Combo box

D. list

9. In which of the following layout managers do all rows (columns) have the same number of components and all components have the same size?

A. GridLayout

B. FlowLayout

C. BorderLayout

D. EvenLayout

5

TCC 101

10.Consider the following class definitions.

public class BClass{ private int x; private double y;

public void print() { }

}

public class DClass extends BClass{ private int a; private int b; public void print() { }

}

Suppose that you have the following statement.

DClass dObject = new DClass();

How many instance variables DObject has?

A. 0

B. 2

C. 4

D. None of these

11.Suppose that sales is a two dimensional array of 10 rows and 7 columns wherein each component is of the type int , and sum and j are int variables. Which of the following correctly finds the sum of the elements of the fifth row of sales?

A. sum = 0; for(j = 0; j < 7; j++) sum = sum + sales[5][j];

B. sum = 0; for(j = 0; j < 7; j++) sum = sum + sales[4][j];

C. sum = 0; for(j = 0; j < 10; j++) sum = sum + sales[5][j];

D. sum = 0; for(j = 0; j < 10; j++) sum = sum + sales[4][j];

6

TCC 101

char[][] array1 = new char[15][10];

12.What is the value of array1.length?

A. 0

B. 2

C. 10

D. 15

13.Which of the following returns the number of elements in a Vector?

A. Vector.length

B. Vector.size()

C. Vector.numElements()

D. Vector.contains

14.If a negative value is used for an array index,

A. a NumberFormatException is thrown

B. the program terminates immediately

C. the last index of the array is automatically accessed instead

D. an IndexOutOfBoundsException is thrown

15.Consider the following list.

8/-

list = {20, 10, 17, 2, 18, 35, 30, 90, 48, 47};

Suppose that sequential search as discussed is used to determine whether 2 is in list. Exactly how many key comparisons are executed by the sequential search algorithm?

A. 3

B. 4

C. 5

D. None of these

7

TCC 101

16.Suppose alpha is an array of 50 components. Which of the following about alpha is true? (i) The base address of alpha is the address of alpha[0]. (ii) The base address of alpha is the address of alpha[1].

A. Only (i)

B. Only (ii)

C. Both (i) and (ii)

D. None of these

17. Consider the following code segment

public class Illustrate { private int x; private static int y; public static int count; public static int z;

public Illustrate()

x = 1;

}

{

public Illustrate(int a)

x = a;

}

public void print()

{

{

System.out.println("x = " + x + ", y = " + y + ", count = " + count);

}

public static void incrementY()

}

}

y++;

{

Based on the class definition above, which of the following statements is illegal?

A. Illustrate.incrementY();

B. Illustrate.count++;

C. Illustrate.z++;

D. Illustrate.x++;

8

TCC 101

18.What is the output of the following Java code?

int[] alpha = {2, 4, 6, 8, 10}; int j;

for (j = 4; j >= 0; j--) System.out.print(alpha[j] + " "); System.out.println();

A. 2 4 6 8 10

B. 10 8 6 4 2

C. 4 3 2 1 0

D. Invalid code

19. Consider the following code segment

int[] hit = new hit[5];

hit[0] = 3; hit[1] = 5; hit[2] = 2; hit[3] = 6; hit[4] = 1;

System.out.println(hit[1 + 3]);

What is the output of the code fragment above?

A. 1

B. 3

C. 5

D. 6

20.Consider the following class definition.

public class Rectangle{ private double length; private double width; private double area; private double perimeter;

9

TCC 101

public Rectangle() length = 0; width = 0;

}

{

public Rectangle(double l, double w) length = l; width = w;

}

public void set(double l, double w) length = l; width = w;

}

public void print()

{

{

{

System.out.println(length + " " + width);

}

public double area()

{

return length * width;

}

public double perimeter()

{

return 2 * length + 2 * width;

}

}

Suppose that you have the following declaration.

Rectangle bigRect = new Rectangle(10, 4);

Which of the following set of statements are valid in Java?

 (i) bigRect.area(); bigRect.perimeter(); bigRect.print(); (ii) bigRect.area = bigRect.area(); bigRect.perimeter = bigRect.perimeter(); bigRect.print(); A. Only (i) B. Only (ii) C. Both (i) and (ii) D. None of these

10

TCC 101

Part B

True and False Questions

(10 marks)

Use the MCQ Answer Sheet provided for Question 21 to 30. Shade on ‘=A=’ if TRUE and ‘=B=’ if FALSE. Every question carries 1 mark.

 Questions T/F 21.To determine whether two reference variables of the Integer type F point to the same Integer object, we can use either the method equal of the class Integer or the operator ==. 22.If a member of a class is public you cannot access it outside the F class. 23.The methods of a class must be public. F 24.An ArrayOutOfBoundsException is thrown if an index is greater than F or equal to the size of the array minus 1 25.To search through a list you need to know the length of the list. T 26.Key comparisons are also called item comparisons. T 27.Vectors can be used to represent lists T 28.Redefining a method of a superclass is also known as overloading a F method. 29.An unchecked exception is any exception that causes a program to F terminate. 30.For interfaces such as WindowListener that contain more than one T method, Java provides the class WindowAdapter.

11

TCC 101

Part C

Fill in the Blank

(10 marks)

Please fill in the blank with the following phrases given. Every question carries 1 mark.

 JButton Container init Exception WindowListener Object polymorphism static interface garbage collection

1. When you click a JButton an event is created, known as an action event.

2. The class Container is the superclass of all the classes designed to provide a

GUI.

3. Applets use the init method in place of constructors to initialize various GUI

components and data members.

4. The class Exception and its subclasses are designed to catch exceptions

that should be caught and processed during program execution.

5. To handle window events you first create a class that implements the

interface WindowListener and then you create and register objects of that

class.

6. Using the mechanism of inheritance, every public member of the class Object

can be overridden and/or invoked by every object of any class type.

7. In Java, polymorphism is implemented using late binding.

8. An interface is a class that contains only abstract methods and/or named

constants.

9. The modifier static in the heading specifies that the method can be invoked

by using the name of the class.

10.Java provides automatic garbage collection.

12

TCC 101

Part D

Short and Long Questions

(40 marks)

Answer TWO out of FOUR questions in the answer booklet provided. Every question carries twenty marks.

1. (a) What does the super keyword allow in Java?

[ 2 marks ]

Answer: The super keyword allows the child object to access methods of the parent class. This even includes access to the parent constructor.

(b) When is the garbage collector called in Java?

[ 3 marks ]

Answer: The garbage collector in Java is a daemon thread that counts the references on allocated object, allocating their memory space back to the heap when the object goes out of scope. It is run automatically by the VM when the memory is low, or the CPU is idle. The user can also request that the garbage collector should run.

(c) What does the term over-riding mean?

[ 2 marks ]

Answer: Over-riding means re-writing the same method in a child class, with the exact same set of parameters. Over-riding is a form of polymorphism that allows behaviour to be replaced in a child class.

(d) What is meant by the term encapsulation?

[ 2 marks ]

Answer: Encapsulation may simply be defined as data hiding. It allows us to distinguish internal methods from the interface. We can use the public, private and protected modifiers to set the level of encapsulation.

(e) Polymorphism is a feature of most OOP languages. Describe polymorphism

ii. Over-loading issues that arise when a child over-rides one method of many that are inherited from a parent class.

iii. How do access modifiers affect over-riding?

[11 marks]

13

TCC 101

Answer: Overloading – Re-using the same method name with different arguments and possibly a different return type is known as overloading. In unrelated class there is no issues when re-using names but in the same class, we can overload methods, provided that those methods have different argument types. A method may not be distinguished by return type alone. Overriding – Re-using the same name with the exact same arguments is known as overriding. This is most commonly used in a derived class, where the method has been defined in the parent, but a version with different functionality is required. This allows the facility to add specialised behaviour to a derived class. e.g. public void aMethod(String s) {} public void aMethod(int s) {}

is an example of an overloaded method.

We can call an overridden method using the super keyword. For example to call the aMethod from a derived class we can use super.aMethod(). Difficulties occur when we override a method in a derived class, as the other overloaded methods in the base class are no longer available to the derived class. Access modifiers affect the use of overriding. If for example a method is declared as private then the overriding method may not reduce the level of access to the method.

2. (a) Consider the code:

int x[] = new int[25];

Explain why each of the following statements are either true of false:

i. x[24] is 0

ii. x[24] is undefined

iii. x[25] is 0

iv. x[0] is null

v. x.length is 25

 [10 marks ] Answer: (a) i. is true as all elements are initialised to 0. [2 marks] ii. is therefore false. [1 marks] iii. is false as there are 25 elements 0 to 24, so 25 is out of bounds. [3 marks] iv. is false as x[0] = 0. [2 marks] v. is true as there are 25 elements so 25 would be returned. [2 marks]

14

TCC 101

(b) Consider the following program code

int[] alpha = new int[5]; int j; i. What is the value of alpha[4] after the following code executes?

alpha[0] = 2; for (j = 1; j < 5; j++) alpha[j] = alpha[j – 1] + 3;

 [2 marks ] Answer: 14 ii. What is stored in alpha after the following code executes? for (j = 0; j < 5; j++) { alpha[j] = 2 * j; if (j % 2 == 1) alpha[j - 1] = alpha[j] + j; } [5 marks ] Answer: alpha = {3, 2, 9, 6, 8} Iii. What is the value of alpha[3] after the following code executes? alpha[0] = 5; for (j = 1; j < 5; j++){ if (j % 2 == 0) alpha[j] = alpha[j – 1] + 2; else alpha[j] = alpha[j – 1] + 3; } [3 marks ]

15

TCC 101

3. (a) Explain the function of a LayoutManager in Java? Give THREE examples of standard layout manager class.

[6 marks ]

Answer: A LayoutManager implements some policy for laying out all the visual components that have been added to a container. That is, it sets the sizes and positions of the components. Different types of layout managers have different rules about how components are to be arranged Some standard layout manager classes are FlowLayout, BorderLayout and GridLayout [3 marks for the function given and 3 marks for three examples given]

(b) What layout manager should we use for the following needs?

need to display a component in as much space as it can get

need to put the space-hungry component in the center

need to display a few components of the same size in rows and columns.

[6 marks ]

Answer: In the case where you need to display a component in as much space as it can get, if it is the only component in its container, use GridLayout or BorderLayout. Otherwise, BorderLayout might be a good match.

If you use BorderLayout, you will need to put the space-hungry component in the center. In another case, you may need to display a few components in a compact row at their natural size. Then, consider using FlowLayout manager.

Finally GridLayout is perfect when you need to display a few components of the same size in rows and columns. [2 marks for the each needs, maximum 6 marks for three needs]

(c) Compare and contrast applets to applications. When would one choose to use applets over applications? What are the limitations of applets? Describe the lifecycle of applets and applications. Can an application be an applet?

[8 marks ]

Answer: An applet is a specific type of Java application that is designed to be portable and downloadable over the Internet. For this reason an applet may only contain a subset of the total functionality of an application. For example, an applet cannot have access to local files on a machine; otherwise it is theoretically possible for a hostile applet to upload (to some destination) the contents of a local machine. This type of hostile applet also includes applets that may try to use all CPU available, or contact remote sites, without your permission. These too are not allowed. Applications on the other hand are assumed to be trusted, as they reside on the local hard disk. These applications have full access to the local hard-drive and to all network addresses.

16

TCC 101

An applet would be chosen when an application must be distributed to a number of clients who trust, or don’t trust the content. They allow a local version to reside on the server, so only one copy exists, allowing complete version control.

An application on the other hand does not contain the inherent restrictions and so must be completely trusted by the client. An independent version is distributed to each client so there is not the same degree of version control as that associated with applets. There is no overhead in downloading the application before running it. You also do not have to be connected to the Internet to run an application.

The order of execution of an applet is main() and then whatever functionality that is involved in main()

In an applet the order is init() -> start() -> paint() and stop() on the destruction. These calls may happen asynchronously.

An application may be an applet and an application. This is created by extending the Applet class (java.awt.Applet) and then adding a main() method to the Applet class by calling the init()->start()->paint() methods in the order that the appletviewer would.

4. (a) What are Exceptions in Java? Why and when are they used? Give an

application example of how you might use your own exceptions?

[10 marks] Answer: Exceptions are generated during program execution if something occurs that is not quite normal from the task in question. For example the network may fail, a file may be corrupt or there may be a bug in the application the causes it to address invalid memory. In Java we may recover from this type of run time error, allowing the user to choose a different file, or check the network before continuing. The syntax we can use is in the form of try{} and catch{}

try{ // Some statement that may generate an exception

}

catch (Exception e){ // perform some operation to recover

}

We may write our own type of exception for our application. For example if we wrote a method that required a non-negative number and a negative number was passed, we could generate an InvalidNumberArgument exception that was to be handled by the caller, allowing the user to re-enter the number or for that number to be skipped.

[3 marks for definition; 3 marks for why and when they used; 4 marks for an valid application]

17

TCC 101

(b) What is the ‘finally’ block?

[4 marks]

Answer: Finally block will execute whether or not an exception is thrown. If an exception is thrown, the finally block will execute even if no catch statement match the exception. Any time a method is about to return to the caller from inside try/catch block, via an uncaught exception or an explicit return statement, the finally clause is also execute.

(c) What will happen to the Exception object after exception handling?

[2 marks]

Answer: It will go for Garbage Collector. And frees the memory.

(d) In the following program, if somecondition() is true, then only line number 3

must throw a custom exception MyException. MyException is not a subclass of

runtime exceptions. What are the changes to be made to the given method.

 Public void method() { //line 1 If (somecondition()) { //line 2 } //line 3 } //line 4