State whether each of the following is true or false. If false, explain why. Assume the state
ment using std::cout; is used.
a) Comments cause the computer to print the text after the // on the screen when the program is executed.
b) The escape sequence \n, when output with cout and the stream insertion operator,causes the cursor to position to the beginning of the next line on the screen.
c) All variables must be declared before they’re used.
d) All variables must be given a type when they’re declared.
e) C++ considers the variables number and NuMbEr to be identical.
f) Declarations can appear almost anywhere in the body of a C++ function.
g) The remainder operator (%) can be used only with integer operands.
h) The arithmetic operators *, /, %, + and – all have the same level of precedence.
i) A C++ program that prints three lines of output must contain three statements using cout and the stream insertion operator.
a) False. Comments do not cause any action to be performed when the program is exe
cuted. They’re used to document programs and improve their readability.
b) True.
c) True.
d) True.
e) False. C++ is case sensitive, so these variables are different.
f) True.
g) True.
h) False. The operators *, / and % have the same precedence, and the operators + and - have
a lower precedence.
i) False. One statement with cout and multiple \n escape sequences can print several lines.
State whether each of the following is true or false. If false, explain why.
a) By convention, function names begin with a capital letter and all subsequent words in
the name begin with a capital letter.
b) Empty parentheses following a function name in a function definition indicate that the
function does not require any parameters to perform its task.
c) Data members or member functions declared with access specifier private are accessi
ble to member functions of the class in which they’re declared.
d) Variables declared in the body of a particular member function are known as data mem
bers and can be used in all member functions of the class.
e) Every function’s body is delimited by left and right braces ({ and }).
f) The types of arguments in a function call must be consistent with the types of the cor
responding parameters in the function’s parameter list.
3.2
a) False. Function names begin with a lowercase letter and all subsequent words in the
name begin with a capital letter. b) True. c) True. d) False. Such variables are local variables and can
be used only in the member function in which they’re declared. e) True. f) True.
State whether each of the following is true or false. If the answer is false, explain why.
a) The default case is required in the switch selection statement.
b) The break statement is required in the default case of a switch selection statement to
exit the switch properly.
c) The expression (x > y && a < b) is true if either the expression x>y is true or the ex
pression a<b is true.
d) An expression containing the || operator is true if either or both of its operands are true
a) False. The default case is optional. Nevertheless, it’s considered good software engi
neering to always provide a default case.
b) False. The break statement is used to exit the switch statement. The break statement
is not required when the default case is the last case. Nor will the break statement be
required if having control proceed with the next case makes sense.
c) False. When using the && operator, both of the relational expressions must be true for
the entire expression to be true.
d) True.
7.2
(True or False) State whether the following are true or false. If the answer is false, explain
why.
a) A given array can store many different types of values.
b) An array subscript should normally be of data type float.
c) If there are fewer initializers in an initializer list than the number of elements in the ar
ray, the remaining elements are initialized to the last value in the initializer list.
d) It’s an error if an initializer list has more initializers than there are elements in the array.
7.2
a) False. An array can store only values of the same type.
b) False. An array subscript should be an integer or an integer expression.
c) False. The remaining elements are initialized to zero.
d) True.
(True or False) Determine whether each of the following is true or false. If false, explain why.
a) To refer to a particular location or element within an array, we specify the name of the
array and the value of the particular element.
b) An array definition reserves space for an array.
c) To reserve 100 locations for integer array p, you write
p[100];
d) A for statement must be used to initialize the elements of a 15-element array to zero.
e) Nested for statements must be used to total the elements of a two-dimensional array.
State whether each of the following is true or false. If the answer is false, explain why.
a) The address operator & can be applied only to constants and to expressions.
b) A pointer that is declared to be of type void* can be dereferenced.
c) A pointer of one type can’t be assigned to one of another type without a cast operation.
a) False. The operand of the address operator must be an lvalue; the address operator can
not be applied to literals or to expressions that result in temporary values.
b) False. A pointer to void cannot be dereferenced. Such a pointer does not have a type
that enables the compiler to determine the type of the data and the number of bytes of
memory to which the pointer points.
c) False. Pointers of any type can be assigned to void pointers. Pointers of type void can
be assigned to pointers of other types only with an explicit type cast.
(True or False) State whether the following are true or false. If false, explain why.
a) Two pointers that point to different built-in arrays cannot be compared meaningfully.
b) Because the name of a built-in array is implicitly convertible to a pointer to the first el
ement of the built-in array, built-in array names can be manipulated in the same man
ner as pointers.
State whether each of the following is true or false. If false, explain why.
a) Base-class constructors are not automatically inherited by derived classes.
b) A has-a relationship is implemented via inheritance.
c) A Car class has an is-a relationship with the SteeringWheel and Brakes classes.
d) When a derived-class object is destroyed, the destructors are called in the reverse order
of the constructors.
11.2
a) True. b) False. A has-a relationship is implemented via composition. An is-a relationship
is implemented via inheritance. c) False. This is an example of a has-a relationship. Class Car has an
is-a relationship with class Vehicle. d) True.
====下
(True or False) State whether each of the following is true or false. If the answer is false, ex
plain why.
a) The stream member function flags with a long argument sets the flags state variable
to its argument and returns its previous value.
b) The stream insertion operator << and the stream extraction operator >> are overloaded
to handle all standard data types—including strings and memory addresses (stream in
sertion only)—and all user-defined data types.
c) The stream member function flags with no arguments resets the stream’s format state.
d) Input with the stream extraction operator >> always skips leading white-space characters
in the input stream, by default.
e) The stream member function rdstate returns the current state of the stream.
f) The cout stream normally is connected to the display screen.
g) The stream member function good returns true if the bad, fail and eof member func
tions all return false.
h) The cin stream normally is connected to the display screen.
i) If a nonrecoverable error occurs during a stream operation, the bad member function
will return true.
j) Output to cerr is unbuffered and output to clog is buffered.
k) Stream manipulator showpoint forces floating-point values to print with the default six
digits of precision unless the precision value has been changed, in which case floating
point values print with the specified precision.
l) The ostream member function put outputs the specified number of characters.
m) The stream manipulators dec, oct and hex affect only the next integer output operation.
13.2
a) False. The stream member function flags with a fmtflags argument sets the flags state
variable to its argument and returns the prior state settings. b) False. The stream insertion and
stream extraction operators are not overloaded for all user-defined types. You must specifically pro
vide the overloaded operator functions to overload the stream operators for use with each user-de
fined type you create. c) False. The stream member function flags with no arguments returns the
current format settings as a fmtflags data type, which represents the format state. d) True. e) True.
f) True. g) True. h) False. The cin stream is connected to the standard input of the computer,
which normally is the keyboard. i) True. j) True. k) True. l) False. The ostream member function
put outputs its single-character argument. m) False. The stream manipulators dec, oct and hex set
the output format state for integers to the specified base until the base is changed again or the pro
gram terminates.
State whether each of the following is true or false. If false, explain why. Assume the state
ment using std::cout; is used.
a) Comments cause the computer to print the text after the // on the screen when the program is executed.
b) The escape sequence \n, when output with cout and the stream insertion operator,causes the cursor to position to the beginning of the next line on the screen.
c) All variables must be declared before they’re used.
d) All variables must be given a type when they’re declared.
e) C++ considers the variables number and NuMbEr to be identical.
f) Declarations can appear almost anywhere in the body of a C++ function.
g) The remainder operator (%) can be used only with integer operands.
h) The arithmetic operators *, /, %, + and – all have the same level of precedence.
i) A C++ program that prints three lines of output must contain three statements using cout and the stream insertion operator.
a) False. Comments do not cause any action to be performed when the program is exe
cuted. They’re used to document programs and improve their readability.
b) True.
c) True.
d) True.
e) False. C++ is case sensitive, so these variables are different.
f) True.
g) True.
h) False. The operators *, / and % have the same precedence, and the operators + and - have
a lower precedence.
i) False. One statement with cout and multiple \n escape sequences can print several lines.
State whether each of the following is true or false. If false, explain why.
a) By convention, function names begin with a capital letter and all subsequent words in
the name begin with a capital letter.
b) Empty parentheses following a function name in a function definition indicate that the
function does not require any parameters to perform its task.
c) Data members or member functions declared with access specifier private are accessi
ble to member functions of the class in which they’re declared.
d) Variables declared in the body of a particular member function are known as data mem
bers and can be used in all member functions of the class.
e) Every function’s body is delimited by left and right braces ({ and }).
f) The types of arguments in a function call must be consistent with the types of the cor
responding parameters in the function’s parameter list.
3.2
a) False. Function names begin with a lowercase letter and all subsequent words in the
name begin with a capital letter. b) True. c) True. d) False. Such variables are local variables and can
be used only in the member function in which they’re declared. e) True. f) True.
State whether each of the following is true or false. If the answer is false, explain why.
a) The default case is required in the switch selection statement.
b) The break statement is required in the default case of a switch selection statement to
exit the switch properly.
c) The expression (x > y && a < b) is true if either the expression x>y is true or the ex
pression a<b is true.
d) An expression containing the || operator is true if either or both of its operands are true
a) False. The default case is optional. Nevertheless, it’s considered good software engi
neering to always provide a default case.
b) False. The break statement is used to exit the switch statement. The break statement
is not required when the default case is the last case. Nor will the break statement be
required if having control proceed with the next case makes sense.
c) False. When using the && operator, both of the relational expressions must be true for
the entire expression to be true.
d) True.
7.2
(True or False) State whether the following are true or false. If the answer is false, explain
why.
a) A given array can store many different types of values.
b) An array subscript should normally be of data type float.
c) If there are fewer initializers in an initializer list than the number of elements in the ar
ray, the remaining elements are initialized to the last value in the initializer list.
d) It’s an error if an initializer list has more initializers than there are elements in the array.
7.2
a) False. An array can store only values of the same type.
b) False. An array subscript should be an integer or an integer expression.
c) False. The remaining elements are initialized to zero.
d) True.
(True or False) Determine whether each of the following is true or false. If false, explain why.
a) To refer to a particular location or element within an array, we specify the name of the
array and the value of the particular element.
b) An array definition reserves space for an array.
c) To reserve 100 locations for integer array p, you write
p[100];
d) A for statement must be used to initialize the elements of a 15-element array to zero.
e) Nested for statements must be used to total the elements of a two-dimensional array.
State whether each of the following is true or false. If the answer is false, explain why.
a) The address operator & can be applied only to constants and to expressions.
b) A pointer that is declared to be of type void* can be dereferenced.
c) A pointer of one type can’t be assigned to one of another type without a cast operation.
a) False. The operand of the address operator must be an lvalue; the address operator can
not be applied to literals or to expressions that result in temporary values.
b) False. A pointer to void cannot be dereferenced. Such a pointer does not have a type
that enables the compiler to determine the type of the data and the number of bytes of
memory to which the pointer points.
c) False. Pointers of any type can be assigned to void pointers. Pointers of type void can
be assigned to pointers of other types only with an explicit type cast.
(True or False) State whether the following are true or false. If false, explain why.
a) Two pointers that point to different built-in arrays cannot be compared meaningfully.
b) Because the name of a built-in array is implicitly convertible to a pointer to the first el
ement of the built-in array, built-in array names can be manipulated in the same man
ner as pointers.
State whether each of the following is true or false. If false, explain why.
a) Base-class constructors are not automatically inherited by derived classes.
b) A has-a relationship is implemented via inheritance.
c) A Car class has an is-a relationship with the SteeringWheel and Brakes classes.
d) When a derived-class object is destroyed, the destructors are called in the reverse order
of the constructors.
11.2
a) True. b) False. A has-a relationship is implemented via composition. An is-a relationship
is implemented via inheritance. c) False. This is an example of a has-a relationship. Class Car has an
is-a relationship with class Vehicle. d) True.
====下
(True or False) State whether each of the following is true or false. If the answer is false, ex
plain why.
a) The stream member function flags with a long argument sets the flags state variable
to its argument and returns its previous value.
b) The stream insertion operator << and the stream extraction operator >> are overloaded
to handle all standard data types—including strings and memory addresses (stream in
sertion only)—and all user-defined data types.
c) The stream member function flags with no arguments resets the stream’s format state.
d) Input with the stream extraction operator >> always skips leading white-space characters
in the input stream, by default.
e) The stream member function rdstate returns the current state of the stream.
f) The cout stream normally is connected to the display screen.
g) The stream member function good returns true if the bad, fail and eof member func
tions all return false.
h) The cin stream normally is connected to the display screen.
i) If a nonrecoverable error occurs during a stream operation, the bad member function
will return true.
j) Output to cerr is unbuffered and output to clog is buffered.
k) Stream manipulator showpoint forces floating-point values to print with the default six
digits of precision unless the precision value has been changed, in which case floating
point values print with the specified precision.
l) The ostream member function put outputs the specified number of characters.
m) The stream manipulators dec, oct and hex affect only the next integer output operation.
13.2
a) False. The stream member function flags with a fmtflags argument sets the flags state
variable to its argument and returns the prior state settings. b) False. The stream insertion and
stream extraction operators are not overloaded for all user-defined types. You must specifically pro
vide the overloaded operator functions to overload the stream operators for use with each user-de
fined type you create. c) False. The stream member function flags with no arguments returns the
current format settings as a fmtflags data type, which represents the format state. d) True. e) True.
f) True. g) True. h) False. The cin stream is connected to the standard input of the computer,
which normally is the keyboard. i) True. j) True. k) True. l) False. The ostream member function
put outputs its single-character argument. m) False. The stream manipulators dec, oct and hex set
the output format state for integers to the specified base until the base is changed again or the pro
gram terminates.