Introduction to C++
Programming, Input/Output
and Operators
2
What’s in a name? that
which we call a rose
By any other name
would smell as sweet.
—William Shakespeare
High thoughts must have high
language.
—Aristophanes
One person can make a
difference and every person
should try.
—John F. Kennedy
Objectives
In this chapter you’ll learn:
■
■
■
■
■
■
■
To write simple computer
programs in C++.
To write simple input and
output statements.
To use fundamental types.
Basic computer memory
concepts.
To use arithmetic operators.
The precedence of arithmetic
operators.
To write simple decisionmaking statements.
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
2
Chapter 2 Introduction to C++ Programming, Input/Output and Operators
Self-Review Exercises
2.1
Fill in the blanks in each of the following.
.
a) Every C++ program begins execution at the function
ANS: !4(`.
b) A(n)
begins the body of every function and a(n)
ends the body.
ANS: left brace (+), right brace (\)
.
c) Most C++ statements end with a(n)
ANS: semicolon.
d) The escape sequence Y` represents the
character, which causes the cursor to
position to the beginning of the next line on the screen.
ANS: semicolon.
e) The
statement is used to make decisions.
ANS: (..
2.2
State whether each of the following is true or false. If false, explain why. Assume the statement TW(`, WU1LL2_TU$ is used.
a) Comments cause the computer to print the text after the 55 on the screen when the program is executed.
ANS: False. Comments do not cause any action to be performed when the program is executed. They’re used to document programs and improve their readability.
b) The escape sequence Y`, when output with 2_TU and the stream insertion operator,
causes the cursor to position to the beginning of the next line on the screen.
ANS: True.
c) All variables must be declared before they’re used.
ANS: True.
d) All variables must be given a type when they’re declared.
ANS: True.
e) C++ considers the variables `T!30Z and @TC3GZ to be identical.
ANS: False. C++ is case sensitive, so these variables are different.
f) Declarations can appear almost anywhere in the body of a C++ function.
ANS: True.
g) The modulus operator ()) can be used only with integer operands.
ANS: True.
h) The arithmetic operators ], 5, ), < and – all have the same level of precedence.
ANS: False. The operators ], 5 and ) have the same precedence, and the operators < and D
have a lower precedence.
i) A C++ program that prints three lines of output must contain three statements using
2_TU and the stream insertion operator.
ANS: False. One statement with 2_TU and multiple Y` escape sequences can print several
lines.
2.3
TW(`,
Write a single C++ statement to accomplish each of the following (assume that neither
declarations nor a TW(`, directive have been used):
a) Declare the variables 2, U*(WEWO94Z(43"0, [AN>?- and `T!30Z to be of type (`U (in one
statement).
ANS: int 28 U*(WEWO94Z(43"08 [AN>?-8 `T!30Z$
b) Prompt the user to enter an integer. End your prompting message with a colon (L) followed by a space and leave the cursor positioned after the space.
ANS: WU1LL2_TU XX "Enter an integer: "$
c) Read an integer from the user at the keyboard and store it in integer variable 4,0.
ANS: WU1LL2(` SS 4,0$
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Self-Review Exercises
d) If the variable `T!30Z is not equal to A, print 7;*0
3
R4Z(43"0 `T!30Z (W `_U 0[T4" U_ A7.
ANS: if : `T!30Z #Q 7 B
WU1LL2_TU XX "The variable number is not equal to 7\n"$
e) Print the message 7;*(W (W 4 J<< ^Z_,Z4!7 on one line.
ANS: WU1LL2_TU XX "This is a C++ program\n"$
f) Print the message 7;*(W (W 4 J<< ^Z_,Z4!7 on two lines. End the first line with J<<.
ANS: WU1LL2_TU XX "This is a C++\nprogram\n"$
g) Print the message 7;*(W (W 4 J<< ^Z_,Z4!7 with each word on a separate line.
ANS: WU1LL2_TU XX "This\nis\na\nC++\nprogram\n"$
h) Print the message 7;*(W (W 4 J<< ^Z_,Z4!7% Separate each word from the next by a tab.
ANS: WU1LL2_TU XX "This\tis\ta\tC++\tprogram\n"$
2.4
Write a statement (or comment) to accomplish each of the following (assume that
declarations have been used for 2(`, 2_TU and 0`1"):
a) State that a program calculates the product of three integers.
TW(`,
ANS: 55 J4"2T"4U0 U*0 ^Z_1T2U _. U*Z00 (`U0,0ZW
b) Declare the variables M, K, H and Z0WT"U to be of type (`U (in separate statements) and
initalize each to 0.
ANS: int M Q 0$
int K Q 0$
int H Q 0$
int Z0WT"U Q 0$
c) Prompt the user to enter three integers.
ANS: 2_TU XX "Enter three integers: "$
d) Read three integers from the keyboard and store them in the variables M, K and H.
ANS: 2(` SS M SS K SS H$
e) Compute the product of the three integers contained in variables M, K and H, and assign
the result to the variable Z0WT"U.
ANS: Z0WT"U Q M ] K ] H$
f) Print 7;*0
^Z_1T2U (W 7
followed by the value of the variable Z0WT"U.
ANS: 2_TU XX "The product is " XX Z0WT"U XX 0`1"$
g) Return a value from !4(` indicating that the program terminated successfully.
ANS: return 0$
2.5
Using the statements you wrote in Exercise 2.4, write a complete program that calculates
and displays the product of three integers. Add comments to the code where appropriate. [Note:
You’ll need to write the necessary TW(`, declarations or directive.]
ANS: (See program below.)
1
2
3
4
5
6
7
8
9
10
11
12
55 J4"2T"4U0 U*0 ^Z_1T2U _. U*Z00 (`U0,0ZW
#include X(_WUZ04!S 55 4""_PW ^Z_,Z4! U_ ^0Z._Z! (`^TU 4`1 _TU^TU
using namespace WU1$ 55 ^Z_,Z4! TW0W `4!0W .Z_! U*0 WU1 `4!0W^420
55 .T`2U(_` !4(` 30,(`W ^Z_,Z4! 0M02TU(_`
int !4(`:B
+
int M Q 0$ 55 .(ZWU (`U0,0Z U_ !T"U(^"K
int K Q 0$ 55 W02_`1 (`U0,0Z U_ !T"U(^"K
int H Q 0$ 55 U*(Z1 (`U0,0Z U_ !T"U(^"K
int Z0WT"U Q 0$ 55 U*0 ^Z_1T2U _. U*0 U*Z00 (`U0,0ZW
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
4
13
14
15
16
17
Chapter 2 Introduction to C++ Programming, Input/Output and Operators
2_TU XX "Enter three integers: "$ 55 ^Z_!^U TW0Z ._Z 14U4
2(` SS M SS K SS H$ 55 Z041 U*Z00 (`U0,0ZW .Z_! TW0Z
Z0WT"U Q M ] K ] H$ 55 !T"U(^"K U*0 U*Z00 (`U0,0ZW$ WU_Z0 Z0WT"U
2_TU XX "The product is " XX Z0WT"U XX 0`1"$ 55 ^Z(`U Z0WT"U$ 0`1 "(`0
\ 55 0`1 .T`2U(_` !4(`
2.6
Identify and correct the errors in each of the following statements (assume that the statement TW(`, WU1LL2_TU$ is used):
a) if : 2 X 7 B$
2_TU XX "c is less than 7\n"$
ANS: Error: Semicolon after the right parenthesis of the condition in the (. statement.
Correction: Remove the semicolon after the right parenthesis. [Note: The result of this
error is that the output statement executes whether or not the condition in the (.
statement is true.] The semicolon after the right parenthesis is a null (or empty) statement that does nothing. We’ll learn more about the null statement in Chapter 4.
b)
if : 2 QS 7 B
2_TU XX "c is equal to or greater than 7\n"$
ANS: Error: The relational operator QS.
Correction: Change QS to SQ, and you may want to change “equal to or greater than”
to “greater than or equal to” as well.
Exercises
NOTE: Solutions to the programming exercises are located in the ch02solutions folder.
2.7
Discuss the meaning of each of the following objects:
a) WU1LL2(`
ANS: This object refers to the standard input device that is normally connected to the keyboard.
b) WU1LL2_TU
ANS: This object refers to the standard output device that is normally connected to the
screen.
2.8
Fill in the blanks in each of the following:
are used to document a program and improve its readability.
a)
ANS: Comments
.
b) The object used to print information on the screen is
ANS: WU1LL2_TU
c) A C++ statement that makes a decision is
.
ANS: (.
d) Most calculations are normally performed by
statements.
ANS: assignment
e) The
object inputs values from the keyboard.
ANS: WU1LL2(`
2.9
Write a single C++ statement or line that accomplishes each of the following:
a) Print the message 7G`U0Z UP_ `T!30ZW7.
ANS: 2_TU XX "Enter two numbers"$
b) Assign the product of variables 3 and 2 to variable 4.
ANS: 4 Q 3 ] 2$
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
Exercises
5
c) State that a program performs a payroll calculation (i.e., use text that helps to document
a program).
ANS: 55 =4KZ_"" 24"2T"4U(_` ^Z_,Z4!
d) Input three integer values from the keyboard into integer variables 4, 3 and 2.
ANS: 2(` SS 4 SS 3 SS 2$
2.10
State which of the following are true and which are false. If false, explain your answers.
a) C++ operators are evaluated from left to right.
ANS: False. Some operators are evaluated from left to right, while other operators are evaluated right to left.
b) The following are all valid variable names: FT`10ZF34ZF, !/IV6>-, U?, 'A, *0ZFW4"0W,
*(WF422_T`UFU_U4", 4, 3, 2, H, HI.
ANS: True.
c) The statement 2_TU XX 74 Q ?$7; is a typical example of an assignment statement.
ANS: False. The statement is an output statement. The text 4 Q ?$ is output to the screen.
d) A valid C++ arithmetic expression with no parentheses is evaluated from left to right.
ANS: False. Arithmetic operators can appear in any order in an expression, so the expression is 4 Q 3 < 2 ] 1$ actually evaluates from right to left because of the rules of operator precedence.
e) The following are all invalid variable names: >,, VA, NA*I, *II, I*.
ANS: False. *II is a valid variable name. The others are invalid because they each begin with
a digit.
2.11
Fill in the blanks in each of the following:
a) What arithmetic operations are on the same level of precedence as multiplication?
.
ANS: division and modulus.
b) When parentheses are nested, which set of parentheses is evaluated first in an arithmetic
expression?
.
ANS: innermost.
c) A location in the computer’s memory that may contain different values at various times
throughout the execution of a program is called a(n)
.
ANS: variable.
2.12 What, if anything, prints when each of the following C++ statements is performed? If nothing prints, then answer “nothing.” Assume M Q I and K Q >.
a) 2_TU XX M$
ANS: I
b)
2_TU XX M < M$
ANS: -
c)
2_TU XX "x="$
ANS: MQ
d)
2_TU XX "x = " XX M$
ANS: M Q I
e)
2_TU XX M < K XX " = " XX K < M$
ANS: ? Q ?
f)
H Q M < K$
ANS: nothing.
g)
2(` SS M SS K$
ANS: nothing.
h)
55 2_TU XX 7M < K Q 7 XX M < K$
ANS: nothing (because it is a comment).
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved
6
Chapter 2 Introduction to C++ Programming, Input/Output and Operators
i)
2_TU XX "\n"$
ANS: A newline is output which positions the cursor at the beginning of the next line on
the screen.
2.13
Which of the following C++ statements contain variables whose values are replaced?
a) 2(` SS 3 SS 2 SS 1 SS 0 SS .$
b) ^ Q ( < ' < & < A$
c) 2_TU XX "variables whose values are replaced"$
d) 2_TU XX "a = 5"$
ANS: Parts (a) and (b).
2.14 Given the algebraic equation y = ax 3 + 7, which of the following, if any, are correct C++
statements for this equation?
a) K Q 4 ] M ] M ] M < 7$
b) K Q 4 ] M ] M ] : M < 7 B$
c) K Q : 4 ] M B ] M ] : M < 7 B$
d) K Q :4 ] MB ] M ] M < 7$
e) K Q 4 ] : M ] M ] M B < 7$
f) K Q 4 ] M ] : M ] M < 7 B$
ANS: Parts (a), (d) and (e).
2.15 (Order of Evalution) State the order of evaluation of the operators in each of the following
C++ statements and show the value of M after each statement is performed.
a) M Q 7 < 3 ] 6 5 2 D 1$
ANS: ]8 58 <8 D8 Q8 6?
b)
M Q 2 ) 2 < 2 ] 2 D 2 5 2$
ANS: )8 ]8 58 <8 D8 Q8 >
c)
M Q : 3 ] 9 ] : 3 < : 9 ] 3 5 : 3 B B B B$
ANS: innermost parentheses around >, ], 5, <, ], ]8 >I-
2.22
What does the following code print?
2_TU XX "*\n**\n***\n****\n*****" XX 0`1"$
ANS: ]
]]
]]]
]]]]
]]]]]
© 2014 Pearson Education, Inc., Upper Saddle River, NJ. All Rights Reserved