Sample Exam 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Sample Final Exam for CSCI 1301 (Java) Covers chapters 1-8

FINAL EXAM AND COURSE OUTCOMES MATCHING


COURSE OUTCOMES
Upon successful completion of this course, students should be able to
1. analyze and design strategies for solving basic programming problems.
2. use primitive data types, selection statements, loops, methods to write programs.
3. develop programs to solve a variety of problems in math, science, business, and
games.
4. use the step-wise refinement approach.
5. use arrays to store, process, and sort data.
6. use an IDE to develop programs.

Here is a mapping of the final comprehensive exam against the course outcomes:

Question Matches outcomes


Part I(a) 2
Part I(b) 2
Part I(c) 2
Part II(a) 2
Part II(b) 2
Part II(c) 2
Part II(d) 2
Part II(e) 2, 5
Part III(a) 1, 2, 3
Part III(b) 1, 2, 3, 4
Part III(c) 1, 2, 3, 4, 5
Part VI 1, 2, 3, 4, 5

1
Name:__________________ CSCI 1301 Final
Armstrong Atlantic State University
Covers chs 1-8 Instructor: Dr. 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.

I pledge by honor that I will not discuss the contents of this exam with
anyone.

Signed by ___________________ Date ___________________

Part I. (2 pts each)


a. How many times is the following loop body repeated? What is the
output of the loop?
int i = 0;
while (i < 10) {
if ((i + 1) % 2 == 0)
System.out.println(i);

i++;
}

b. Convert the following for loop into a do-while loop.

int sum = 0;
for (int i = 0; i < 100; i++) {
sum += i;
}

c. Convert the following if statement using a switch statement

// Find interest rate based on year


if (numOfYears == 7)
annualInterestRate = 7.25;
else if (numOfYears == 15)
annualInterestRate = 8.50;
else if (numOfYears == 30)
annualInterestRate = 9.0;
else {
System.out.println("Wrong number of years");
System.exit(0);
}

Part II: Show the output of the following code:

a: (2 pts)

public class Test1 {


public static void main(String[] args) {
int i = 1;
while (i < 10) {
System.out.print(i + " ");
i = i + 3;

2
}
}
}

b. (3 pts)
Suppose the input is 2 3 4 5 0. What is the output of the
following code?

import java.util.Scanner;

public class Test {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);

int number, max;


number = input.nextInt();
max = number;

while (number != 0) {
number = input.nextInt();
if (number > max)
max = number;
}

System.out.println("max is " + max);


System.out.println("number " + number);
}
}

c. (3 pts)
public class Test {
public static void main(String[] args) {
System.out.println(xMethod(5672));
}

public static int xMethod(int number) {


int result = 0;
while (number != 0) {
int remainder = number % 10;
result = result * 10 + remainder;
number = number / 10;
}

return result;
}
}

d. (3 pt)
public class Test {
public static void main(String[] args) {
int number = 0;
int[] numbers = new int[1];

3
m(number, numbers);

System.out.println("number is " + number


+ " and numbers[0] is " + numbers[0]);
}

public static void m(int x, int[] y) {


x = 3;
y[0] = 3;
}
}

e. (3 pt) Suppose the input is 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3


4. What is the output of the following code?
import java.util.Scanner;

public class Test {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);

double[][] m = new double[4][4];

for (int i = 0; i < 4; i++)


for (int j = 0; j < 4; j++)
m[i][j] = input.nextDouble();

System.out.print(ttt(m));
}

public static int ttt(double[][] m) {


int sum = 0;

for (int i = 0; i < m.length; i++)


sum += m[i][i];

return sum;
}
}

4
Part III: (Write programs)

1. (15 pts) Write a program that prompts the user to enter


an integer n (assume n >= 2) and displays its largest factor
other than itself.

5
2. (15 pts) Write a method to display a pattern as follows:

                             1 
                         4   1 
                     9   4   1 
                16   9   4   1 
            25  16   9   4   1 
... 

n*n ... 36  25  16   9   4   1 
 

The method header is

public static void displayPattern(int n)

import java.util.Scanner;

public class Test {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);

// Enter the number of lines


System.out.print("Enter n: ");
int n = input.nextInt();

displayPattern(n);
}

public static void displayPattern(int n) {


// Fill in the code here

}
}

6
3. (15 pts) Write the following method that returns true if
the list is already sorted in increasing order.
public static boolean isSorted(int[] list)

Write a test program that prompts the user to enter a list


and displays whether the list is sorted or not. Here is a
sample run. Note that the first number in the input
indicates the number of the elements in the list.

<Output>

Enter list: 8 10 1 5 16 61 9 11 1
The list is not sorted

<End Output>

<Output>

Enter list: 10 1 1 3 4 4 5 7 9 11 21
The list is already sorted

<End Output>

See the next page for the outline of the program:

7
public class Test {
public static void main(String[] args) {
// Fill in the code here

public static boolean isSorted(int[] list) {


// Fill in the code here

}
}

8
Part IV: 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. 24 % 5 is _____

A. 2
B. 0
C. 4
D. 1
E. 3

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

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

#
3. What is the result of 45 / 4?

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

#
4. In Java, the word true is ________.

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

#
5. The following code displays ___________.

double temperature = 50;

if (temperature >= 100)


System.out.println("too hot");
else if (temperature <= 40)

9
System.out.println("too cold");
else
System.out.println("just right");

A. too hot
B. too cold
C. too hot too cold just right
D. just right

#
6. The "less than or equal to" comparison operator in Java is __________.

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

#
7. Analyze the following code fragments that assign a boolean value to the variable even.

Code 1:
if (number % 2 == 0)
even = true;
else
even = false;

Code 2:
even = (number % 2 == 0) ? true: false;

Code 3:
even = number % 2 == 0;

A. Code 3 has a syntax error, because you attempt to assign number to even.
B. Code 2 has a syntax error, because you cannot have true and false literals in the
conditional expression.
C. All three are correct, but Code 1 is preferred.
D. All three are correct, but Code 2 is preferred.
E. All three are correct, but Code 3 is preferred.

#
8. How many times will the following code print "Welcome to Java"?

int count = 0;
do {
System.out.println("Welcome to Java");
} while (count++ < 10);

10
A. 10
B. 8
C. 0
D. 9
E. 11

#
9. What is the value in count after the following loop is executed?

int count = 0;
do {
System.out.println("Welcome to Java");
} while (count++ < 9);
System.out.println(count);

A. 11
B. 0
C. 9
D. 8
E. 10

#
10. What is the number of iterations in the following loop:

for (int i = 1; i <= n; i++) {


// iteration
}

A. 2*n
B. n
C. n - 1
D. n + 1

#
11. What is the output for y?

int y = 0;
for (int i = 0; i<10; ++i) {
y += i;
}
System.out.println(y);

A. 45
B. 12
C. 13
D. 10
E. 11

11
#
12. What is i after the following for loop?

int y = 0;
for (int i = 0; i<10; ++i) {
y += i;
}

A. 9
B. 10
C. undefined
D. 11

#
13. __________ is to implement one method in the structure chart at a time from the top
to the bottom.

A. Stepwise refinement
B. Top-down approach
C. Bottom-up and top-down approach
D. Bottom-up approach

#
14. Analyze the following code.

public class Test {


public static void main(String[] args) {
System.out.println(max(1, 2));
}

public static double max(int num1, double num2) {


System.out.println("max(int, double) is invoked");

if (num1 > num2)


return num1;
else
return num2;
}

public static double max(double num1, int num2) {


System.out.println("max(double, int) is invoked");

if (num1 > num2)


return num1;
else
return num2;

12
}
}

A. The program runs and prints 2 followed by "max(double, int)" is invoked.


B. The program cannot compile because the compiler cannot determine which max
method should be invoked.
C. The program runs and prints "max(int, double) is invoked" followed by 2.
D. The program runs and prints 2 followed by "max(int, double)" is invoked.
E. The program cannot compile because you cannot have the print statement in a non-
void method.

#
15. Analyze the following code:

public class Test {


public static void main(String[] args) {
System.out.println(xMethod(5, 500L));
}

public static int xMethod(int n, long l) {


System.out.println("int, long");
return n;
}

public static long xMethod(long n, long l) {


System.out.println("long, long");
return n;
}
}

A. The program does not compile because the compiler cannot distinguish which
xmethod to invoke.
B. The program runs fine but displays things other than 5.
C. The program displays long, long followed by 5.
D. The program displays int, long followed by 5.

#
16. What is Math.floor(3.6)?

A. 5.0
B. 3
C. 3.0
D. 4

#
17. How many elements are in array double[] list = new double[5]?

13
A. 5
B. 4
C. 6
D. 0

#
18. The reverse method is defined in the textbook. What is list1 after executing the
following statements?

int[] list1 = {1, 2, 3, 4, 5, 6};


list1 = reverse(list1);

A. list1 is 6 5 4 3 2 1
B. list1 is 1 2 3 4 5 6
C. list1 is 0 0 0 0 0 0
D. list1 is 6 6 6 6 6 6

#
19. If you declare an array double[] list = {3.4, 2.0, 3.5, 5.5}, list[1] is ________.
a. 3.4
b. 2.0
c. 3.5
d. 5.5
e. undefined

#
20. In the following code, what is the output for list2?

class Test {
public static void main(String[] args) {
int[] list1 = {1, 2, 3};
int[] list2 = {1, 2, 3};
list2 = list1;
list1[0] = 0; list1[1] = 1; list2[2] = 2;

for (int i = 0; i < list2.length; i++)


System.out.print(list2[i] + " ");
}
}
a. 1 2 3
b. 1 1 1
c. 0 1 2
d. 0 1 3

#
21. What is the output of the following code?

14
double[] myList = {1, 5, 5, 5, 5, 1};
double max = myList[0];
int indexOfMax = 0;
for (int i = 1; i < myList.length; i++) {
if (myList[i] >= max) {
max = myList[i];
indexOfMax = i;
}
}
System.out.println(indexOfMax);
a. 0
b. 1
c. 2
d. 3
e. 4

#
22. Suppose a method p has the following heading:

public static int[][] p()

What return statement may be used in p()?

a. return 1;
b. return {1, 2, 3};
c. return int[]{1, 2, 3};
d. return new int[]{1, 2, 3};
e. return new int[][]{{1, 2, 3}, {2, 4, 5}};

Please double check your answer before clicking the Submit


button. Whatever submitted to LiveLab is FINAL and counted
for your grade.

Have you submitted your answer to LiveLib? ______________

What is your score? ______________

15

You might also like