## Exam 1

### Instructions

• The exam consists of ten (10) questions. Be sure that you have all ten and that they are all legible.

• Read all questions and their instructions thoroughly before you begin. It is worth your time to plan ahead!

• You have also been given three blank pages. Use these sheets for your exam answers. Be sure to write your name on each sheet.

• The exam is worth sixty (60) points. Each question is worth six points.

• Points will be awarded based on your explicit answers. Partial credit will be given where possible, so show all of your work.

• Whenever you are asked to answer or describe "briefly", a one-sentence response should be enough to express the solution.

• Whenever you are asked to "# fill in the blank", you need only write the new code. You do not have to copy the other code from the problem.

• The exam lasts sixty (60) minutes. It is due at 1:45 PM.

### Problems

1. Write numeric expressions in Python for these value:
1. ```     4 + 3 * 2n-2
------------
10
```
2. the sum of the cubes of integers x and y
3. the number of seconds in 4 hours, 14 minutes, and 32 seconds
(There are sixty seconds in a minute, and sixty minutes in an hour.)

2. Write boolean expressions in Python for these conditions:
1. x is a factor of y (that is, x divides evenly into y)
2. age is at least 18 and state equals 'Iowa'
3. the string name contains a 'z'

3. Consider this code:
```    if x % 2 == 1:
if x**3 != 27:
x = x + 4
else:
x = x / 1.5
else:
if x <= 10:
x = x * 2
else:
x = x - 2
print(x)
```

What does this code print if x == 8?

4. The user enters the birthdays of, a and b, two people who were born on different days in the same year. Write Python code that prints a is younger if a's birthday comes before b's, and b is younger if b's birthday comes before a's.
```    a_month = int( input('Enter the month: ') )
a_day   = int( input('Enter the day  : ') )
b_month = int( input('Enter the month: ') )
b_day   = int( input('Enter the day  : ') )

# fill in the blank
```

5. Answer briefly each of these questions about algorithms and programs:
1. In what ways is an algorithm similar to a program?
2. In what ways is an algorithm different from a program?

6. Consider this code:
```    x = input('Enter a string: ')
y = 0
for i in x:
print(y, i)
y += 1
```

What does this code print if the user enters 'Felix'?

7. Write a Python loop to print the sum of all the odd numbers between 1 to n, for a given value of n. For example, the sum of the odds between 1 and 7 is 1 + 3 + 5 + 7 = 16.

8. Consider this code:
```    x = input('Enter a string: ')
y = 0
for i in x:
if i == 'a':
y += 1
print(y)
```

Write a while loop that does exactly the same thing as the for loop.

9. Answer briefly each of these questions about loops:
1. What does the break statement do in a loop?
2. What is a loop and a half?
3. What must the body of a while loop do that the body of a for loop does not need to do?

10. Suppose we want to censor a string in this way:
```    Enter the source     : eugene
Enter char to replace: e
Enter char to insert : *

Result: *ug*n*
```

Write Python code that prints out the characters in string str, only with character old_ch replaced with character new_ch.

```    str    = input('Enter the source     : ')
old_ch = input('Enter char to replace: ')
new_ch = input('Enter char to insert : ')

# fill in the blank

print('\nResult:', result)
```

Eugene Wallingford ..... wallingf@cs.uni.edu ..... October 7, 2014