Scott/Jones · Scott/Jones · Scott/Jones · Scott/Jones · Scott/Jones · Scott/Jones · Scott/Jones · Scott/Jones

Home | Textbook Catalog | Order Book | Syllabi

 

 

Save 12% over most
bookstore prices by ordering
directly from Scott/Jones!

C BY DISCOVERY, 3rd EDITION
by L.S. Foster
(California State University Long Beach) and
W. D. Foster
(California State University San Marcos)
 


Visit the author's web site


What's the same?
  • Attention to detail
  • Carefully annotated code
  • Precise descriptions
  • Comprehensive coverage
What's different?
  • All the programs now comply with the ANSI C Standards. Every program correctly returns type int to gently introduce the students to programs communicating with the underlying operating system.
  • The discussion of arrays appears before the discussion of pointers to make the presentation more easily understood by lower division students.
  • The library functions malloc() and calloc() are introduced when pointers are introduced as an additional emphasis that pointers need to be initialized. However, if an instructor wished to delay to discussion of malloc() and calloc() until later in the text, this is still possible.
  • A Chapter on C++ has been added. The chapters points out the similarities and differences in C and C++ syntax and provides a brief introduction to Object Oriented Programming by discussing C++ 's support for data abstraction, polymorphism, and inheritance.
  • The section on pointers to functions has been reworked to provide an example that is more immediately usable to students, and has more value as a reference. The example demonstrates the qsort() library function and presents several functions whose pointers are passed as parameters to qsort().
  • All programs have been updated in view of recent changes to the C library. In addition the authors test the programs on 2 UNIX systems, a Borland compiler and Visual C++.
When was the last time you heard this from a student
about the textbook you assigned?


"Dr. Foster,
I had heard great things about your book, (and) my first test I received a 95 percent and there isn't a doubt in my mind that that's a credit to your book. If your book were not the text there's a strong possibility I would have dropped the class by now; so I really appreciate the effort you took in writing such an exceptional book. The reason I wrote, I wanted to inquire to see if you had written a C++ text?"
—Gregory Bouras, student at Saddleback College
TABLE OF CONTENTS

Chapter 1 Getting Started
1.1 What to Expect from C
1.2 Fundamentals—Reserved Words, Identifiers, the Character Set
1.3 Subprograms or Functions in C
1.4 An Introduction to Output in C
1.5 Input and Output with Variables
1.6 Arithmetic Operations
1.7 Introduction to Functions and Structured Programming in C

Chapter 2 Gaining Control
2.1 Expressions and Statements
2.2 Blocks and Compound Statements
2.3 The if and if-else Statements
2.4 Relational Operators and Expressions
2.5 The While Loop
2.6 Logical Operators and Expressions
2.7 The For Loop
2.8 Making C Readable—Programming Style

Chapter 3 Basic Data Types
3.1 Introduction to Scalar Types in C
3.2 Integers and Different Integer Bases
3.3 The Integer Types
3.4 The sizeof() Operator
3.5 Character Variables
3.6 Unsigned Types
3.7 ANSI C and Integer Types
3.8 If There's Time or Need: Bit Operations on the Integer Types
3.9 Floating Point Types
3.10 Types of Expressions and Automatic Conversions
3.11 Forced Type Conversions

Chapter 4 Arrays and Pointers
4.1 One Dimensional Arrays
4.2 Initialization of Arrays
4.3 Arrays as Parameters to Functions
4.4 Getting Started with Pointers
4.5 Pointer Arithmetic
4.6 Dereferencing a Pointer Variable
4.7 An Array as a Pointer
4.8 Passing Parameters to Functions
4.9 Pointers and Dynamic Memory Allocation

Chapter 5 Strings
5.1 Introduction to Strings
5.2 Variable Strings
5.3 Input and Output of Strings
5.4 The Common String Library Functions
5.5 Examples with strlen() and strchr()
5.6 Two Versions of strcat()

Chapter 6 Keeping Control
6.1 Introduction
6.2 The do-while Statement
6.3 The switch Statement
6.4 Altering the Flow of Control
6.5 Getting Out Gracefully
6.6 If There's Time or Need: The goto Statement and Labels
6.7 If There's Time or Need: Using Recursion

Chapter 7 Structuring the Data
7.1 Introduction to Structures
7.2 Operations on Structures
7.3 Using Structures with Arrays and Pointers
7.4 Bit Fields
7.5 Enumerated Types
7.6 Unions

Chapter 8 Intraprogram Communication
8.1 Introduction
8.2 Automatic versus Static Variables
8.3 Global versus Local Variables
8.4 Modules and External Variables
8.5 Typedefs
8.6 Function Definitions
8.7 Function Declarations and Calls
8.8 Pointers to Functions

Chapter 9 Multidimensional Arrays and Double Indirection
9.1 Two-Dimensional Arrays
9.2 Storage Class and Scope of Multidimensional Arrays
9.3 Multidimensional Arrays as Parameters to Functions
9.4 Arrays with More Than Two Dimensions
9.5 Arrays of Pointers
9.6 Double Indirection
9.7 Command Line Parameters

Chapter 10 Input and Output
10.1 Review of Input and Output
10.2 An Introduction to Files in C
10.3 Character Input and Output
10.4 String Input and Output
10.5 Reading Blocks of Data at a Time
10.6 Formatted Input and Output
10.7 Random versus Sequential Access in Files

Chapter 11 C Library and Preprocessor Facilities
11.1 Introduction to the C Library
11.2 Error Handling with the ANSI C Library
11.3 Using Mathematical Functions
11.4 Character Manipulation
11.5 Dynamic Allocation and De-allocation of Memory
11.6 A Linked List—The Theory and an Example
11.7 Defining Macros
11.8 Conditional Compilation

Chapter 12 Discovering C++
12.1 Introduction
12.2 Some Added Features
12.3 C++ and OOP—Data Abstraction and Encapsulation
12.4 C++ and OOP—Polymorphism
12.5 C++ and OOP—Inheritance
12.6 More about Input and Output
12.7 Libraries

800 pages
ISBN 1-57676-041-3

Home | Textbook Catalog | Order Book | Syllabi


Scott/Jones Inc., El Granada CA
Website maintenance & updating by
Jane Scott/Jones.
Updated
January 16, 2004.