For CS1 and other courses covering programming in C. Also appropriate as a supplement for upper-level courses where the instructor uses a book as a reference to the C language. This text is aimed at readers with little or no programming experience.
This is the long-awaited, thorough revision to the world's best-selling introductory C book! Harvey and Paul Deitel have thoroughly updated the book to reflect the latest techniques and ANSI C enhancements, to add detailed introductions to C++, Java, and object-oriented programming, and more. The book's powerful "teach by example" approach is based on more than 10,000 lines of live code, thoroughly explained and illustrated with screen captures showing detailed output.KEY TOPICS:World-renowned corporate trainers and best-selling authors Harvey and Paul Deitel offer the most comprehensive, practical introduction to C ever published -- with hundreds of hands-on exercises, more than 250 complete programs written and documented for easy learning, and exceptional insight into good programming practices, maximizing performance, avoiding errors, debugging, and testing. New features include thorough introductions to C++, Java, and object-oriented programming that build directly on the C skills taught in this book; coverage of graphical user interface development and C library functions; and many new, substantial hands-on projects.MARKET:For anyone who wants to learn C, improve their existing C skills, and understand how C serves as the foundation for C++, Java, and object-oriented development.
DR. HARVEY M. DEITEL CEO of Deitel & Associates, Inc., has 39 years experience in the computing field including extensive industry and academic experience. He is one of the world's leading computer science instructors and seminar presenters. Dr. Deitel earned B.S. and M.S. degrees from the Massachusetts Institute of Technology and a Ph.D. from Boston University. He worked on the pioneering virtual memory operating systems projects at IBM and MIT that developed techniques widely implemented today in systems like UNIX (R), Windows NT (TM), OS/2 and Linux. He has 20 years of college teaching experience including earning tenure and serving as the Chairman of the Computer Science Department at Boston College before founding Deitel & Associates, Inc. with Paul J. Deitel. He is author or co-author of dozens of books and multimedia packages and is currently writing many more. With translations published in Japanese, Russian, Spanish, Elementary Chinese, Advanced Chinese, Korean, French, Portuguese, Polish and Italian the Deitels' texts have earned international recognition. PAUL J. DEITEL, Executive Vice President of Deitel & Associates, Inc., is a graduate of the Massachusetts Institute of Technology's Sloan School of Management where he studied Information Technology. Through Deitel & Associates, Inc. he has delivered Java, C, C++, Internet and World Wide Web courses for industry clients including Compaq, Sun Microsystems, White Sands Missile Range, Rogue Wave Software, Computervision, Stratus, Fidelity, Cambridge Technology Partners, Open Environment Corporation, Once Wave, Hyperion Software, Lucent Technologies, Adra Systems, Entergy, CableData Systems, NASA at the Kennedy Space Center, the National Severe Storm Laboratory, IBM and many other organizations. He has lectured on C++ and Java for the Boston Chapter of the Association for Computing Machinery, and has taught satellite-based Java courses through a cooperative venture of Deitel & Associates, Inc., Prentice Hall and the Technology Education Network. He and his father, Dr. Harvey M. Deitel, are two of the world's best-selling Computer Science authors. The Deitels are co-authors of the best-selling introductory college computer-science programming language textbooks, C++ How to Program: Third Edition, Java How to Program: Third Edition, Visual Basic 6 How to Program (co-authored with Tem R. Nieto) and Internet and World Wide Web How to Program (co-authored with Tem R. Nieto). The Deitels are also co-authors of the C++ Multimedia Cyber Classroom: Third Edition (the first edition of this was Prentice Hall's first multimedia-based textbook), the Java 2 Multimedia Cyber Classroom: Third Edition, the Visual Basic 6 Multimedia Cyber Classroom and the Internet and World Wide Web programming Multimedia Cyber Classroom. The Deitels are also co-authors of The Complete C++ Training Course: Third Edition, The Complete Visual Basic 6 Training Course, The Complete Java 2 Training Course: Third Edition and The Complete Internet and World Wide Web Programming Training Course-these products each contain the corresponding How to Program Series textbook and the corresponding Multimedia Cyber Classroom.
Table of Contents
(NOTE: Each chapter begins with Objectives, an Outline, and an Introduction and ends with a Summary, Terminology, Common Programming Errors, Good Programming Practices, Performance Tips, Portability Tips, Software Engineering Observations, Self-Review Exercises, Answers to Self-Review Exercises, and Exercises.) 1. Introduction to Computers, the Internet and the World Wide Web. What Is a Computer? Computer Organization. Evolution of Operating Systems. Personal Computing, Distributed Computing and Client/Server Computing. Machine Languages, Assembly Languages and High-Level Languages. The History of C. The C Standard Library. The Key Software Trend: Object Technology. C++ and C++ How to Program. Java and Java How to Program. Other High-Level Languages. Structured Programming. The Basics of a Typical C Program Development Environment. Hardware Trends. History of the Internet. History of the World Wide Web. General Notes about C and This Book. 2. Introduction to C Programming. A Simple C Program: Printing a Line of Text. Another Simple C Program: Adding Two Integers. Memory Concepts. Arithmetic in C. Decision Making: Equality and Relational Operators. 3. Structured Program Development in C. Algorithms. Pseudocode. Control Structures. The if Selection Structure. The if/else Selection Structure. The while Repetition Structure. Formulating Algorithms: Case Study 1 (Counter-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 2 (Sentinel-Controlled Repetition). Formulating Algorithms with Top-Down, Stepwise Refinement: Case Study 3 (Nested Controlled Repetition). Assignment Operators. Increment and Decrement Operators. 4. C Program Control. The Essentials of Repetition. Counter-Controlled Repetition. The for Repetition Structure. The for Structure: Notes and Observations. Examples Using the for Structure. The switch Multiple-Selection Structure. The do/while Repetition Structure. The break and continue Statements. Logical Operators. Confusing Equality (==) and Assignment (=) Operators. Structured Programming Summary. 5. C Functions. Program Modules in C. Math Library Functions. Functions. Function Definitions. Function Prototypes. Header Files. Calling Functions: Call by Value and Call by Reference. Random Number Generation. Example: A Game of Chance. Storage Classes. Scope Rules. Recursion. Example Using Recursion: The Fibonacci Series. Recursion vs. Iteration. 6. C Arrays. Arrays. Declaring Arrays. Examples Using Arrays. Passing Arrays to Functions. Sorting Arrays. Case Study: Computing Mean, Median and Mode Using Arrays. Searching Arrays. Multiple-Subscripted Arrays. 7. C Pointers. Pointer Variable Declarations and Initialization. Pointer Operators. Calling Functions by Reference. Using the const Qualifier with Pointers. Bubble Sort Using Call by Reference. Pointer Expressions and Pointer Arithmetic. The Relationship between Pointers and Arrays. Arrays of Pointers. Case Study: A Card Shuffling and Dealing Simulations. Pointers to Functions. 8. C Characters and Strings. Fundamentals of Strings and Characters. Character Handling Library. String Conversion Functions. Standard Input/Output Library Functions. String Manipulation Functions of the String Handling Library. Comparison Functions of the String Handling Library. Search Functions of the String Handling Library. Memory Functions of the String Handling Library. Other Functions of the String Handling Library. 9. C Formatted Input/Output. Streams. Formatting Output with printf. Printing Integers. Printing Floating-Point Numbers. Printing Strings and Characters. Other Conversion Specifiers. Printing with Field Widths and Precisions. Using Flags in the printf Format-Control String. Printing Literals and Escape Sequences. Formatting Input with scanf. 10. C Structures, Unions, Bit Manipulations, and Enumerations. Structure Definitions. Initializing Structures. Accessing Members of Structures. Using Structures with Functions. typedef. Example: High-Performance Card Shuffling and Dealing Simulation. Unions. Bitwise Operators. Bit Fields. Enumeration Constants. 11. C File Processing. The Data Hierarchy. Files and Streams. Creating a Sequential-Access File. Reading Data from a Sequential-Access File. Random-Access Files. Creating a Randomly Accessed File. Writing Data Randomly to a Randomly Accessed File. Reading Data Randomly from a Randomly Accessed File. Case Study: A Transaction-Processing Program. 12. C Data Structures. Self-Referential Structures. Dynamic Memory Allocation. Linked Lists. Stacks. Queues. Trees. 13. C Preprocessor. The #include Preprocessor Directive. The #define Preprocessor Directive: Symbolic Constants. The #define Preprocessor Directive: Macros. Conditional Compilation. The #error and #pragma Preprocessor Directives. The # and ## Operators. Line Numbers. Predefined Symbolic Constants. Assertions. 14. Advanced C Topics. Redirecting Input/Output on UNIX and DOS Systems. Variable-Length Argument Lists. Using Command-Line Arguments. Notes on Compiling Multiple-Source-File Programs. Program Termination with Exit and AtExit. The volatile Type Qualifier. Suffixes for Integer and Floating-Point Constants. More on Files. Signal Handling. Dynamic Memory Allocation: Functions Calloc and Realloc. The Unconditional Branch: Goto. 15. C++ as a "Better C." C++. A Simple Program: Adding Two Integers. C++ Standard Library. Header Files. Inline Functions. References and Reference Parameters. Default Arguments and Empty Parameter Lists. Unary Scope Resolution Operator. Function Overloading. Function Templates. 16. C++ Classes and Data Abstraction. Implementing a Time Abstract Data Type with a Class. Class Scope and Accessing Class Members. Separating Interface from Implementation. Controlling Access to Members. Access Functions and Utility Functions. Initializing Class Objects: Constructors. Using Default Arguments with Constructors. Using Destructors. When Constructors and Destructors Are Called. Using Data Members and Member Functions. A Subtle Trap: Returning a Reference to a private Data Member. Assignment by Default Memberwise Copy. Software Reusability. 17. C++ Classes: Part II. const (Constant) Objects and const Member Functions. Composition: Objects as Members of Classes. friend Functions and friend Classes. Using the this Pointer. Dynamic Memory Allocation with Operators new and delete. Static Class Members. Data Abstraction and Information Hiding. Container Classes and Iterators. 18. C++ Operator Overloading. Fundamentals of Operator Overloading. Restrictions on Operator Overloading. Operator Functions as Class Members vs. as Friend Functions. Overloading Stream-Insertion and Stream-Extraction Operators. Overloading Unary Operators. Overloading Binary Operators. Case Study: An Array Class. Converting between Types. Overloading ++ and - -. 19. C++ Inheritance. Inheritance: Base Classes and Derived Classes. Protected Members. Casting Base-Class Pointers to Derived-Class Pointers. Using Member Functions. Overriding Base-Class Members in a Derived Class. Public, Protected and Private Inheritance. Direct Base Classes and Indirect Base Classes. Using Constructors and Destructors in Derived Classes. Implicit Derived-Class Object to Base-Class Object Conversion. Software Engineering with Inheritance. Composition vs. Inheritance. "Uses A" and "Knows A" Relationships. Case Study: Point, Circle, Cylinder. 20. C++ Virtual Functions and Polymorphism. Type Fields and switch Statements. Virtual Functions. Abstract Base Classes and Concrete Classes. Polymorphism. New Classes and Dynamic Binding. Virtual Destructors. Case Study: Inheriting Interface and Implementation. Polymorphism, virtual Functions and Dynamic Binding "Under the Hood." 21. C++ Stream Input/Output. Streams. Stream Output. Stream Input. Unformatted I/O with Read, gcount and Write. Stream Manipulators. Stream Format States. Stream Error States. Tying an Output Stream to an Input Stream. 22. C++ Templates. Class Templates. Class Templates and Nontype Parameters. Templates and Inheritance. Templates and Friends. Templates and Static Members. 23. C++ Exception Handling. When Exception Handling Should Be Used. Other Error-Handling Techniques. Basics of C++ Exception Handling: try, throw, catch. A Simple Exception-Handling Example: Divide by Zero. Throwing an Exception. Catching an Exception. Rethrowing an Exception. Exception Specifications. Processing Unexpected Exceptions. Stack Unwinding. Constructors, Destructors and Exception Handling. Exceptions and Inheritance. Processing new Failures. Class auto_ptr and Dynamic Memory Allocation. Standard Library Exception Hierarchy. 24. Introduction to Java Applications and Applets. Basics of a Typical Java Environment. General Notes about Java and This Book. A Simple Program: Printing a Line of Text. Another Java Application: Adding Integers. Sample Applets from the Java 2 Software Development Kit. A Simple Java Applet: Drawing a String. Two More Simple Applets: Drawing Strings and Lines. Another Java Applet: Adding Integers. 25. Beyond C & C++: Operators, Methods & Arrays in Java. Primitive Data Types and Keywords. Logical Operators. Method Definitions. Java API Packages. Random Number Generation. Example: A Game of Chance. Methods of Class JApplet. Declaring and Allocating Arrays. Examples Using Arrays. References and Reference Parameters. Multiple-Subscripted Arrays. 26. Java Object-Based Programming. Implementing a Time Abstract Data Type with a Class. Class Scope. Creating Packages. Initializing Class Objects: Constructors. Using Set and Get Methods. Using the this Reference. Finalizers. Static Class Members. 27. Java Object-Oriented Programming. Superclasses and Subclasses. protected Members. Relationship between Superclass Objects and Subclass Objects. Implicit Subclass-Object-to-Superclass-Object Conversion. Software Engineering with Inheritance. Composition vs. Inheritance. Introduction to Polymorphism. Type Fields and switch Statements. Dynamic Method Binding. Final Methods and Classes. Abstract Superclasses and Concrete Classes. Polymorphism Example. New Classes and Dynamic Binding. Case Study: Inheriting Interface and Implementation. Case Study: Creating and Using Interfaces. Inner Class Definitions. Notes on Inner Class Definitions. Type-Wrapper Classes for Primitive Types. 28. Java Graphics and Java 2D. Graphics Contexts and Graphics Objects. Color Control. Font Control. Drawing Lines, Rectangles, and Ovals. Drawing Arcs. Drawing Polygons and Polylines. The Java2D API. Java2D Shapes. 29. Java Graphical User Interface Components. Swing Overview. JLabel. Event Handling Model. JTextField and JPasswordField. JTextArea. JButton. JCheckBox. JComboBox. Mouse Event Handling. Layout Managers. Panels. Creating a Self-Contained Subclass of JPanel. Windows. Using Menus with Frames. 30. Java Multimedia: Images, Animation and Audio. Loading, Displaying and Scaling Images. Loading and Playing Audio Clips. Animating a Series of Images. Animation Issues. Customizing Applets via the HTML param Tag. Image Maps. Java Plug-In. Internet and World Wide Web Resources. A. Internet and Web Resources. C/C++ Resources. C++ Tutorials. C/C++ FAQs. Visual C++. comp.lang.c++. C/C++ Compilers. C++ Development Tools. Java Resources. Java Products. Java FAQs. Java Tutorials. Java Magazines. Java Applets. Multimedia. Java Newsgroups. B. C99 Internet and Web Resources. C99 Resources. C. Operator Precedence Chart. D. ASCII Character Set. E. Number Systems. Abbreviating Binary Numbers as Octal Numbers and Hexadecimal Numbers. Converting Octal Numbers and Hexadecimal Numbers to Binary Numbers. Converting from Binary, Octal, or Hexadecimal to Decimal. Converting from Decimal to Binary, Octal, or Hexadecimal. Negative Binary Numbers: Two's Complement Notation. Index.
C How to Program by Harvey Deitel
Used - Very Good
Pearson Education (US)
Book picture is for illustrative purposes only, actual binding, cover or edition may vary.
This is a used book - there is no escaping the fact it has been read by someone else and it will show signs of wear and previous use. Overall we expect it to be in very good condition, but if you are not entirely satisfied please get in touch with us.