Friday, 6 January 2017

Object-Oriented Programming in C++ Fourth Edition By Robert Lafore Chapter-3 C++ Loops and Decisions -- Questions+Exercises

Leave a Comment
Object-Oriented Programming in C++ Fourth Edition By Robert Lafore Chapter-3 C++ Loops and Decisions  -- Questions+Exercises

Questions


1. A relational operator
            a. assigns one operand to another.
            b. yields a Boolean result.
            c. compares two operands.
            d. logically combines two operands.

Answer: b, c

2. Write an expression that uses a relational operator to return true if the variable george is not equal to sally.

Answer: george != sally

3. Is –1 true or false?

Answer: –1 is true; only 0 is false.

4. Name and describe the usual purpose of three expressions in a for statement.

Answer: The initialize expression initializes the loop variable, the test expression tests the loop
variable, and the increment expression changes the loop variable.

5. In a for loop with a multistatement loop body, semicolons should appear following
            a. the for statement itself.
            b. the closing brace in a multistatement loop body.
            c. each statement within the loop body.
            d. the test expression.

Answer: c, d

6. True or false: The increment expression in a for loop can decrement the loop variable.

Answer: True

7. Write a for loop that displays the numbers from 100 to 110.

Answer: 

for(int j=100; j<=110; j++)

cout << endl << j;

8. A block of code is delimited by ________________.

Answer: braces (curly brackets)

9. A variable defined within a block is visible
            a. from the point of definition onward in the program.
            b. from the point of definition onward in the function.
            c. from the point of definition onward in the block.
            d. throughout the function.

Answer: c

10. Write a while loop that displays the numbers from 100 to 110.

Answer: 


int j = 100;
while( j <= 110 )
cout << endl << j++;


11. True or false: Relational operators have a higher precedence than arithmetic operators.

Answer: False 

12. How many times is the loop body executed in a do loop?

Answer: at least one

13. Write a do loop that displays the numbers from 100 to 110.

Answer: 

int j = 100;
do
cout << endl << j++;

while( j <= 110 );

14. Write an if statement that prints Yes if a variable age is greater than 21.

Answer: 

if(age > 21)

cout << “Yes”;

15. The library function exit() causes an exit from
            a. the loop in which it occurs.
            b. the block in which it occurs.
            c. the function in which it occurs.
            d. the program in which it occurs.

Answer: D

16. Write an if...else statement that displays Yes if a variable age is greater than 21, and displays No otherwise.

Answer: 


if( age > 21 )
cout << “Yes”;
else
cout << “No”;

17. The getche() library function
            a. returns a character when any key is pressed.
            b. returns a character when Enter is pressed.
            c. displays a character on the screen when any key is pressed.
            d. does not display a character on the screen.

Answer:a,c 

18. What is the character obtained from cin when the user presses the Enter key?

Answer: ‘\r’

19. An else always matches the _________ if, unless the if is _________.

Answer: preceding, surrounded by braces

20. The else...if construction is obtained from a nested if...else by ________________.

Answer: reformatting

21. Write a switch statement that prints Yes if a variable ch is ‘y’,prints No if ch is ‘n’, and prints Unknown response otherwise.

Answer: 

switch(ch)
{
case ‘y’:
cout << “Yes”;
break;
case ‘n’:
cout << “No”;
break;
default:
cout << “Unknown response”;

}



22. Write a statement that uses a conditional operator to set ticket to 1 if speed is greater than 55, and to 0 otherwise.

Answer: ticket = (speed > 55) ? 1 : 0;

23. The && and || operators
            a. compare two numeric values.
            b. combine two numeric values.
            c. compare two Boolean values.
            d. combine two Boolean values.

Answer: d

24. Write an expression involving a logical operator that is true if limit is 55 and speed is
greater than 55.

Answer: limit == 55 && speed > 55

25. Arrange in order of precedence (highest first) the following kinds of operators: logical, unary, arithmetic, assignment, relational, conditional.

Answer: unary, arithmetic, relational, logical, conditional, assignment

26. The break statement causes an exit
            a. only from the innermost loop.
            b. only from the innermost switch.
            c. from all loops and switches.
            d. from the innermost loop or switch.

Answer: d

27. Executing the continue operator from within a loop causes control to go to ________.

Answer: the top of the loop

28. The goto statement causes control to go to
            a. an operator.
            b. a label.
            c. a variable.
            d. a function.

Answer: b

Exercises


1. Assume that you want to generate a table of multiples of any given number. Write a pro- gram that allows the user to enter the number and then generates the table, formatting it into 10 columns and 20 lines. Interaction with the program should look like this (only the first three lines are shown):

Enter a number: 7
7   14   21   28   35   42   49   56   63   70
77   84   91   98  105  112  119  126  133  140
147  154  161  168  175  182  189  196  203  210

Solution: Question 1

2. Write a temperature-conversion program that gives the user the option of converting Fahrenheit to Celsius or Celsius to Fahrenheit. Then carry out the conversion. Use floating-point numbers. Interaction with the program might look like this:

Type 1 to convert Fahrenheit to Celsius,
2 to convert Celsius to Fahrenheit: 1
Enter temperature in Fahrenheit: 70
In Celsius that’s 21.111111

Solution: Question 2

3. Operators such as >>, which read input from the keyboard, must be able to convert a series of digits into a number. Write a program that does the same thing. It should allow the user to type up to six digits, and then display the resulting number as a type long integer. The digits should be read individually, as characters, using getche(). Constructing the number involves multiplying the existing value by 10 and then adding the new digit. (Hint: Subtract 48 or ‘0’ to go from ASCII to a numerical digit.) Here’s some sample interaction:

Enter a number: 123456
Number is: 123456

Solution: Question 3

4. Create the equivalent of a four-function calculator. The program should ask the user to enter a number, an operator, and another number. (Use floating point.) It should then carry out the specified arithmetical operation: adding, subtracting, multiplying, or dividing the two numbers. Use a switch statement to select the operation. Finally, display the result. When it finishes the calculation, the program should ask whether the user wants to do another calculation. The response can be ‘y’ or ‘n’. Some sample interaction with the program might look like this:

Enter first number, operator, second number: 10 / 3
Answer = 3.333333
Do another (y/n)? y

Enter first number, operator, second number: 12 + 100
Answer = 112
Do another (y/n)? n

Solution: Question 4

5. Use for loops to construct a program that displays a pyramid of Xs on the screen. The pyramid should look like this

          X
       XXX
    XXXXX
  XXXXXXX
XXXXXXXXX

except that it should be 20 lines high, instead of the 5 lines shown here. One way to do this is to nest two inner loops, one to print spaces and one to print Xs, inside an outer loop that steps down the screen from line to line.

Solution: Question 5

6. Modify the FACTOR program in this chapter so that it repeatedly asks for a number and calculates its factorial, until the user enters 0, at which point it terminates. You can enclose the relevant statements in FACTOR in a while loop or a do loop to achieve this
effect.

Solution: Question 6

7. Write a program that calculates how much money you’ll end up with if you invest an amount of money at a fixed interest rate, compounded yearly. Have the user furnish the initial amount, the number of years, and the yearly interest rate in percent. Some interaction with the program might look like this:

Enter initial amount: 3000
Enter number of years: 10
Enter interest rate (percent per year): 5.5
At the end of 10 years, you will have 5124.43 dollars.
At the end of the first year you have 3000 + (3000 * 0.055), which is 3165. At the end of the second year you have 3165 + (3165 * 0.055), which is 3339.08. Do this as many times as there are years. A for loop makes the calculation easy.

Solution: 

8. Write a program that repeatedly asks the user to enter two money amounts expressed in old-style British currency: pounds, shillings, and pence. (See Exercises 10 and 12 in Chapter 2, “C++ Programming Basics.”) The program should then add the two amounts and display the answer, again in pounds, shillings, and pence. Use a do loop that asks the user whether the program should be terminated. Typical interaction might be
Enter first amount: £5.10.6
Enter second amount: £3.2.6
Total is £8.13.0
Do you wish to continue (y/n)?
To add the two amounts, you’ll need to carry 1 shilling when the pence value is greater
than 11, and carry 1 pound when there are more than 19 shillings.

Solution: 

9. Suppose you give a dinner party for six guests, but your table seats only four. In how many ways can four of the six guests arrange themselves at the table? Any of the six guests can sit in the first chair. Any of the remaining five can sit in the second chair. Any of the remaining four can sit in the third chair, and any of the remaining three can sit in the fourth chair. (The last two will have to stand.) So the number of possible arrangements of six guests in four chairs is 6*5*4*3,
which is 360. Write a program that calculates the number of possible arrangements for any number of guests and any number of chairs. (Assume there will never be fewer guests than chairs.) Don’t let this get too complicated. A simple for loop should do it.

Solution: 

10. Write another version of the program from Exercise 7 so that, instead of finding the final amount of your investment, you tell the program the final amount and it figures out how many years it will take, at a fixed rate of interest compounded yearly, to reach this amount. What sort of loop is appropriate for this problem? (Don’t worry about fractional years; use an integer value for the year.)

Solution: 

11. Create a three-function calculator for old-style English currency, where money amounts are specified in pounds, shillings, and pence. (See Exercises 10 and 12 in Chapter 2.) The calculator should allow the user to add or subtract two money amounts, or to multiply a money
amount by a floating-point number. (It doesn’t make sense to multiply two money amounts; there is no such thing as square money. We’ll ignore division. Use the general style of the ordinary four function calculator in Exercise 4 in this chapter.)

Solution: 

12. Create a four-function calculator for fractions. (See Exercise 9 in Chapter 2, and Exercise 4 in this chapter.) Here are the formulas for the four arithmetic operations applied to fractions:

Addition: a/b + c/d = (a*d + b*c) / (b*d)
Subtraction: a/b - c/d = (a*d - b*c) / (b*d)
Multiplication: a/b * c/d = (a*c) / (b*d)
Division: a/b / c/d = (a*d) / (b*c)

The user should type the first fraction, an operator, and a second fraction. The program
should then display the result and ask whether the user wants to continue.

Solution: 

If You Enjoyed This, Take 5 Seconds To Share It