Solution Manual for Problem Solving and Program Design in C 7E 7th Edition

September 27, 2017 | Author: Nugroho Adi Sudantoko | Category: C (Programming Language), Software Development, Notation, Software, Computer Engineering
Share Embed Donate


Short Description

Solution for problem solving program design in C...

Description

Chapter 2

Overview of C

Chapter Objectives

1.

Present the origins of the C language, and introduce the structure of simple C programs through the presentation of small sample programs.

2.

Describe the simple data types int, double, and char.

3.

Discuss the internal representations of type int, double, and char values.

4.

Introduce the basic use of the input/output functions printf and scanf.

5.

Present the preprocessor directives #include and #define.

6.

Discuss the use of input and output format strings with placeholders for character and numeric data.

7.

Introduce the proper use of comments as a means of program documentation.

8.

Present the assignment statement along with the basic arithmetic operators and type casts and their use in writing simple arithmetic expressions.

9.

Describe the process of writing simple programs that perform input, computation of numeric results, and output.

10.

Introduce the problem of numerical inaccuracies in computations using type double values.

11.

Review automatic and explicit conversion of data types.

12.

Discuss input/output redirection and program-controlled files, and present the differences between interactive and batch processing of data.

Notes and Suggestions

Section 2.1. The beginning student often is confused about the difference between reserved words and standard identifiers, so you should emphasize the difference. Students will also benefit from a clear presentation of the two stages of the translation of a C program. If they understand the role of the preprocessor, they will see as reasonable the fact that a constant macro's value cannot be modified by a program. Emphasize the importance of choosing meaningful names for variables. If some students resist the extra typing required to enter meaningful names, you may want to prepare two versions of the same program, one with single-letter names and the other with meaningful names. Students will quickly see which is more readable.

Section 2.2. Stress the meaning of the term "data type." Understanding this term early will make it easier for students to comprehend the concept of defining their own types. This section provides a brief introduction to the topics of internal representation of numbers and computational error. Students may be surprised to learn that computers do not perform real arithmetic calculations precisely. This is a very important point to emphasize now so that students will understand the benefits of using integers when possible. This text's use of type double rather than type float postpones students' recognition of some of the most obvious consequences of representational error.

Refer students to the character codes in Appendix A when discussing this section. point out the gaps in the EBCDIC codes for alphabetic letters.

Be sure to

Section 2.3. Students often confuse the C assignment operator with the equal sign from algebra, which makes the statement x = x + 1; appear as nonsense. When you read an assignment statement aloud, always pronounce the = as "becomes" or "is assigned" to emphasize that the assignment statement's effect is to compute a value to be placed in the memory cell named by the variable on the left. In a similar vein, some students incorrectly view assignment statements as spreadsheet-like identities that automatically update the left side whenever the right side changes. Consider the following C statements: b = 2; a = b + 1; b = 3; printf("%d", a); A student who expects an output of 4 has fallen into this trap. When presenting the input/output functions scanf and printf, emphasize the differences between the input list of scanf and the output list of printf. We have intentionally delayed presentation of the input of strings so that at this point the & operator is required on all entries in scanf's input list. You should draw a picture of computer memory for a particular input/output statement sequence, and show students the difference between what scanf needs to know (i.e., addresses of variables) and what printf needs to know (i.e., the values to print). Also do exercises that stress the fact that the numeric format placeholders %d and %lf skip over blanks and carriage returns in the input, but the %c placeholder skips nothing unless it is preceded by a blank in the format string. Another instructive example is one in which a call to

printf begins a line of output, but does not complete it with the \n escape sequence. The student should be aware that the output may not be displayed if the program terminates because of an error before the line is completed.

Section 2.4. Beginning students of C, especially those who have taught themselves to program in another language, are frequently very resistant to principles of good program documentation and the importance of readability. "War stories" about the grief of maintenance programmers expected to update unreadable code or of your own former students who have encountered poor documentation in their first jobs will help to counter the notion that the only measure of a good program is whether it works. The following definition may help to put comments, meaningful names, and eyepleasing spacing in the proper perspective: A program is a document, part of which executes on a computer.

Section 2.5. Stress that data types are abstractions for real-world data objects. Point out that we do not need to know the details of the representation of int, double, and char variables because we are provided with operators with which to manipulate these data types and functions with which to get and display values. Encourage students to use the step-by-step evaluation approach illustrated in Fig. 2.9 through Fig. 2.11 when they need to evaluate an expression containing more than one operator.

Section 2.6. Remind students that when outputting numeric data using a placeholder with a specific field width, the field width is automatically increased to display a number whose magnitude is too large for the field. Students are often confused when they discover that the number of decimal places specified by a placeholder is absolute: the fraction is rounded to fit the field.

Section 2.7. Before covering this section, investigate how the computer system the students use handles input/output redirection. Give students explicit instructions on how to run the batch program in Fig. 2.13.

Section 2.8. Go over with students the precise output produced by your ANSI C compiler. Emphasize the differences between syntax errors, run-time errors, and result errors.

New Terms

Introduction

C, 1972 UNIX

AT&T Bell Laboratories

Dennis Ritchie

Section 2.1

comment

preprocessor

preprocessor directive

#include

#define

library

functions

printf

scanf



declarations

executable statements

constant macro

standard libraries

main

prototype

reserved words

identifiers

variable

variable declaration

data type

identifier

int

void

double

char

scientific notation

ASCII

printable character

control character

executable statement

assignment statement

assignment operator

expression

arithmetic operator

input operation

output operation

input/output functions

function call

format string

input list

standard input device

placeholder

conversion specification

address-of operator

return statement

print list

escape sequence

newline

prompting message

function argument

user-defined identifier

Section 2.2

collating sequence

Section 2.3

Section 2.4

blank space

program documentation

Section 2.5

integer division

remainder operator

step-by-step evaluation

mixed-type expression

unary operator

binary operator

operator precedence rule

associativity rule

right associativity

left associativity

evaluation tree

type cast

round-off error

mantissa

exponent

representational error

cancellation error

arithmetic underflow

arithmetic overflow

type conversion

Section 2.6

field width

right justified

decimal places

interactive mode

batch mode

echo print

input/output redirection

program-controlled file

Section 2.7

Section 2.8

bugs

debugging

error message

syntax error

compilation error

run-time error

diagnostic message

compiler listing

logic error

CHAPTER 2

SECTION 2.1 1. a. void, double, return b. printf c. MAX_ENTRIES, G d. time, xyz123, this_is_a_long_one e. Sue's, part#2, "char", #include 3. The preprocessor; #define and #include SECTION 2.2 1. a. 0.0103 1234500.0 123450.0 b. 1.3e+3 1.2345e+2 4.26e-3 3. double, int, char SECTION 2.3 1. Enter two integers> 5 7 m = 10 n = 21 3. My name is Jane Doe. I live in Ann Arbor, MI and I have 11 years of programming experience. SECTION 2.4 1. /* This is a comment? */ /* This one seems like a comment doesn't it */ SECTION 2.5 1. a. 22 / 7 is 3 7 / 22 is 0 22 % 7 is 1 7 % 22 is 7 b. 16 / 15 is 1 15 / 16 is 0 16 % 15 is 1 15 % 16 is 15 c. 23 / 3 is 7 3 / 23 is 0 23 % 3 is 2 3 % 23 is 3 d. 16 / -3 is ?? -3 / 16 is ?? 16 % -3 is ?? -3 % 16 is ?? (?? means the result varies)

3. a. 3 g. undefined m. -3.14159 b. ?? h. undefined n. 1.0

c. 1 i. ?? o. 1 d. -3.14159 j. 3 p. undefined e. ?? k. -3.0 q. 3 f. 0.0 l. 9 r. 0.75 (?? means the result varies) 5. a. white is 1.6666... c. orange is 0 e. lime is 2 b. green is 0.6666... d. blue is -3.0 f. purple is 0.0 7. underflow SECTION 2.6 1. printf("Salary is %10.2f\n", salary); 3. x..is....12.34....i..is..100 i..is..100 x..is..12.3 SECTION 2.7 1. Calls to printf to display prompts precede calls to scanf to obtain data. Calls to printf follow calls to scanf when data are echoed. Prompts are used in interactive programs but not in batch programs. Batch programs should echo input; interactive programs may also echo input.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF