Академический Документы
Профессиональный Документы
Культура Документы
~/Desktop/12:2:2014/1492_pcl/online
Chapter 1
1.
Main memory, or RAM, is volatile, which means its contents are erased when
power is removed from the computer. Secondary memory, such as a disk, does
not lose its contents when power is removed from the computer.
3.
An operating system
5.
7.
A syntax error is the misuse of a key word, operator, punctuation, or other part
of the programming language. A logical error is a mistake that causes the program
to produce the wrong results.
9.
CPU
11.
disk
13.
instructions
15.
machine language
17.
low-level
19.
key words
21.
operators
23.
syntax
25.
defined
27.
input
29.
hierarchy chart
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
31.
Hierarchy chart:
Calculate a retail sale.
Get input.
33.
35.
365
Display tax.
Display total.
Chapter 2
1.
1, 2, 3
3.
5.
Multi-line comment
7.
#include <iostream>
int main()
{
cout << "Two mandolins like creatures in the\n\n\n";
cout << "dark\n\n\n";
cout << "Creating the agony of ecstasy.\n\n\n";
cout << " - George Barker\n\n\n";
return 0;
}
9.
11.
13.
15.
B, C
17.
A)
B)
C)
D)
E)
19.
21.
23.
False
12
4
2
6
1
~/Desktop/12:2:2014/1492_pcl/online
Chapter 3
25.
True
27.
29.
The stream insertion operator (that appears twice in the cout statement) should
read << instead of <.
The cout statement uses the variable C instead of c
Chapter 3
1.
3.
5.
a
z
y
g
c
7.
9.
=
=
=
=
=
12 * x;
5 * x + 14 * y + 6 * k;
pow(x, 4);
(h + 12) / (4 * k);
pow(a, 3) / (pow(b, 2) * pow(k, 4));
11.
13.
15.
cos
17.
tan
19.
fmod
21.
log10
23.
sqrt
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
25.
27.
~/Desktop/12:2:2014/1492_pcl/online
Chapter 4
averageScore = (score1 + score2 + score3) / 3;
cout << "The average score is :";
cout << averageScore << endl;
return 0;
}
29.
33.
should read:
getline(cin, name);
35.
6 3 12
37.
Minutes: 612002.0000
Hours: 10200.0332
Days: 425.0014
Months: 13.9726
Years: 1.1644
Chapter 4
1.
3.
A flag is a Boolean variable signaling that some condition exists in the program.
When the flag is set to false it indicates the condition does not yet exist. When
the flag is set to true it indicates that the condition does exist.
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
5.
It takes two expressions as operands and creates a single expression that is true
only when both subexpressions are true.
7.
Because they test for specific relationships between items. The relationships are
greater-than, less-than, equal-to, greater-than or equal-to, less-than or equal-to,
and not equal-to.
9.
relational
11.
False, True
13.
True
15.
True, False
17.
nested
19.
||
21.
left-to-right
23.
||
25.
>
27.
integer
29.
break
31.
if (y == 0)
x = 100;
33.
35.
37.
39.
41.
C, A, B
43.
False
45.
True
47.
True
~/Desktop/12:2:2014/1492_pcl/online
Chapter 5
49.
True
51.
True
53.
False
55.
57.
59.
should read:
cout << "quotient of " << num1;
61.
63.
65.
Chapter 5
1.
By indenting the statements, you make them stand out from the surrounding
code. This helps you to identify at a glance the statements that are conditionally
executed by a loop.
3.
5.
7.
9.
11.
fstream
13.
ifstream
15.
A files read position marks the location of the next byte that will be read from
the file. When an input file is opened, its read position is initially set to the first
byte in the file.
17.
prefix
19.
body
21.
pretest
23.
infinite or endless
Appendix M
25.
running total
27.
sentinel
29.
31.
33.
break
35.
37.
39.
41.
43.
int x = 50;
while (x > 0)
{
cout << x << " seconds to go.\n";
x;
}
45.
ifstream inputFile("Numbers.txt");
int number;
while (inputFile >> number)
cout << number << endl;
inputFile.close();
47.
false
49.
false
51.
false
53.
false
~/Desktop/12:2:2014/1492_pcl/online
~/Desktop/12:2:2014/1492_pcl/online
Chapter 6
55.
false
57.
true
59.
true
61.
false
63.
true
65.
67.
69.
Chapter 6
1.
Because they are created in memory when the function begins execution, and are
destroyed when the function ends.
3.
5.
Yes. The first argument is passed into the parameter variable that appears first
inside the function headers parentheses. Likewise, the second argument is passed
into the second parameter, and so on.
7.
It makes the program easier to manage. Imagine a book that has a thousand
pages, but isnt divided into chapters or sections. Trying to find a single topic in
the book would be very difficult. Real-world programs can easily have thousands
of lines of code, and unless they are modularized, they can be very difficult to
modify and maintain.
9.
A function such as the following could be written to get user input. The input is
stored in the variables that are passed as arguments.
void getValues(int &x, int &y)
{
cout << "Enter a number: ";
cin >> x;
cout << "Enter another number: ";
cin >> y;
}
11.
void
13.
arguments
15.
value
17.
local
19.
global
10
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
21.
local
23.
return
25.
last
27.
reference
29.
reference
31.
parameter lists
33.
35.
37.
39.
False
41.
True
43.
True
45.
False
47.
True
49.
True
51.
True
53.
False
55.
True
57.
~/Desktop/12:2:2014/1492_pcl/online
Chapter 7
59.
Chapter 7
1.
3.
Because, with the array alone the function has no way of determining the number
of elements it has.
5.
By providing an initialization list. The array is sized to hold the number of values
in the list.
7.
Because an array name without brackets and a subscript represents the arrays
beginning memory address. The statement shown attempts to assign the address
of array2 to array1, which is not permitted.
9.
By reference.
11.
13.
15.
size declarator
17.
subscript
19.
21.
initialization
23.
initialization list
25.
27.
address, or name
29.
rows, columns
31.
braces
33.
35.
sequence
37.
push_back
39.
pop_back
41.
11
12
Appendix M
43.
45.
47.
numberArray[0][0] = 145;
numberArray[8][10] = 18;
49.
~/Desktop/12:2:2014/1492_pcl/online
~/Desktop/12:2:2014/1492_pcl/online
Chapter 8
for (row = 0; row < NUM_ROWS; row++)
total += days[row][col];
// Display the column's total.
cout << "The total for column "
<< col << " is " << total << endl;
}
51.
True
53.
False
55.
False
57.
True
59.
True
61.
False
63.
False
65.
True
67.
True
69.
True
71.
True
73.
False
75.
False
77.
True
79.
True
81.
83.
85.
87.
The assignment operator cannot be used to assign the contents of one array to
another, in a single statement.
89.
The parameter must specify the number of columns, not the number of rows.
Chapter 8
1.
Because it uses a loop to sequentially step through an array, starting with the first
element. It compares each element with the value being searched for, and stops
when either the value is found or the end of the array is encountered.
3.
N/2 times
5.
Ten
7.
The selection sort usually performs fewer exchanges because it moves items
immediately to their final position in the array.
13
14
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
9.
binary
11.
binary
13.
descending
15.
False
17.
False
Chapter 9
1.
It dereferences a pointer, allowing code to work with the value that the pointer
points to.
3.
5.
7.
9.
To free memory that has been dynamically allocated with the new operator.
11.
A pointer to a constant points to a constant item. The data that the pointer
points to cannot change, but the pointer itself can change. With a constant
pointer, it is the pointer itself that is constant. Once the pointer is initialized
with an address, it cannot point to anything else.
13.
address
15.
pointer
17.
pointers
19.
new
21.
null
23.
new
25.
*(set + 7) = 99;
27.
delete [] tempNumbers;
29.
31.
True
33.
True
35.
False
37.
False
39.
True
41.
False
43.
True
45.
False
~/Desktop/12:2:2014/1492_pcl/online
Chapter 10
47.
False
49.
51.
53.
55.
iptr cannot be initialized with the address of ivalue. ivalue is defined after iptr.
57.
59.
61.
Chapter 10
1.
cctype
3.
A
B
d
E
5.
cstring
7.
string
9.
isupper
11.
isdigit
13.
toupper
15.
cctype
17.
concatenate
19.
strcpy
21.
strcmp
23.
atoi
25.
atof
27.
if (toupper(choice) == 'Y')
29.
if (strlen(name) <= 9)
strcpy(str, name);
31.
15
16
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
33.
False
35.
False
37.
True
39.
False
41.
True
43.
The isupper function can only be used to test a character, not a string.
45.
The compiler will not allocate enough space in string1 to accommodate both
strings.
Chapter 11
1.
A data type that is built into the C++ language, such as int, char, float, etc.
3.
The elements of an array must all be of the same data type. The members of a
structure may be of different data types.
5.
A) FullName info;
B) info.lastName = "Smith";
info.middleName = "Bart";
info.firstName = "William";
7.
A)
B)
C)
D)
Canton
Haywood
9478
uninitialized
9.
All the members of a union occupy the same area of memory, whereas the members of a structure have their own memory locations.
11.
012
13.
declared
15.
members
17.
tag
19.
21.
~/Desktop/12:2:2014/1492_pcl/online
Chapter 11
23.
struct TempScale
{
double fahrenheit;
double centigrade;
};
struct Reading
{
int windSpeed;
double humidity;
tempScale temperature;
};
Reading today;
25.
27.
Reading getReading()
{
Reading local;
cout << "Enter the following values:\n";
cout << "Wind speed: ";
cin >> local.windSpeed;
cout << "Humidity: ";
cin >> local.humidity;
cout << "Fahrenheit temperature: ";
cin >> local.temperature.fahrenheit;
cout << "Centigrade temperature: ";
cin >> local.temperature.centigrade;
return local;
}
29.
rptr->WindSpeed = 50;
31.
union Items
{
char alpha;
int num;
long bigNum;
float real;
};
Items x;
33.
num = 452;
17
18
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
35.
37.
True
39.
False
41.
False
43.
True
45.
True
47.
True
49.
False
51.
False
53.
True
55.
True
57.
59.
61.
63.
65.
The function must define a variable of the TwoVals structure. The variable, then,
should be used in the assignment statement.
67.
Chapter 12
1.
The fstream data type allows both reading and writing, while the ifstream
data type allows only for reading, and the ofstream data type allows only for
writing.
3.
Its contents are erased. (In other words, the file is truncated.)
5.
By reference because the internal state of file stream objects changes with most
every operation. They should always be passed to functions by reference to
ensure internal consistency.
7.
When the end of the file has been encountered. The eof member function reports
the state of this bit.
9.
11.
Two arguments: The starting address of the section of memory where the data
will be stored, and the number of bytes to read.
13.
The seekg function moves a files write position, and the seekp function moves a
files read position.
15.
~/Desktop/12:2:2014/1492_pcl/online
Chapter 12
17.
Use the seekg member function to move the read position back to the beginning
of the file.
19.
NULL or 0
21.
getline
23.
put
25.
27.
structures
29.
read
31.
sequential
33.
seekg
35.
tellg
37.
ios::beg
39.
ios::cur
41.
43.
pets.open("pets.dat", ios::in);
fstream pets("pets.dat" ios::in);
45.
fstream employees;
employees.open("emp.dat", ios::in | ios::out | ios::binary);
if (!employees)
cout << "Failed to open file.\n";
47.
dataFile.seekg(0L, ios::end);
numBytes = dataFile.tellg();
cout << "The file has " << numBytes << " bytes.\n";
49.
True
51.
True
53.
True
55.
False
57.
True
59.
True
61.
True
63.
False
65.
or
fstream file;
file.open("info.dat", ios::in | ios::out);
19
20
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
67.
69.
The file access flag should be ios::in. Also, the get member function cannot be
used to read a string.
71.
The file access flag should be ios::out. Also, the last line should read
dataFile.write(reinterpret_cast<char *>(&dt), sizeof(dt));
Chapter 13
1.
A class describes a data type. An instance of a class is an object of the data type
that exists in memory.
3.
private
5.
7.
Yes it is. This protects the variables from being directly manipulated by code
outside the class, and prevents them from receiving invalid data.
9.
When the function is necessary for internal processing, but not useful to the program outside the class. In some cases a class may contain member functions that
initialize member variables or destroy their contents. Those functions should not
be accessible by an external part of the program because they may be called at
the wrong time.
11.
13.
15.
A classs responsibilities are the things that the class is responsible for knowing
and the actions that the class is responsible for doing.
17.
19.
object-oriented
21.
class
23.
access specifier
25.
public
27.
->
29.
canine.cpp
31.
constructor
33.
constructors
35.
default
37.
39.
default
41.
constructor, destructor
~/Desktop/12:2:2014/1492_pcl/online
Chapter 13
43.
class Circle
{
private:
double radius;
public:
void setRadius(double r)
{ radius = r; }
double getRadius()
{ return radius; }
double getArea()
{ return 3.14159 * radius * radius; }
};
45.
class Circle
{
private:
double radius;
public:
Circle()
{ radius = 0.0; }
Circle(double r)
{ radius = r; }
void setRadius(double r)
{ radius = r; }
double getRadius()
{ return radius; }
double getArea()
{ return 3.14159 * radius * radius; }
};
47.
49.
Animal
Medication
Nurse
Doctor
Invoice
Customer
Patient
Client
51.
False
53.
False
55.
False
57.
True
59.
False
61.
True
63.
True
65.
True
21
22
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
67.
False
69.
True
71.
False
73.
75.
should read:
bar.setWeight(200);
bar.weight cannot be accessed outside of the class because no access specifier
appeared before it in the class, making the variable private to the class by default.
This means the cout statement will not work.
Chapter 14
1.
Each class object has its own copy of the classs instance member variables. All
objects of a class share the classs static member variables.
3.
5.
Because every member function of the friend class would have access to the
classs private member variables.
7.
9.
11.
13.
The object on the right side of the = operator in the statement that called the
overloaded operator function.
15.
17.
A Boolean value.
19.
Place the key word static before the variable declaration (inside the class).
Then, place a separate definition of the variable outside the class.
21.
3, 3, 1, 0, Thing::putThing(2);
~/Desktop/12:2:2014/1492_pcl/online
Chapter 15
23.
To inform the compiler of the classs existence before it reaches the classs
definition.
25.
Because the parameter variable is created in memory when the function executes,
and is initialized with the argument object. This causes the copy constructor to
be called.
27.
outside
29.
before
31.
forward declaration
33.
copy constructor
35.
overloaded
37.
aggregation
39.
41.
43.
45.
True
47.
False
49.
True
51.
True
53.
True
55.
False
57.
True
59.
61.
63.
Chapter 15
1.
3.
Base class access specification specifies how members of the base class are inherited by the derived class. Member access specification specifies how class members
may be accessed by code outside the class.
5.
No.
23
24
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
7.
When a derived class has a function with the same name as a base classs function,
and the base class function is not virtual, it is said that the function is redefined
in the derived class. If the base classs function is virtual, however, it is said that
the function is overridden.
9.
An abstract base class is not instantiated itself, but serves as a base class for other
classes. The abstract base class represents the generic, or abstract form of all the
classes that are derived from it. A class is abstract when it has one or more virtual
functions.
11.
Dog
13.
public
15.
private
17.
19.
members
21.
last
23.
25.
static
27.
polymorphism
29.
31.
chain
33.
override or redefine
35.
37.
class B
{
private:
int m;
protected:
int n;
public:
void setM(int);
int getM();
void setN(int);
int getN();
virtual int calc()
{ return m * n; }
};
class D : public B
{
protected:
float q;
float r;
~/Desktop/12:2:2014/1492_pcl/online
Chapter 16
public:
void setQ(float);
float getQ();
void setR(float);
float getR();
virtual float calc()
{ return q * r; }
};
39.
True
41.
True
43.
False
45.
False
47.
True
49.
True
51.
True
53.
Chapter 16
1.
A throw point is a line in a program that contains a throw statement, thus throwing
an exception.
3.
A try block contains a block of code executing any statements that might directly
or indirectly cause an exception to be thrown. A catch block catches a specific
exception and contains code to respond to it.
5.
Once an exception has been thrown, the program cannot jump back to the throw
point. The function that executes a throw statement will immediately terminate.
If that function was called by another function, then the calling function will
terminate as well. This process, known as unwinding the stack, continues for the
entire chain of nested function calls, from the throw point, all the way back to
the try block.
7.
9.
Because a class object passed to a function template must support all the operators
the function will use on the object.
11.
25
26
Appendix M
13.
throw point
15.
catch
17.
template prefix
19.
specialized
21.
associative
23.
bad_alloc
25.
27.
29.
31.
False
33.
True
35.
True
37.
True
39.
False
41.
True
43.
False
45.
True
47.
49.
51.
53.
~/Desktop/12:2:2014/1492_pcl/online
~/Desktop/12:2:2014/1492_pcl/online
Chapter 18
Chapter 17
1.
A linked list can easily grow or shrink in size. In fact, the programmer doesnt
need to know how many nodes will be in the list. They are simply created in
memory as they are needed. Also, when a node is inserted into or deleted from
a linked list, none of the other nodes have to be moved.
3.
5.
The last node in the list usually points to address 0, the null address.
7.
Appending a node means that a new node is added to the end of the list. Inserting
a node means that a new node is inserted somewhere in the middle of the list.
9.
Remove the node from the list without breaking the links created by the next
pointers.
Deleting the node from memory.
11.
In a singly linked list each node is linked to a single other node. In a doubly linked
list each node not only points to the next node, but also the previous one. In a
circularly linked list the last node points to the first.
13.
head pointer
15.
NULL
17.
Inserting
19.
circular
21.
ListNode *nodePtr;
nodePtr = head;
while (nodePtr)
{
cout << nodePtr->value << endl;
nodePtr = nodePtr->next;
}
23.
list<float> myList;
25.
myList.reverse();
27.
False
29.
True
31.
False
33.
35.
The node pointers are simply set to NULL. The nodes themselves are not deleted
from memory.
Chapter 18
1.
3.
A static stack has a fixed size and is usually implemented as an array. A dynamic stack
expands as items are added to it. Dynamic stacks are implemented as linked lists.
27
28
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
5.
isFull and isEmpty. The isFull operation returns true if the stack is full, and
false otherwise. This operation is necessary to prevent a stack overflow in the
event a push operation is attempted when all of the stacks elements have values
stored in them. The isEmpty operation returns true when the stack is empty, and
false otherwise. This prevents an error from occurring when a pop operation is
attempted on an empty stack.
7.
9.
The rear
11.
The two primary queue operations are enqueuing and dequeuing. To enqueue
means to insert an element at the rear of a queue, and to dequeue means to
remove an element from the front of a queue.
13.
last
15.
static
17.
19.
21.
deque
23.
Top of stack
19
8
Bottom of stack
25.
9
Front
27.
29.
False
31.
True
12
10
Rear
~/Desktop/12:2:2014/1492_pcl/online
Chapter 20
Chapter 19
1.
num <= 0
num > 0
3.
Recursive functions are less efficient, due to the overhead associated with each
function call.
5.
The program will eventually run out of stack memory and abort.
7.
base case
9.
indirect
11.
13.
**********
*********
********
*******
******
*****
****
***
**
*
Chapter 20
1.
Two others.
3.
5.
7.
root node
29
30
Appendix M
~/Desktop/12:2:2014/1492_pcl/online
9.
leaf node
11.
13.
(Recursive Function)
Display In Order(Node Pointer)
If Node Pointer is not Null
Display In Order (Node Pointer -> Left).
Display the node's Value.
Display In Order (Node Pointer -> Right).
End If
End Display In Order
15.
(Recursive Function)
Display Post Order(Node Pointer)
If Node Pointer is not Null
Display Post Order (Node Pointer -> Left).
Display Post Order (Node Pointer -> Right).
Display the node's Value.
End If
End Display Post Order
17.
Tree
Pointer
Pointer Pointer
12
Pointer Pointer
Pointer Pointer
NULL
NULL
Pointer Pointer
22
Pointer Pointer
Pointer Pointer
NULL
Pointer Pointer
18
Pointer Pointer
14
10
24
NULL
Pointer Pointer
Pointer Pointer
30
Pointer Pointer
20
NULL
NULL
NULL
NULL
NULL
NULL
19.
12 7 3 9 10 22 18 14 20 24 30
21.
True
23.
True
25.
False
NULL
NULL