Escolar Documentos
Profissional Documentos
Cultura Documentos
Printed
Uniqname:
___________________________
Printed
Name:
____________________________
Circle
your
Lab
Section
below
(you
will
lose
1
point
if
you
dont
do
this
or
it
is
incorrect):
101:
Cat
Th,
8:30-10:30a
102:
Rob
Th,
10:30a-12:30p
103:
Cat
Th,
12:30-2:30p
104:
Cassie
Th,
2:30-4:30p
105:
Rob
Th,
4:30-6:30p
106:
Cassie
Fri,
8:30-10:30a
107:
Cassie
Fri,
10:30a-12:30p
108:
Cat
Fri,
12:30-2:30p
109:
Rob
Fri,
2:30-4:30p
Number
II
III
IV
Total
Grade
Page
1
of
11
Uniqname:
____________________________
The
remainder
of
this
page
is
intentionally
left
blank.
Page
2
of
11
Uniqname:
____________________________
Question
1
-
Matching
(20
points)
Match
each
concept
on
the
left-hand
side
with
the
phrase
on
the
right
that
fits
best.
Note
that
there
are
more
items
in
the
right
column
than
in
the
left,
so
some
answers
will
not
be
used.
_____
alias
A.
statement
executed
on
each
iteration
_____
loop
body
B.
extracts
characters
until
next
'\n'
into
string
variable
_____
member
function
C.
keyword
for
defining
generic
routines
_____
getline
D.
encloses
condition
in
if
or
while
statement
_____
exit
statement
E.
vector
of
vectors
of
generic
types
_____
local
scope
F.
method
associated
with
instances
of
a
class
_____
template
G.
alternate
name
declared
using
reference
operator
_____
floating
point
H.
terminates
program
_____
()
I.
terminates
function
or
procedure
_____
;
J.
marks
end
of
simple
statement
K.
represent
binary
number
in
terms
of
mantissa,
exponent,
and
sign
L.
textual
context
for
identifier
introduced
within
procedure
or
function
Page
3
of
11
Uniqname:
____________________________
Question
2
-
Multiple
Choice
and
Short
Answer
(20
points)
For
parts
a)
through
e)
below,
check
the
single
most
appropriate
answer
for
each.
a)
Consider
the
predicate
declaration:
bool myPred(const vector<int> & theVector);
What
is
true
about
the
input
argument
to
this
routine?
(3
pts)
____
theVector
cannot
be
modified
within
myPred
____
the
variable
passed
as
theVector
cannot
be
modified
within
the
caller
____
theVector
has
global
scope
____
All
of
the
above
____
None
of
the
above
b)
Which
of
the
following
sorting
algorithms
prominently
exploited
recursion
in
lecture?
(3
pts)
____
BubbleSort
____
InsertionSort
____
MergeSort
____
All
of
the
above
____
None
of
the
above
c)
Suppose
that
G
is
the
greatest
(most
positive)
value
expressible
in
an
integer
representation,
and
L
is
the
least
(most
negative)
value.
What
is
the
result
of
evaluating
the
expression
L-5
?
(3
pts)
____
G
+
5
____
G
5
____
G
4
____
L
+
4
____
None
of
the
above
d)
Suppose
we
have
declared
s
as
an
empty
string.
Which
of
the
following
prints
GoBlue!
on
a
single
line
of
output?
(3
pts)
____
s = "GoBlue!"; s[3]='l'; cout << s << endl;
____
s = "GoBlue!"; s.push_back('!'); cout << s << endl;
____
s = "GoBlue!"; cout << s[1] << "oBlue!" << endl;
____
s = "Blue!"; cout << s.append("Go") << endl;
____
None
of
the
above
Page
4
of
11
Uniqname:
____________________________
e)
Consider
the
following
iteration
code,
assuming
i
has
been
declared
as
an
int:
i=0;
while (i+1 < 100) {
i++;
cout << i;
}
Which
of
the
following
for
statements
is
equivalent?
(3
pts)
____
____
____
____
____
f)
Rank the following 8-bit two's complement numbers from 1 to 5, where the most negative number is
labeled with a 1 and the most positive number is labeled with a 5.
(5
pts)
____
____
____
____
____
00000000
01010101
10101010
11111111
01100000
Page
5
of
11
Uniqname:
____________________________
Question
3
What
does
the
code
do?
(20
points)
In
the
space
provided
beside
each
of
the
following
four
programs,
write
one
of
the
following:
The
screen
output
of
the
program,
using
underscore
to
denote
any
spaces
(e.g.
6_24_42)
Wont
finish
if
the
program
would
enter
an
infinite
loop
or
potentially
crash
or
otherwise
fail
to
terminate
normally.
Assume
that
each
code
has
all
necessary
libraries
included,
and
using namespace std;
at
the
beginning.
Do
not
put
any
scratch
work
in
the
answer
box.
Answer:
int main()
{
ofstream a("zzzzz");
a << 1.2 << " 3.4 " << endl;
a.close();
ifstream b("zzzzz");
while(not b.fail())
{
double a;
b >> a;
cout << a << endl;
}
return 0;
}
int main()
{
string s = "November_2";
string s1 = "dissect?";
int j=5, k=6;
Answer:
Page
6
of
11
Uniqname:
____________________________
Answer:
int main()
{
vector<int> v(6,1);
for (int i=0; i<v.size(); i++)
{
v.at(i) = v.at(i) + v.at(i-1);
cout << v.at(i) << " ";
}
cout << endl;
return 0;
}
Answer:
void s2(string s)
{
if (s.size()>2)
{
s2(s.substr(1,s.size()-2));
cout << s[0] << s[s.size()-1];
}
else
{
cout << s;
}
return;
}
int main()
{
string s = "November_2";
s2(s);
cout << endl;
return 0;
}
Page
7
of
11
Uniqname:
____________________________
Question
4
Write
some
code
(20
points)
For
this
question,
you
must
write
the
complete
definition
of
a
procedure,
called
flipflops,
on
the
following
page
that
takes
a
single
string
composed
entirely
of
lowercase
letters
of
any
length,
determines
if
the
string
flipflops,
and
finds
the
lowest
and
highest
letters
in
the
string
if
it
does.
A
string
of
lowercase
letters
is
said
to
flipflop
if
each
character
in
the
string
is
alternately
higher
in
the
alphabet
or
lower
in
the
alphabet
than
the
character
before
it.
The
first
character
in
the
string
must
always
be
lower
than
the
second,
the
second
must
be
higher
than
the
third,
the
third
must
be
lower
than
the
fourth,
etc.
An
empty
string
does
not
flipflop
and
a
string
with
one
character
always
flipflops.
An
example
of
a
string
that
flipflops
would
be
abate
since
the
first
a
is
lower
than
b,
b
is
higher
than
the
second
a,
the
second
a
is
lower
than
t,
and
t
is
higher
than
e.
Note
that
abated
does
NOT
flipflop,
because
e
is
not
lower
than
d
and
chatter
does
NOT
flipflop,
because
the
first
t
is
not
higher
than
the
second
t.
The
procedures
declaration
is
as
follows:
void flipflops(const string & str, bool & flip, char & low, char & high);
If
the
procedure
determines
that
the
input
string
flipflops,
it
must
set
the
flip
variable
to
true,
the
low
variable
to
the
lowest
letter
found
in
the
string,
and
the
high
variable
to
the
highest
letter
found
in
the
string.
If
the
procedure
determines
that
the
input
string
does
not
flipflop,
it
must
set
the
flip
variable
to
false
and
the
low
and
high
variables
are
left
undefined.
Notes:
You
may
assume
that
using namespace std;
and
all
necessary
libraries
are
included
at
the
beginning
of
the
program.
This
procedure
can
be
implemented
in
fewer
than
25
lines
of
code.
Page
8
of
11
Uniqname:
____________________________
Page
9
of
11
Uniqname:
____________________________
Question
5
Write
some
code
(20
points)
For
this
question,
you
must
write
the
complete
definition
of
a
procedure,
called
findLongest,
on
the
following
page
that
analyzes
the
contents
of
a
vector
of
integers
to
find
the
longest
sequence
of
increasing
values
in
the
vector,
writes
this
sequence
to
another
vector,
and
then
sums
the
contents
of
the
sequence.
The
initial
vector
will
only
consist
of
positive
integers
except
for
the
last
value
in
the
vector
that
will
be
set
equal
to
the
value
-1.
An
example
of
the
longest
sequence
of
increasing
values
in
the
vector
[1 4 5 2 5 7 9 10 5 6 -1]
would
be
[2 5 7 9 10]
and
the
sequences
sum
would
be
33.
Additionally,
the
longest
sequence
of
increasing
values
in
the
vector
[5 6 7 1 2 3 5 7 8 4 3 -1]
would
be
[1 2 3 5 7 8]
and
the
sequences
sum
would
be
26.
Finally,
note
that
two
adjacent
integers
with
the
same
value
constitute
a
break
in
a
sequence.
Thus,
the
longest
sequence
of
increasing
values
in
the
vector
[1 2 4 4 5 -1]
would
be
[1 2 4]
and
the
sequences
sum
would
be
7.
The
procedures
declaration
is
as
follows:
void findLongest(const vector <int> & inVec, vector <int> & outVec,
int & sum);
Once
the
procedure
finds
the
longest
sequence
of
increasing
values
in
the
vector
inVec,
it
must
first
clear
the
contents
of
outVec
and
then
write
the
contents
of
the
sequence
into
outVec
in
the
order
that
the
sequence
appeared
in
inVec.
After
writing
the
contents
of
the
sequence
into
outVec,
the
procedure
must
write
the
sum
of
the
integers
contained
in
the
sequence
into
the
variable
sum.
Important
Notes:
You
may
assume
that
using namespace std;
and
all
necessary
libraries
are
included
at
the
beginning
of
the
program.
Your
solution
must
use
only
those
vectors
that
are
in
the
procedures
parameter
list
and
no
more.
In
other
words,
you
may
not
declare
and/or
use
any
vectors
other
than
inVec
and
outVec
in
your
solution.
You
may
assume
that
there
will
be
at
least
one
sequence
of
increasing
values
in
inVec
whose
length
is
greater
than
or
equal
2.
For
example,
[3 2 1 -1]
and
[7 7 7 -1]
would
both
be
considered
invalid
inputs
for
inVec.
You
may
assume
that
there
will
be
no
ties
for
a
longest
sequence.
For
example,
[5 6 2 3 -1]
and
[4 5 6 1 2 3 -1]
would
both
be
considered
invalid
inputs
for
inVec.
This
procedure
can
be
implemented
in
fewer
than
30
lines
of
code.
Page
10
of
11
Uniqname:
____________________________
Page 11 of 11