CSCI 150, Spring 2003
Home | | Course Schedule | | Assignments | | Lecture Notes
Practice Problems
The following problems are intended to help you study for the exam.
1)Given these boolean variables:
x = true, y = false, z = true
What is the value (true/false) of each of the following?
i) x and (y or z)
Answer: true
ii) (not x) or (not(y and z))
Answer: true
iii) y or (x and not z)
Answer: false
2)Write a program that does the following:
Prompt the user to input a number.
Input the number from the keyboard
If the number is less than 100, write:
XX is a low number.
where XX refers to the number inputted by the user.
Otherwise, write:
XX is a high number.
program lowOrHigh;
var
number : integer;
begin
writeln('Enter a number:');
readln(number);
if number < 100 then
begin
writeln(number, ' is a low number.');
end
else
begin
writeln(number, ' is a high number.');
end;
end.
3) Compute the value of the following expressions:
a) 6 / 3 * 2
Answer: 4
b) (17 - 11) / 3 + 3
Answer: 5
c) Add parentheses to part b so that the addition is performed
before the division.
Answer: (17 - 11) / (3 + 3)
d) What is the value of c) ?
Answer: 1
4) a) What is the value of sum after the execution of the following code?
sum := 0; for counter := 1 to 4 do begin sum := sum + 2 * counter; end; Answer: 20
5) What is the output of the following code fragment (mySentence and partial are both strings)?
mySentence := 'It was a dark and stormy night'; partial := copy(mySentence, 8, 6); writeln(partial); Answer: a dark6) What is wrong with the following fragments of Pascal?
program p1;
var
p2: integer
begin
p2 := 1;
end.
Answer: The semi-colon after the word integer is missing (on line 3).
program s1;
var
s2: string;
begin
s2 := '1';
end.
Answer: The indentation is inconsistent and confusing.
program r1;
begin
if true then
writeln('Truth is beauty.');
end;
end.
Answer: The word begin is missing after the 'if true then' line (line 3).
program t1;
var
circumference: real;
radius: real;
begin
circumference := 3.14159265 radius * radius;
end.
Answer: The * is missing between 3.14159265 and radius.
7) Consider the following while loop: sum := 0; count := 5; while count <= 10 do begin sum := sum + count; count := count + 1; end;
a) Fill in the following table for the values of count and sum each time through the loop (there may be more rows than you need in the table):
b)Write a for loop that does the equivalent of the above loop.
sum := 0; for count := 5 to 10 do begin sum := sum + count; end;
8. Consider the following pascal code:
program z3;
var
sum,i: integer;
begin
sum := 0;
for i :=1 to 4 do
begin
sum := sum + i;
end;
writeln(sum);
end.
What is value of sum printed on the screen?
Answer: 10
9. Fill in/write the necessary code for the following decision tree.
program catCheck (input, output);
var
answer : string;
begin
writeln('Do you have a cat?');
readln(answer);
if answer = 'yes' then
begin
writeln('What kind is it?');
readln(answer);
if answer = 'Siamese' then
begin
writeln('Good choice!');
end
else if answer = 'Tiger' then
begin
writeln('Another good choice.');
end
else if answer = 'Calico' then
begin
writeln('I have never had that kind.');
end;
end
else
begin
writeln('You should get one.');
end;
end. {end of main program catCheck}
10. Fill in the necessary code to fill in the depositList array with deposit amounts entered by the user. You should keep track of the sum of all the deposits made, so that the print statement at the end of the program makes sense. You can assume there are exactly 1000 deposits made.
program deposit;
type
realArray : array [1..1000] of real;
var
loop : integer;
sum : real;
depositList : realArray;
begin
sum := 0;
for loop := 1 to 1000 do
begin
writeln('Enter deposit');
readln(depositList[loop]);
sum := sum + depositList[loop];
end;
writeln ('The sum of the deposits: $', sum:5:2);
end;