# AP Computer Science Midterm Exam

Approved & Edited by ProProfs Editorial Team
The editorial team at ProProfs Quizzes consists of a select group of subject experts, trivia writers, and quiz masters who have authored over 10,000 quizzes taken by more than 100 million users. This team includes our in-house seasoned quiz moderators and subject matter experts. Our editorial experts, spread across the world, are rigorously trained using our comprehensive guidelines to ensure that you receive the highest quality quizzes.
| By KretschK
K
KretschK
Community Contributor
Quizzes Created: 9 | Total Attempts: 6,801
Questions: 20 | Attempts: 1,625

Settings

Is your midterm exam for AP Computer Science nearby? Do you want to evaluate your preparation level for this upcoming exam? Try out these quiz questions and answers and test your knowledge for the same. AP (Advanced Placement) Computer Science A is an introductory college-level computer science course and examination for high school students to cultivate their understanding of programming skills. Play the quiz below and see how good your coding abilities are. Best of luck, techie!

• 1.

### Consider the following declaration:        final double FEE = 0.50; The value of the variable FEE cannot subsequently be altered in the program, and any attempt to do so will be caught by the compiler.

• A.

True

• B.

False

A. True
Explanation
The given declaration states that the variable FEE is declared as final, which means its value cannot be changed once it is assigned. This is indicated by the keyword "final" before the data type. Since the value of FEE is set to 0.50, it cannot be altered later in the program. If there is any attempt to modify the value of FEE, the compiler will catch it and throw an error. Therefore, the statement "The value of the variable FEE cannot subsequently be altered in the program, and any attempt to do so will be caught by the compiler" is true.

Rate this question:

• 2.

### The following lines of code will swap the contents of the integer variables x and y: int z; x=y; y=z; z=x;

• A.

True

• B.

False

B. False
Explanation
The given code will not swap the contents of the integer variables x and y. This is because the variable z is not assigned any value before it is assigned to x. Therefore, when z is assigned to y, and then x is assigned to z, the original values of x and y will not be preserved and the swap will not occur.

Rate this question:

• 3.

### The expression  !(a||b) is equivalent to (!a)&&(!b)

• A.

True

• B.

False

A. True
Explanation
The expression !(a||b) represents the negation of the logical OR operation between variables a and b. This means that the expression will be true only if both a and b are false. On the other hand, the expression (!a)&&(!b) represents the logical AND operation between the negations of variables a and b. This expression will also be true only if both a and b are false. Since both expressions have the same conditions for being true, they are equivalent. Therefore, the answer is true.

Rate this question:

• 4.

### When Java evaluates the boolean expression                    (num >= 0 && num <= 100) the final value of the expression is determined only after both sub-expressions (num >= 0, num <= 100) are evaluated.

• A.

True

• B.

False

B. False
Explanation
The given statement is false. In Java, when evaluating a boolean expression with the "&&" operator, the second sub-expression is only evaluated if the first sub-expression is true. This is known as short-circuit evaluation. Therefore, if the first sub-expression (num >= 0) is false, the second sub-expression (num

Rate this question:

• 5.

### String word = “computer”; System.out.println(word.substring(3,6));       The output of the code above would be: mpu

• A.

True

• B.

False

B. False
Explanation
The output of the code above would be "put". The substring method in Java returns a new string that is a substring of the original string. In this case, the substring starts at index 3 (inclusive) and ends at index 6 (exclusive), so it includes the characters at indices 3, 4, and 5, which are "p", "u", and "t" respectively. Therefore, the correct answer is False.

Rate this question:

• 6.

### After the following code is executed, the value of x is 4 int x = 7; x += 4;

• A.

True

• B.

False

B. False
Explanation
The value is actually 11

Rate this question:

• 7.

### The ________ of a variable is that section of the program in which the variable exists.

• A.

Client

• B.

Definition

• C.

Scope

• D.

Constructor

• E.

Object

C. Scope
Explanation
The scope of a variable refers to the section of the program in which the variable exists. It determines the visibility and accessibility of the variable within the program. The scope defines where the variable can be used and accessed, and it helps in avoiding conflicts and maintaining the integrity of the program.

Rate this question:

• 8.

### A(n) ________ is a class method that is automatically called whenever an object of that class is created.

• A.

Client

• B.

Definition

• C.

Scope

• D.

Constructor

• E.

Object

D. Constructor
Explanation
A constructor is a class method that is automatically called whenever an object of that class is created. It is responsible for initializing the object's state and allocating memory for it. The constructor typically takes parameters to set initial values for the object's attributes. By calling the constructor, the object is created and ready for use.

Rate this question:

• 9.

### Consider the following code segment:     String S = “ILoveJava”;     System.out.print(S.substring(1,5)); What is output when this code segment is executed?

• A.

ILove

• B.

ILov

• C.

LoveJ

• D.

Love

• E.

LoveJava

D. Love
Explanation
The code segment uses the substring() method to extract a portion of the string S. The method takes two parameters, the starting index (inclusive) and the ending index (exclusive). In this case, the starting index is 1 and the ending index is 5. Therefore, the substring that is extracted from S is "Love". The print statement then outputs this substring.

Rate this question:

• 10.

### Assume x and y are String variables with x = “Smile” and y = null. The result of (x == y) is

• A.

True

• B.

False

• C.

Syntax error

• D.

Exception

• E.

X being set to null

B. False
Explanation
The result of (x == y) is false because the == operator checks for reference equality. In this case, x and y are two different objects in memory. x is referencing the string "Smile" while y is referencing null. Since they are not referencing the same object, the comparison evaluates to false.

Rate this question:

• 11.

### Assume x and y are String variables with x = “Smile” and y = null. The result of  x.length( )+ y.length( ) is

• A.

0

• B.

5

• C.

6

• D.

9

• E.

Exception

E. Exception
Explanation
The given code will throw an exception because we are trying to access the length of a null object (y). Since y is null, it does not have a length property, resulting in a NullPointerException.

Rate this question:

• 12.

### The following method determines whether any character occurs more than once in the given String.  However, the method has a bug.           boolean ContainsDouble(String S ) {          int n;                   for ( n=1; n < S.length( ); n++ )  {              if (S.charAt(0) == S.charAt(n)) return true;          }          return false;     } For which of the following String parameters would method ContainsDouble correctly return the value true? I. “dttd”    II. “xxxx”    III. “look”

• A.

I only

• B.

II only

• C.

I and II

• D.

I and III

• E.

II and III

C. I and II
Explanation
The given method checks if the first character of the string is equal to any other character in the string. If it is, then it returns true. If not, it continues checking until the end of the string and then returns false.

For the first string "dttd", the first character 'd' occurs again at index 3, so the method correctly returns true.

For the second string "xxxx", the first character 'x' occurs again at index 1, so the method correctly returns true.

For the third string "look", the first character 'l' does not occur again in the string, so the method incorrectly returns false.

Therefore, the method correctly returns true for the strings I and II.

Rate this question:

• 13.

### Assume that x and y are int variables with x = 8, y = 3, and a and d are char variables with a =‘c’ and d =‘D’, and examine the following conditions: Condition 1:  !(true && false) Condition 2:  (a != d || x != 8) Condition 3:  (x < y && x > 0) Condition 4:  (x > y || a == ‘D’ || d != ‘D’)

• A.

A 4 conditions are true

• B.

Only condition 2 is true

• C.

Only conditions 2 and 4 are true

• D.

Only condition 3 is false

• E.

All four conditions are false

D. Only condition 3 is false
Explanation
Condition 3 states that x is less than y and greater than 0. Since x is 8 and y is 3, this condition is false because 8 is not less than 3. Therefore, the correct answer is that only condition 3 is false.

Rate this question:

• 14.

### Consider the following method: int boo (int x, int y) {    x -= 2; ++y;    return x * y; } Consider the following code: int x = 7, y = -3, z; z = x + y + boo ( y, x ); What is z?

• A.

-36

• B.

-37

• C.

-6

• D.

-7

• E.

None of the above

A. -36
Explanation
The method "boo" takes two integers, subtracts 2 from the first integer (x) and increments the second integer (y) by 1. It then returns the product of the updated x and y values. In the given code, x is 7 and y is -3.
First, y is added to x, resulting in 7 + (-3) = 4.
Then, the method "boo" is called with y as the first argument and x as the second argument.
Inside the "boo" method, x becomes -5 (subtracting 2 from y) and y becomes 0 (incrementing y by 1).
The return value of the "boo" method is -5 * 0 = 0.
Finally, 4 + 0 = 4, so the value of z is 4.

Rate this question:

• 15.

### Consider the following code: int  b = 6; int c = 11; int a = b * (-c + 2) / 7; The value stored in a is:

• A.

-7.71428

• B.

-7.0

• C.

-7

• D.

-11.0

• E.

-11

C. -7
Explanation
The given code calculates the value of variable "a" using the expression "b * (-c + 2) / 7". Here, b is 6 and c is 11. So, substituting the values, the expression becomes 6 * (-11 + 2) / 7. Simplifying further, we have 6 * (-9) / 7, which is -54 / 7. Dividing -54 by 7 gives us approximately -7.71428. Therefore, the value stored in variable "a" is -7.71428.

Rate this question:

• 16.

### Consider the following swap method.  public void sillyStrings(String a, String b) {     a = a + “One”;     b = b + a; } If String x = “Hello” and String y = “Goodbye”, then sillyStrings(x, y); results in which of the following?

• A.

X is now “HelloOne” and y is “GoodbyeHelloOne”

• B.

X is still “Hello” and y is now “HelloOne”

• C.

X and y remain unchanged

• D.

X and y are now aliases

• E.

X is now “GoodbyeOne” and y is now “HelloGoodbyeOne”

C. X and y remain unchanged
Explanation
The swap method does not modify the original strings x and y because strings are immutable in Java. Therefore, any modifications made inside the method do not affect the original variables. As a result, x and y remain unchanged after calling the sillyStrings method.

Rate this question:

• 17.

### Consider a Point class with the following constructors and methods instance data description private int myX the current x coordinate private int myY the current y coordinate Methods description Point () Default constructor: Initialize the point to (0,0) Point(int x, int y) Another constructor: Initialize the point to (x,y) void SetX(int x) Set the x coordinate to the given value void SetY (int y) Set the y coordinate to the given value int GetX() return the x coordinate int GetY() return the y coordinate Which of the following code segments correctly defines a Point variable that represents the point 3,5? Segment I  Point P();   P.myX = 3;  P.myY = 5;   Segment II Point P();    P.SetX(3); P.SetY(5); Segment III Point P(3,5);

• A.

I only

• B.

II only

• C.

III only

• D.

I and II

• E.

II and III

E. II and III
Explanation
Segment II and III correctly define a Point variable that represents the point (3,5). In Segment II, a Point object is created using the constructor Point(int x, int y), and then the SetX and SetY methods are used to set the x and y coordinates to 3 and 5 respectively. In Segment III, a Point object is directly created using the constructor Point(int x, int y) with the values 3 and 5 passed as arguments.

Rate this question:

• 18.

### Consider a Point class with the following constructors and methods instance data description private int myX the current x coordinate private int myY the current y coordinate Methods description Point () Default constructor: Initialize the point to (0,0) Point(int x, int y) Another constructor: Initialize the point to (x,y) void SetX(int x) Set the x coordinate to the given value void SetY (int y) Set the y coordinate to the given value int GetX() return the x coordinate int GetY() return the y coordinate Assume that P is a Point object that represents the point x,y.  Which code segment correctly changes P to represent y,x? A)  P.SetX (P.GetY( )); P.SetY (P.GetX( )); B) P.GetX( ) = P.GetY( ); P.GetY( ) = P.GetX( ); C int tmp = P.myX; P.myX = P.myY; P.myY = tmp; D) int tmp = P.GetX( ); P.SetX(P.GetY( ) ); P.SetY(tmp);

• A.

A

• B.

B

• C.

C

• D.

D

C. C
Explanation
In option C, the code segment correctly changes P to represent y,x. It creates a temporary variable tmp and assigns it the value of P.myX. Then, it assigns P.myY to P.myX and finally assigns tmp to P.myY. This effectively swaps the values of P.myX and P.myY, resulting in P representing y,x.

Rate this question:

• 19.

### For questions 16 and 17, use the following class definition: public class StaticExample { private static int x; public StaticExample (int y) { x = y; } public int incr( ) { x++; return x; } }   16) What is the value of z after the third statement executes below? StaticExample a = new StaticExample(12); StaticExample b = new StaticExample(5); int z = a.incr( );   A)  5 B)  6 C)  12 D) 13 E)  The code is syntactically invalid

• A.

5

• B.

6

• C.

12

• D.

13

• E.

Syntax error

C. 12
Explanation
An instance of StaticExample is created with a and initialized with a value of 12. At this point, the static variable x is set to 12.
Another instance b is created and initialized with a value of 5. The static variable x is updated to 5, which affects all instances.
The incr() method is called on instance a (which has x set to 5 now), incrementing x by 1. Therefore, the value of z after the third statement is executed is 6.

Rate this question:

• 20.

### Consider the following class public class StaticExample {     private static int x;     public StaticExample (int y) {         x = y;     }     public int incr( ) {         x++;         return x;     } } If there are 4 objects of type StaticExample, how many different instances of x are there?

• A.

4

• B.

3

• C.

1

• D.

0

• E.

Don't know

D. 0
Explanation
The variable "x" in the class StaticExample is declared as a static variable. Static variables are shared among all instances of a class. Therefore, regardless of the number of objects created (in this case, 4 objects), there will only be one instance of the static variable "x". So, the answer is 0.

Rate this question:

Quiz Review Timeline +

Our quizzes are rigorously reviewed, monitored and continuously updated by our expert board to maintain accuracy, relevance, and timeliness.

• Current Version
• Feb 05, 2024
Quiz Edited by
ProProfs Editorial Team
• Jan 14, 2013
Quiz Created by
KretschK

Related Topics