SYCS-135 Introduction to Programming -
Fall 1999-2
Examination II - 100 points
Name:
___________ANSWER KEY_________________��� ID: _________________________
There are 36 questions on this exam.� The number of points N each question is worth in indicated by [N]
at the beginning of the question narrative.
You should read each question carefully before answering.� If you must erase, do so completely.� The Exam is closed book.
��������������� _A__
1.� [2] An example of a logical (Boolean)
expression is an arithmetic expression followed by a relational ��������������� ��������������� operator
followed by an arithmetic expression.
������������������������������� A)����������� True
������������������������������� B)����������� False
��������������� __A_
2.� [2] This question is about
short-circuit evaluation of logical expressions. Consider the following �������������������� ��������������� expression in some imaginary programming language
(not C++):
�������������������������������
������������������������������� � (N > 5) AND (K / N < 12)
�������������������������������
������������������������������� � If N equals 0 when this expression is
evaluated, which of the
������������������������������� � following statements about the expression is
true?
A)����������� It causes a divide-by-zero error
only if the language does not use short-circuit evaluation.
������������������������������� B)����������� It causes a divide-by-zero error
whether or not the language uses short-circuit evaluation.
������������������������������� C)����������� It never causes a divide-by-zero
error.
������������������������������� D)����������� It causes a divide-by-zero error
only if the language uses short-circuit evaluation.
��������������� _B__
3.� [2] The expression� !(n < 5)�
is equivalent to the expression�
n > 5.
������������������������������� A)���������� True
������������������������������� B)����������� False
��������������� _A__
4.� [2] Given the module description
�������������������������������
������������������������������� � PRINT AVERAGE (Level 1)
������������������������������� � Print a heading
������������������������������� � Print sumOfValues / countOfValues
�������������������������������
������������������������������� � the following is an appropriate module
precondition:
������������������������������� ��� "sumOfValues is assigned AND
countOfValues does not
������������������������������� ��� equal 0."
������������������������������� A)����������� True
������������������������������� B)����������� False
_A__ 5.� [2] The code
segment
�������������������������������
������������������������������� if
(speed <= 40)
������������� ����������������� ���cout << "Too slow";
������������������������������� if
(speed > 40 && speed <= 55)
������������������������������� �� cout << "Good speed";
������������������������������� if
(speed > 55)
������������������������������� �� cout << "Too fast";
�������������������������������
������������������������������� could
be written equivalently as
�������������������������������
������������������������������� � if (speed <= 40)
������������������������������� ������ cout << "Too slow";
������������������������������� � else if (speed <= 55)
������������������������������� ����� cout << "Good speed";
������������������������������� � else
������������������������������� ����� cout << "Too fast";
������������������������������� A)����������� True
B)
False
��������������� _E__
6.�� [2] Which of the following is not a
C++ relational operator?
������������������������������� A)���������� <
������������������������������� B)����������� !=
������������������������������� C)����������� ==
������������������������������� D)����������� >=
������������������������������� E)����������� &&
_C__
7.� [2] If p is a Boolean variable, which
of the following logical expressions always has the value FALSE?
��������������� A)���������� p && p
��������������� B)����������� p || p
��������������� C)����������� p && !p
��������������� D)����������� p || !p
��������������� E)����������� b and d above
��������������� _C__
8.� [2] Which logical operator (op) is
defined by the following table?
������������������������������� (T
and F denote TRUE and FALSE.)
�������������������������������
������������������������������� � P�
Q�� P op Q
������������������������������� � ------------
������������������������������� � T�
T�� T
������������������������������� � T�
F�� F
��������������� ��������������� � F� T�� F
������������������������������� � F�
F�� F
��������������� A)���������� OR
��������������� B)����������� NOT
��������������� C)����������� AND
��������������� D)����������� none of the above
��������������� _E__
9.�� [3] What is the output of the
following C++ code fragment?
������������������������������� � (Be careful here.)
�������������������������������
������������������������������� � int1 = 120;
������������������������������� � cin >> int2;���������� // Assume user types 30
������������������������������� � if ((int1 > 100) && (int2 = 50))
������������������������������� ��� int3 = int1 + int2;
������������������������������� � else
������������������������������� ��� int3 = int1 - int2;
������������������������������� � cout << int1 << ' ' <<
int2 << ' ' << int3;
������������������������������� A)���������� 120 30 150
������������������������������� B)����������� 120 30 90
������������������������������� C)����������� 120 50 70
������������������������������� D)����������� 120 30 70
������������������������������� E)����������� 120 50 170
��������������� _A__
10.��������������� [3] What is the value
of loopCount after control exits the following loop?
� ����������������������������� ��loopCount = 1;
������������������������������� � while (loopCount <= 145)
������������������������������� � {
������������������������������� ��� alpha = alpha + 7;
������������������������������� ��� loopCount++;
������������������������������� � }
������������������������������� A)����������� 146
������������������������������� B)����������� 1
������������������������������� C)����������� 145
������������������������������� D)����������� 144
��������������� _C__
11.��������������� [3] After execution of
the following code, what is the value of length?
������������������������������� � (count and length are of type int.)
�������������������������������
������������������������������� � length = 5;
������������������������������� � count = 4;
������������������������������� � while (count <= 6)
������������������������������� � {
������������������������������� ��� if (length >= 100)
������������������������������� ����� length = length - 2;
������������������������������� ��� else
������������������������������� ����� length = count * length;
������������������������������� ��� count++;
������������������������������� }
������������������������������� �
������������������������������� A)���������� 100
������������������������������� B)����������� 600
������������������������������� C)����������� 98
������������������������������� D)����������� 20
E)
none of the above
��������������� _E_
12.�� [3] What is the output of the
following code fragment? (finished is a Boolean variable, and firstInt ��������������������������������� and secondInt
are of type int.)
�������������������������������
������������������������������� � finished = FALSE;
������������������������������� � firstInt = 3;
������������������������������� � secondInt = 20;
��������������� ��������������� � while (firstInt <= secondInt && !finished)
������������������������������� ��� if (secondInt / firstInt <= 2)�� // Reminder: integer division
������������������������������� ����� finished = TRUE;
������������������������������� ��� else
������������������������������� ����� firstInt++;
������������������������������� � cout << firstInt << endl;
������������������������������� A)���������� 5
������������������������������� B)����������� 9
������������������������������� C)����������� 8
������������������������������� D)����������� 3
������������������������������� E)����������� 7
��������������� 13.� [2] The condition that causes a loop to be
exited is called the ___Termination Condition_____________.
��������������� 14.� [2] A(n) ____Sentinel________-controlled
loop is an event-controlled loop whose event is the input of a special value.
��������������� 15.� [2] A(n) ___Flag______________-controlled
loop is an event-controlled loop that uses a Boolean variable to record its
event.
��������������� 16.� [2] A(n) ___Priming Read________ is
an input statement located before the While loop that processes its input data.
��������������� _B_
17.�� [2] When parameters are passed
between the calling code and the called function, parameters and ����������������� ��������������� arguments are matched by:
������������������������������� A)���������� their names
������������������������������� B)����������� their relative positions in the
parameter and argument lists
������������������������������� C)����������� whether they are inputs to or
outputs from the function
������������������������������� D)����������� their data types
��������������� _E_
18.�� [2] Parameter passage by reference
is used if a parameter's data flow is
������������������������������� A)���������� one-way, into the function.
������������������������������� B)����������� one-way, out of the function.
������������������������������� C)����������� two-way, into and out of the
function.
������������������������������� D)����������� a and b above
������������������������������� E)����������� b and c above
��������������� _E_
19.�� [2] Given the function prototype
�������������������������������
������������������������������� � void Fix( int&, float );
�������������������������������
��������������� Which of the
following is an appropriate function call? (someInt is of type int, and
someFloat is of type float.)
��������������� A)���������� Fix(24, 6.85);
��������������� B)����������� someFloat = 0.3 * Fix(someInt,
6.85);
��������������� C)����������� Fix(someInt + 5, someFloat);
��������������� D)����������� a and c above
��������������� E)����������� none of the above
��������������� _B_
20.�� [3] Given the function definition
�������������������������������
������������������������������� � void Twist( int� a,
������������������������������� ������������� int& b )
������������������������������� � {
������������������������������� ����� int c;
�������������������������������
������������������������������� ����� c = a + 2;
������������������������������� ����� a = a * 3;
������������������������������� ����� b = c + a;
������������������������������� � }
�������������������������������
������������������������������� ��� what is the output of the following code
fragment that invokes Twist?
������������������������������� ��� (All variables are of type int.)
�������������������������������
������������������������������� � r = 1;
������������������������������� � s = 2;
������������������������������� � t = 3;
������������������������������� � Twist(t, s);
������������������������������� � cout << r << ' ' << s
<< ' ' << t << endl;
������������������������������� A)���������� 5 14 3
������������������������������� B)����������� 1 14 3
������������������������������� C)����������� 1 14 9
������������������������������� D)����������� 1 10 3
������������������������������� E)����������� none of the above
��������������� _A_
21.� [3] What is the output of the
following code fragment? (All variables are of type int.)
�������������������������������
������������������������������� � alpha = 3;
������������������������������� � beta = 20;
������������������������������� � if (beta > 10)
������������������������������� � {
������������������������������� ����� int alpha = 5;
�������������������������������
������������������������������� ����� beta = beta + alpha;
������������������������������� ����� cout << alpha << ' '
<< beta << endl;
������������������������������� � }
������������������������������� � cout << alpha << ' ' <<
beta << endl;
������������������������������� A)����������� 5 25
����������������������������������������������� 3
25
������������������������������� B)����������� 3 20
������������������������������� C)����������� 5 25
����������������������������������������������� 3
20
������������������������������� D)����������� 5 25
����������������������������������������������� 5
25
������������������������������� E)����������� 3 25
����������������������������������������������� 3
25
��������������� _D_
22.� [2] In the following function, the
declaration of beta includes an initialization.
�������������������������������
������������������������������� � void SomeFunc( int alpha )
������������������������������� � {
������������������������������� ����� int beta = 25;
������������������������������� ����� ...
������������������������������� � }
�������������������������������
������������������������������� Which
of the following statements about beta is false ?
������������������������������� A)���������� It is initialized once only, the
first time the function is called.
������������������������������� B)����������� It is initialized each time the
function is called.
������������������������������� C)����������� It cannot be reassigned a different
value within the function.
������������������������������� D)����������� a and c above
������������������������������� E)����������� b and c above
��������������� _E_
23.�� [2] In the following function, the
declaration of beta includes an initialization.
�������������������������������
������������������������������� � void SomeFunc( int alpha )
������������������������������� � {
������������������������������� ����� static int beta = 25;
������������������������������� ����� ...
������������������������������� � }
�������������������������������
������������������������������� Which
of the following statements about beta is false ?
������������������������������� A)���������� It is initialized once only, the
first time the function is called.
������������������������������� B)����������� It is initialized each time the
function is called.
������������������������������� C)����������� It cannot be reassigned a different
value within the function.
������������������������������� D)����������� a and c above
������������������������������� E)����������� b and c above
��������������� _C_
24.�� [2] Given the function definition
�������������������������������
������������������������������� � bool IsZip( /* in */ float someFloat )
������������������������������� � {
������������������������������� ����� return (someFloat == 0.0);
������������������������������� � }
�������������������������������
������������������������������� what
is the value of the expression�
IsZip(2.4)� ?
������������������������������� A)���������� true
������������������������������� B)����������� 2.4
������������������������������� C)����������� false
������������������������������� D)����������� "someFloat == 0.0"
������������������������������� E)����������� 0.0
������� 25.�� [2]
Write the If statement for the following logic:� Only Sophmores (class_code = �S�) who have GPA�s between 2.5 and
3.5 will have their scholarship_amount increased by $500�
�������������������������������
������������������������������� � _______if (class_code == �S�) __________________________________________________
������������������������������� � ____________if ((GPA > 2.5) &&
(GPA < 3.5)) ____________________________________
������������������������������� � __________________scholarship_amount =
scholarship_amount + 500;������������ ___________
������������������������������� �
___________________________________________________________________________.
��������������� _C_
26.�� [2] The function heading
�������������������������������
������������������������������� � float TenToThePower( /* in */ int n )
�������������������������������
is for a function that returns 10.0 raised
to any integer power.Which of the following statements stores into someFloat
the value 10.0 raised to the power someInt?
�������������������������������
������������������������������� A)���������� TenToThePower(someInt);
������������������������������� B)����������� TenToThePower(someInt) = someFloat;
������������������������������� C)����������� someFloat =
TenToThePower(someInt);
������������������������������� D)����������� someInt = TenToThePower(someFloat);
������������������������������� E)����������� TenToThePower(someFloat, someInt);
27.�
[2] The __Scope_______________ of an identifier is the region of
program code where it is legal to reference that identifier.
28.�
[2] The ___Lifetime______________ of a variable is the period of
time during program execution when the variable has memory allocated to it.
_B_
29.�� [2] If a module is supposed to print
a line of asterisks of a given length, which is more appropriate to use--a
value-returning function or a void function?
������������������������������� A)���������� a value-returning function
������������������������������� B)����������� a void function
_A_
30.� [2] Any Switch statement that has a
break statement after each case alternative can be replaced by a nested
If-Then-Else structure.
������������������������������� A)����������� True
������������������������������� B)����������� False
_A_ 31.� [3] To produce the output� 2
4 6 8 10, what is the loop condition for the following loop?
�������������������������������
������������������������������� � n = 0;
������������������������������� � do
������������������������������� � {
������������������������������� ����� n = n + 2;
������������������������������� ����� cout << n << ' ';
������������������������������� � } while ( ??? );
�������������������������������
��������������� A)����������� n < 10
��������������� B)����������� n > 8
��������������� C)����������� n <= 10
��������������� D)����������� n < 8
��������������� E)����������� n >= 2
��������������� _A_
32.� [3] What is the output of the
following code fragment if the input value is 'G'?
�������������������������������
������������������������������� � cin >> inputChar;
������������������������������� � switch (inputChar)
������������������������������� � {
������������������������������� ����� case 'A' : cout << 1;
������������������������������� ���������������� break;
������������������������������� ����� case 'Q' : cout << 2;
������������������������������� ���������������� break;
������������������������������� ����� case 'G' :
������������������������������� ����� case 'M' : cout << 3;
������������������������������� ���������������� break;
������������������������������� ����� default�
: cout << 4;
������������������������������� �
��������������� A)����������� 3
��������������� B)����������� 4
��������������� C)����������� There is no output.
��������������� D)����������� 2
��������������� E)����������� 1
33.� [2] In C++, the __Do-While_______________
statement is the looping control structure whose body is certain to execute at
least once.
34.��
[8]� The following code segment
contains logical errors that will yield erroneous results.� Write the correct code to the right of the
given code that will write out all integers between 1000 and 0 inclusive that
are divisible by 4, in descending order (i.e., 1000, 996, 992, ......., 8, 4,
0).
��������������� ��� //INCORRECT CODE����� � |������������ //CORRECT CODE
��������������������������������������������������������������� � |
������ �������� int k = 1000;�������������������������� � |������������ int k = 1000;
������ �������� while (k >= 0)����������������������� � |������������ while
( k >= 0)
���� ���������� �{�������������������������������������������� � |������������ {
��� ��������������������������� k = k - 4; ��������������� ��|���������������������������� cout << k;
��� ��������������������������� cout << k;������������� � |���������������������������� k = k � 4;
��������������� }��������������������������������������������� � |������������ }
��������������� 35.���������� [6] What is wrong with each of the
following C=++ function definitions?
��������������� a.������������ void Test1(int m, int n)
{
����������������������������������������������� return
3 * n + m;
��������������� ��������������� �}
�������������������������������
��������������� b.������������ float Test2 (int i, float x)
������������������������������� {
����������������������������������������������� i
= i + 7;
����������������������������������������������� x
= 4.8 + float(i)
������������������������������� }�����������������������������������������������������������������������������
������������������������������� a.______A
value cannot be returned from this function����������� __________________________
������������������������������� �
___________________________________________________________________________
������������������������������� b.
_____A value must be returned from this function����� _______________________________
������������������������������� ��
___________________________________________________________________________
36.� [12]�
The following program adds two times together.� Both times are expressed in hours, minutes and seconds. First the
program prompts the user to enter the current time. Then the program prompts
the user to enter the amount of time they wish to add.� The program displays the result and
terminates.
The function addtime
adds the specified hours, minutes and seconds to the current time.� In this problem you must write the function
body of addtime.�
You can assume that the input data is always correct.� The following is a sample of how the program
should work:
�SAMPLE RUN: �����
����������������������������������������������� Enter
current time(hh mm ss): 12 55 45����������������������������
����������������������������������������������� Enter
clock adjustment (hh mm ss): 1� 10� 20��������������������������������������������������
����������������������������������������������� Time
reset to� 2: 6: 5����������������������������������������������������������������������������
________________________________________________________________________
#include <iostream.h>
void addtime (int&, int&, int&, int, int, int); ������������������������������������������������������������������ //*****
function prototype *****/
/*****
main function *****/
int main ()
{
������������������������������� int
current_hours, current_mins, current_secs;������������
�������������� //current clock setting
������������������������������� int
inhours, inmins, insecs;������������������������������� �� �������������������������������������������� //
hours, minutes & seconds needed to
����������������������������������������������������������������������������������������������������������������������������������������������� //
added to current time
������������������������������� while
(cin)
������������������������������� {
����������������������������������������������� cout
<< "\nEnter current time (hh mm ss): ";�� // prompt user to enter current time
����������������������������������������������� cin
>> current_hours >>current_mins >> current_secs; ������������� // get current time
����������������������������������������������� cout
<< setw(2) << current_hours << ":"
�� �������������������������������������������� << setw(2)
<< current_mins << current_secs << endl; // mirror the input
����������������������������������������������� cout
<< "\nEnter clock adjustment (hh mm ss):"; ��������� // prompt user for time to add
����������������������������������������������� cin
>> inhours >> inmins >> insecs;�������������������������������� // get time to be added
����������������������������������������������� cout
<< setw(2) << inhours << ":" << setw(2)
<< inmins
�� ������������ ������������������������������� <<
":" << setw(2) << insecs <<endl;�������������������������������� // mirror the
input
����������������������������������������������� addtime
(current_hours, current_mins, current_secs, inhours, inmins, insecs);
����������������������������������������������������������������������������������������������������������������������������������������������� //
function call to the function you
����������������������������������������������������������������������������������������������������������������������������������������������� //
must write.� Remember that you
����������������������������������������������������������������������������������������������������������������������������������������������� //
should display the results as
����������������������������������������������������������������������������������������������������������������������������������������������� //
shown above in the sample run
������������������������������� }
������������������������������� return
0;
}
/***** USE THE VARIABLES SHOWN *****/
/***** IN THE FUNCTION HEADER BELOW *****/
void addtime(int& hours, ����������������� //
IN the current hours, OUT the total hours
������������������������������� ������ ��int& minutes, ����������������������������� //
IN the current minutes, OUT the total minutes
������������������������������� �������� int&, seconds����������������������������� // IN the current
seconds, OUT the total seconds
������������������������������� �������� int h, �������������������������������������������� // IN: the hours to be
added
������������������������������� �������� int m, ������������������������������������������� // IN: the minutes to be
added
������������������������������� �������� int s)��������������������������������������������� // IN: the seconds to
be added
/***** WRITE THE FUNCTION BODY HERE *****/
{
__seconds = seconds + s;____________________________________________________
__minutes = minutes + m;____________________________________________________
__if (seconds >= 60)________________________________________________________
__{_____________________________________________________________________
___�� seconds = seconds %
60;_________________________________________________
____minutes++;___________________________________________________________
__}____________________________________________________________________
__hours = hours + h;_______________________________________________________��
__if (minutes >= 60)________________________________________________________
__{______________________________________________________________________
___�������� minutes = minutes
% 60_______________________________________________
_______hours++;__________________________________________________________
���� �}____________________________________________________________________
___if (hours > 12)__________________________________________________________
___{_____________________________________________________________________
____��� hours = hours � 12;____________________________________________________
___}_____________________________________________________________________
________________________________________________________________________
___cout << �time reset to << hours << �:�
<< minutes << �:� << seconds << endl;___________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
}