Exam 1

advertisement
Computer Science 101
Survey of Computer Science
Exam 1
Fall 2009
Name:
Pledged:
Note: You should not discuss this exam, in any way, with students who have not
taken the exam.
1. (40 points) Complete the following:
a. An important difference between pseudocode and a “real” programming language
is
b. The term
means that all intended computing
agents will interpret each step of the algorithm in exactly the same way.
c. Using the set of pseudocode statements covered in class, give a statement that will
allow the user to input a value for the variable age.
d. Repeat part c, but give a Python statement.
e. Write a pseudocode statement that assigns to the variable newValue, the sum of the
values of the variables firstValue and secondValue in the case that the value of
firstValue is larger than 100, and assigns to newValue the product of firstValue
and secondValue otherwise.
f. Repeat part g, but with Python.
g. Give the value of the following expressions as computed in Python:
37 / 4
37 - 4
37*4
37%4
h. A compiler is a computer program whose purpose is to
i. When a computer program runs to completion, but gives the wrong result, we say
the program has a/an
error.
j. In Python, to make use of one of the Python libraries like math or random, we
must use a/an
statement.
k. In Python, the symbol(s)
would be used instead of “≠”.
l. Both selection sort and bubble sort make passes through the list. We usually expect
sort to make many more exchanges than
sort.
m. A recursive algorithm is one that
One recursive algorithm that we have studied is
n. In the context of computer programming, the term
refers to what is supposed to happen when the various statements are executed,
while the term
statements in the language.
refers to the formal rules for legal
2. (15 points) a. Show what the following list of data would look like after the first pass
of the Selection Sort algorithm:
1
2
3
4
5
19
18
1
2
7
6
7
8
9
10
11
12
10
39
29
3
26
40
22
12
17
4
5
6
7
8
9
10
11
12
Pass 1:
3
b. Beginning with the original data, show what the list would like after the first pass of
the Selection Sort algorithm.
Pass 1:
1
2
3
4
5
6
7
8
9
10
11
12
c. Beginning with the original data, indicate which element would be chosen for the
Quick Sort pivot element using the scheme covered in the course, and show exactly
what the list would look like after the first partitioning pass in executing the Quick
Sort algorithm.
1
2
3
4
19
18
7
10
5
39
6
7
8
9
10
11
29
3
26
40
22
12
9
10
12
17
Pivot element:
After partitioning:
1
2
3
4
5
6
7
8
11
12
3 .(20 points) Consider the following algorithm given in pseudocode. For Step 5, we
mean that we should divide the whole number F into the whole number N and R
should become the remainder that is left after this division. For example, if N=20 and
F= 8, then the quotient of N divided by F is 2 with a remainder of 4; so R would
become 4.
Step
Operation
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Get N
Set P to 1
Set F to 2
While F2  N do
Set R to the remainder of N divided by F
If R = 0 then
Set P to 0
Set F to F + 1
End-of-loop
Print P
Stop
a. Step through the algorithm carefully, assuming that the user inputs a value of 15 at
Step 1. In the table below show the step number of the step being executed and on
that line, show the value of any variable that is “Set” at that step. In the output
column, show the output given when step 10 is executed. Be sure to include steps
like step 4 and 6 even if they don’t give new values to variables
Step
1
N
15
P
F
R
Output
b. Convert the pseudocode algorithm of part a) into Python.
4. (15 points) Using the pseudocode covered in class or Python-like statements
a. Write an algorithm that has the user enter values for variables num1 and num2.
Then the algorithm should assign to the variable product the product of num1 and
num2. Finally the value of product should be displayed.
b. Write an algorithm (using a loop) that has the user input a series of numbers (both
positive and negative) ending with a 0. The algorithm should display the number
that has the largest square. For example, if the numbers are 5, -6, 7, -3, 0, the
program should output 7. If the numbers are 5, -6, -3, 4, 0, the program should
output -6. For partial credit, just have the program output the largest number.
Note: You should not use lists or lots of variables.
5. (10 points) For this problem, assume that myList is a Python list that already has 300
numbers in it.
a. Write a Python statement that will print out the smaller of the first two numbers in
the list.
b. Write statements that will determine and print out the smallest of the numbers in
the list.
Download