Features
Hallmark features of this title
Current real-world applications
- The Deitels' live-code approach lets students run 142 full, working C programs as they learn key concepts.
- A focus on performance issues prepares readers for professional software-development challenges and practices.
- 17 case studies in systems and applications programming offer fun, hands-on opportunities to use C.
- Hundreds of examples, exercises and projects allow students to solve interesting, real-world problems working with real data.
Unique modular organization
- Coverage of C fundamentals emphasizes problem-solving and algorithm development to provide a solid foundation.
- Content is divided into groups of related chapters covering basic to advanced concepts. A chapter dependency chart helps instructors easily plan their syllabi.
- Copyright 2022
- Edition: 9th
-
sms online
- ISBN-10: 0-13-692178-7
- ISBN-13: 978-0-13-692178-3
C How to Program is a user-friendly, code-intensive introduction to C programming with case studies introducing applications and system programming. Like other texts of the Deitels How to Program series, the books modular presentation serves as a detailed beginner source of information for college students looking to embark on a career in coding, or instructors and software-development professionals seeking to learn how to program with C. The signature Deitel live-code approach presents concepts in the context of 142 full-working programs rather than incomplete snips of code. This gives you a chance to run each program as you study it and see how your learning applies to real-world programming scenarios.
Current standards, contemporary practice, and hands-on learning opportunities are integrated throughout the 9th Edition. Over 340 new integrated Self-Check exercises with answers allow you to test your understanding of important concepts and check your code as you read. New and enhanced case studies and exercises use real-world data and focus on the latest ACM/IEEE computing curricula recommendations, highlighting security, data science, ethics, privacy, and performance concepts.
Table of Contents
Brief Contents
PART 1: (Introductory) Programming Fundamentals Quickstart
- Introduction to Computers and C: Test-Driving Microsoft Visual Studio, Apple Xcode, GNU gcc, and GNU gcc in a Docker container
- Intro to C Programming: Input, Output, Types, Arithmetic, Decision Making
- Structured Program Development: Algorithmic Development, Problem Solving, if, if/else, while
- Program Control: for, do/while, switch, break, continue, Logical Operators
- Functions: Custom Functions, Simulation, Random-Number Generation, Enumerations, Function Call and Return Mechanism, Recursion, Recursive Factorial, Recursive Fibonacci
PART 2: (Intermediate) Arrays, Pointers, and Strings
- Arrays: One- and Two-Dimensional Arrays, Passing Arrays to Functions, Searching, Sorting
- Pointers: Pointers operators & and •, Pass-By-Value vs. Pass-By-Reference, Array and Pointer Relationship
- Characters and Strings: C Standard Library String- and Character-Processing Functions
PART 3: (Intermediate) Formatted Input/Output, Structures, and File Processing
- Formatted Input/Output: scanf and printf formatting
- Structures, Unions, Bit Manipulation and Enumerations: Creating Custom Types with structs and unions, Bitwise Operators, Named Constants
- File Processing: Streams, Text and Binary Files, CSV Files, Sequential and Random-Access Files
PART 4: (Advanced) Algorithms and Data Structures
- Data Structures: Dynamic Memory Allocation and Deallocation, Lists, Stacks, Queues, Binary Trees
- Computer-Science Thinking: Sorting Algorithms and Big O Insertion Sort, Selection Sort, Merge Sort, Additional Algorithms including Quicksort in the Exercises
PART 5: (Advanced) Preprocessor and Other Topics
- Preprocessor: #include, Conditional Compilation, Macros with Arguments, Assertions
- Other Topics: Variable-Length Argument Lists, Command-line Arguments, Multiple-Source-Pile Programs, extern, exit/atexit, calloc/realloc, goto, Numeric Literal Suffixes, Signal Handling
Appendices
- Operator Precedence Chart
- ASCII Character Set
- Number Systems
- Multithreading/Multicore and other C18/C11/C99 Topics
- Intro to Object-Oriented Programming Concepts
Online Appendices
- F-H. Using the Visual Studio Debugger, Using the GNU gdb Debugger, and Using the Xcode Debugger
Case Studies
System Programming Case Studies
- Systems Software: Building Your Own Computer
- Systems Software: Building Your Own Compiler
- Embedded Systems Programming: Robotics with the Webots Simulator
- Performance with Multithreading and Multicore Systems
Applications Programming Case Studies
- Random-Number Simulation: Building a Casino Game
- Random-Number Simulation: Card Shuffling and Dealing
- Random-Number Simulation: The Tortoise and the Hare Race
- Intro to Data Science: Survey Data Analysis
- Direct-Access File Processing: Transaction-Processing System
- Visualizing a Sorting Algorithm: Merge Sort
- Artificial Intelligence/Data Science: NLP: Who Wrote Shakespeare's Works?
- Artificial Intelligence/Data Science: Machine Learning with the GNU Scientific Library
- Game Programming: SpotOn Game with the raylib Library
- Game Programming: Cannon Game with the raylib Library
- Security and Cryptography: Implementing a Vigenère Cipher
- Visualization with gnuplot: Law of Large Numbers Animation
- Web Services and the Cloud: libcurl and OpenWeatherMap