Solution Manual for Problem Solving and Program Design in C 7E 7th Edition
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