C Primer Plus
(C-BASIC.AP1) / ISBN : 978-1-64459-441-4
About This Course
Master the fundamentals of C programming with the C Primer Plus course! This course provides a friendly and instructive approach, featuring interactive lessons, quizzes, and hands-on labs. Explore the evolution of the C language, gain a clear understanding of programming concepts, and enhance your skills through practical examples and exercises. Whether you're a beginner or seeking to reinforce your knowledge, this newest edition will serve as an enjoyable and effective introduction to the world of C programming.
Skills You’ll Get
Interactive Lessons
19+ Interactive Lessons | 29+ Exercises | 201+ Quizzes | 82+ Flashcards | 82+ Glossary of terms
Introduction
- Approach and Goals
- About This eBook
Getting Ready
- Whence C?
- Why C?
- Whither C?
- What Computers Do
- High-level Computer Languages and Compilers
- Language Standards
- Using C: Seven Steps
- Programming Mechanics
- How This Course Is Organized
- Conventions Used in This Course
- Summary
- Review Questions
- Programming Exercise
Introducing C
- A Simple Example of C
- The Example Explained
- The Structure of a Simple Program
- Tips on Making Your Programs Readable
- Taking Another Step in Using C
- While You’re at It—Multiple Functions
- Introducing Debugging
- Keywords and Reserved Identifiers
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Data and C
- A Sample Program
- Data Variables and Constants
- Data: Data-Type Keywords
- Basic C Data Types
- Using Data Types
- Arguments and Pitfalls
- One More Example: Escape Sequences
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Character Strings and Formatted Input/Output
- Introductory Program
- Character Strings: An Introduction
- Constants and the C Preprocessor
- Exploring and Exploiting printf() and scanf()
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Operators, Expressions, and Statements
- Introducing Loops
- Fundamental Operators
- Some Additional Operators
- Expressions and Statements
- Type Conversions
- Function with Arguments
- A Sample Program
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
C Control Statements: Looping
- Revisiting the while Loop
- The while Statement
- Which Is Bigger: Using Relational Operators and Expressions
- Indefinite Loops and Counting Loops
- The for Loop
- More Assignment Operators: >+=, -=, *=, /=, %=
- The Comma Operator
- An Exit-Condition Loop: do while
- Which Loop?
- Nested Loops
- Introducing Arrays
- A Loop Example Using a Function Return Value
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
C Control Statements: Branching and Jumps
- The if Statement
- Adding else to the if Statement
- Let’s Get Logical
- A Word-Count Program
- The Conditional Operator: ?:
- Loop Aids: continue and break
- Multiple Choice: switch and break
- The goto Statement
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Character Input/Output and Input Validation
- Single-Character I/O: getchar() and putchar()
- Buffers
- Terminating Keyboard Input
- Redirection and Files
- Creating a Friendlier User Interface
- Input Validation
- Menu Browsing
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Functions
- Reviewing Functions
- ANSI C Function Prototyping
- Recursion
- Compiling Programs with Two or More Source Code Files
- Finding Addresses: The & Operator
- Altering Variables in the Calling Function
- Pointers: A First Look
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Arrays and Pointers
- Arrays
- Multidimensional Arrays
- Pointers and Arrays
- Functions, Arrays, and Pointers
- Pointer Operations
- Protecting Array Contents
- Pointers and Multidimensional Arrays
- Variable-Length Arrays (VLAs)
- Compound Literals
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Character Strings and String Functions
- Representing Strings and String I/O
- String Input
- String Output
- The Do-It-Yourself Option
- String Functions
- A String Example: Sorting Strings
- The ctype.h Character Functions and Strings
- Command-Line Arguments
- String-to-Number Conversions
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Storage Classes, Linkage, and Memory Management
- Storage Classes
- A Random-Number Function and a Static Variable
- Roll ’Em
- Allocated Memory: malloc() and free()
- ANSI C Type Qualifiers
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
File Input/Output
- Communicating with Files
- Standard I/O
- A Simple-Minded File-Condensing Program
- File I/O: fprintf(), fscanf(), fgets(), and fputs()
- Adventures in Random Access: fseek() and ftell()
- Behind the Scenes with Standard I/O
- Other Standard I/O Functions
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Structures and Other Data Forms
- Sample Problem: Creating an Inventory of Books
- Setting Up the Structure Declaration
- Defining a Structure Variable
- Arrays of Structures
- Nested Structures
- Pointers to Structures
- Telling Functions About Structures
- Saving the Structure Contents in a File
- Structures: What Next?
- Unions: A Quick Look
- Enumerated Types
- typedef: A Quick Look
- Fancy Declarations
- Functions and Pointers
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Bit Fiddling
- Binary Numbers, Bits, and Bytes
- Other Number Bases
- C’s Bitwise Operators
- Bit Fields
- Alignment Features (C11)
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
The C Preprocessor and the C Library
- First Steps in Translating a Program
- Manifest Constants: #define
- Using Arguments with #define
- Macro or Function?
- File Inclusion: #include
- Other Directives
- Inline Functions (C99)
- _Noreturn Functions (C11)
- The C Library
- The Math Library
- The General Utilities Library
- The Assert Library
- memcpy() and memmove() from the string.h Library
- Variable Arguments: stdarg.h
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Advanced Data Representation
- Exploring Data Representation
- Beyond the Array to the Linked List
- Abstract Data Types (ADTs)
- Getting Queued with an ADT
- Simulating with a Queue
- The Linked List Versus the Array
- Binary Search Trees
- Other Directions
- Key Concepts
- Summary
- Review Questions
- Programming Exercises
Appendix A: Reference Section
- Section I: Additional Reading
- Section II: C Operators
- Section III: Basic Types and Storage Classes
- Section IV: Expressions, Statements, and Program Flow
- Section V: The Standard ANSI C Library with C99 and C11 Additions
- Section VI: Extended Integer Types
- Section VII: Expanded Character Support
- Section VIII: C99/C11 Numeric Computational Enhancements
- Section IX: Differences Between C and C++
Getting Ready
- Using printf() and scanf()
Introducing C
- Using Multiple Functions
- Displaying the Value of a Variable
Data and C
- Understanding Floating-Point Conversions
- Converting an Integer to its ASCII Code
Character Strings and Formatted Input/Output
- Performing String Formatting
- Using Strings and Unit Conversion
Operators, Expressions, and Statements
- Understanding Unit Conversion
- Using Functions with Arguments
- Using Operators
C Control Statements: Looping
- Performing Calculations Using a Function Return Value
- Using Character Arrays
- Using Nested Loops
C Control Statements: Branching and Jumps
- Using the switch Statement
- Using Multiple Choice else if Statement
- Using the if Statement
Character Input/Output and Input Validation
- Understanding Character Input/Output
- Using the ctype.h Library
Functions
- Using a Loop to Calculate Fibonacci Numbers
- Computing the Harmonic Mean of Two Numbers
Arrays and Pointers
- Using Multidimensional Arrays
- Performing Calculations on Multiple Arrays
- Using Single-Dimensional Arrays
Character Strings and String Functions
- Using String Input
Storage Classes, Linkage, and Memory Management
- Understanding Memory Allocation
File Input/Output
- Writing and Reading Numbers from a File
Structures and Other Data Forms
- Understanding Nested Structures
- Passing Structure Members as Arguments
- Using Compound Literals and Structures
Bit Fiddling
- Using Bitwise Operators
- Understanding Binary Conversion
The C Preprocessor and the C Library
- Using Macro Functions
- Demonstrating the Usage of the atexit() Function
Advanced Data Representation
- Displaying a String in Reverse Order Using Stacks