V22.0101 Intro to CS I Fall 1998

The exam is Weds. Dec 23, from 2:00 to 3:50pm. Section 2 (Boppana) will be in the MAIN BUILDING on the second floor, room 207. The Marateck sections will be on the 4th floor of the MAIN BUILDING. (Section 3: Rooms 406 and 408; Section 4: Room 407).

Sample Exam Questions

  1. Write a procedure using the while statement which reads integers, one per line, from the input and adds them up, stopping when the number 0 is read. It should then print the sum and the number of integers which were read, not counting the 0.

  2. Write another procedure which does the same thing using the repeat statement.

  3. Write a Pascal program to print out the Fibonacci numbers 0, 1, 1, 2, 3, 5, 8, 13, 21 (each number being obtained by adding the previous two together). Stop when the numbers exceed 1000.

  4. Write an integer-valued function which takes as a parameter an integer n and returns the value 1 + 2 + ..+ n. For example, if n has the value 5 the function should return the value 15, and if n has the value 2 the function should return the value 3. If n = 0 return the value 0.

  5. Write a function named sum_divisors which takes an integer parameter N, and returns the sum of all integers in the range 1 to N-1 that divide into N exactly (with zero remainder). For example, suppose N has the value 6. The numbers 1, 2 and 3 all divide exactly into 6, but 4 and 5 do not. So, since 1 + 2 + 3 = 6, sum_divisors(6) should be 6. Now suppose N has the value 9. The numbers 1 and 3 divide exactly into 9, but no other number less than 9 does. So, since 1 + 3 = 4, sum_divisors(9) should be 4. You can assume that N >1.

  6. Assume the declaration
        type IntArray = array[1..max] of integer;  
            {assume max has been declared in a const statement}
    Write a procedure which takes one parameter: a variable parameter X of type IntArray. Assume that all of the elements (1 through max) of the array have been assigned values. The procedure should reverse the order of the elements of the array X. Thus the first element should be interchanged with the last, the second with the second-to-last, etc. Be sure the program works in both the case that max is even and the case when it is odd. For example, if the array has elements 5, 3, 17, 21, 2 on entry, then on exit it should have elements 2, 21, 17, 3, 5.

  7. Assume the declaration
    type BingoBoard = array [1..N, 1..N] of Boolean;
       {assume N has been declared in a const statement}

    Write a procedure named ReadBoard with one parameter B of type BingoBoard, which reads a pattern from an input file (consisting of X's and blanks, just as for the game of life data files) and sets each array element to either true or false depending on whether the corresponding file entry was an X or a blank. Just as in the game of life, do not assume that the file is padded with blanks. You must use while not eoln and while not eof.

  8. Write a Boolean function named RowBingo with one parameter B of type BingoBoard, and which returns the value true if B has a row with all N elements in the row set to the value true. Otherwise, the function returns the value false. Remember that the first index of the array is the row index. For example, if N = 5 and the board has the configuration
           F F T T T
           T F T T T
           F F T F F
           F T T F F
           T F T F F
    the function should return the value false.

  9. Using the same declarations as you used in the final database homework, write a procedure which searches for a given name in the database, and doubles the hourly pay for this person. Note: there will certainly be a question using arrays of records on the exam. Other possible sample questions would be similar procedures to the ones you wrote for the final homework.

  10. Consider the declarations
       type airport = (jfk, lga, ewr, dfw, sfo, lax);
            AirArray = array[airport, airport] of integer;
    Write a procedure which takes as input a variable miles of type AirArray, which stores the mileage between airports. For example, miles[lga,jfk] is the distance in miles between La Guardia and JFK. The procedure should return two parameters giving the pair of airports which are furthest apart.

Sam Marateck
Sat Dec 5 21:49:23 EST 1998