mockmidterm2

advertisement
CMPT 111
Mock
Midterm 2
2010-2011 Term 1
This practice exam was
prepared for you by your SSS
coach (not your professor!).
It is designed to help you test
yourself on the topics covered
in class and should not be
considered as a preview of the
actual midterm.
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
Section 1: Multiple Choice
Circle the correct answer to the following questions.
1. What type of array would you use to store your first name?
a. Integer Array
b. String Array
c. Character Array
d. Name Array
2. What type of errors will the compiler identify for you?
a. Syntax Errors
b. Logic Errors
c. Erroneous Errors
3. A function can have no parameters.
a. True
b. False
4. A function can have no return value.
a. True
b. False
5. Can a function call itself?
a. Yes
b. No
6. Which of these will result in an infinite loop?
a. A recursive function without a recursive case
b. A recursive function without a base case
c. A recursive function with a recursive case and a base case
7. Everything you can do with a loop you can do with recursion.
a. True
b. False
8. What would be the base case for a recursive function to calculate the sum of all numbers from 0
to an arbitrary number n?
a. If (n == 1) return 1;
b. If (n == 0) return 0;
c. If (n == 1) return 0;
d. If (n == 0) return 1;
e. If (n < 1) return 1;
9. What’s the best way to understand recursion?
a. Don’t think about it
b. Trace it out on paper
10. Bonus: What was the first computer “bug”?
a. Cricket
b. Moth
c. Mosquito
d. Housefly
2
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
Section 2: Short Answer
Answer the following short answer questions in the space below.
1. The square bracket operator [ ] can be used in two different ways. Name these ways and give
an example for each.
2. The problem solving process is listed below in the wrong order. Put it in the right order.
Translate pseudo-code into code.
Understand the task.
Check your method critically.
Test the program.
Figure out how to perform the task.
Write down the step-by-step method.
3. What is the difference between pass-by-value and pass-by-reference functions? Give examples of
each one.
3
CMPT 111 Mock Midterm 2
2010-2011
Section 3: Function Headers
Fill in the function headers for the following functions.
1. C++
// Put function header here
{
if (purple)
cout << “Purple”;
return a % b;
}
2. Pseudocode
for (int i  0; i < size; i++)
array[i] = size – i
return
3. Pseudocode
int a = 5
int b = 6
int c[5] = {1, 2, 3, 4, 5}
if (true)
return a + b + 1.2
else
return c[0] + c[4] + b
University Learning Centre
4
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
Section 4: Program Output
Write down what would be output to the screen if you were to run this program.
1. C++
#include <iostream>
using namespace std;
int average(int numbers[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += numbers[i];
cout << “Sum so far is: ” << sum;
}
return sum / size;
}
int main() {
int descending[6] = {5, 4, 3, 2, 1, 0}
cout << “Average: ” << average(descending, 3 * 2);
cout << “Nozero average: ” << average(descending, 3 + 2);
return 0;
}
Output (Write in the space below)
> g++ my_program.cpp
> ./a.out
5
CMPT 111 Mock Midterm 2
2010-2011
Section 5: C++ Errors
Cross out the errors in this C++ program and correct them.
using namespace std;
float main() {
PrintNumAndChar(‘8’, 9);
int myArray[6] = {1, 2, 3, 4, 5}
myArray[6] = 6;
myArray[1] = 1.5;
return 7;
}
printNumAndChar(a, b) {
cout << (a + 1) << b;
}
int[][] seven(int array [5][]) {
for (int i = 0; i < size; i++)
array[0][i] = six(6);
return array;
}
void six()
return 6;
University Learning Centre
6
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
Section 6: Function Creation
Create a function to accomplish the following problems. Use the header given.
Please note: Do not use recursion in your answers.
1. Pseudocode
Write a function to figure out the factorial of a number.
Example: factorial(5) = 5! = 5 * 4 * 3 * 2 * 1 = 120
int factorial(int n)
2. C++
Write a function to initialize a two-dimensional array with all zeroes.
void initialize2dArray(int array[][10], int size) {
7
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
3. Pseudocode
Write a function that checks whether or not two arrays have all the same elements, regardless
of the order.
For instance:
Array 1 – 1, 4, 6, 7 and Array 2 – 4, 6, 1, 7 both have the same elements in a different order.
Please note: This is a large task, so it is recommended to use abstraction to break it into several
smaller problems. Therefore, write additional functions to help make this problem easier.
bool sameElements(int array1[], int array1size, int array2[], int array2size)
8
CMPT 111 Mock Midterm 2
2010-2011
University Learning Centre
Section 7: Recursion (BONUS!)
Write a recursive function in C++ to solve the task listed below.
Sort an array of integers. The array will always be a size that is a power of 2, such as 1, 2, 4, 8, 16, etc.
This should be a clue as to how I envision the problem being solved.
Good luck, this is very difficult.
void sort(__________________________________________________________________________) {
9
Download