C Primer Plus

(C-BASIC.AP1)/ISBN:978-1-64459-441-4

This course includes
Lessons
Lab

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.

Lessons

19+ Lessons | 29+ Exercises | 201+ Quizzes | 82+ Flashcards | 82+ Glossary of terms

Here's what you will learn

Download Course Outline

Lessons 1: Introduction

  • Approach and Goals
  • About This eBook

Lessons 2: 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

Lessons 3: 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

Lessons 4: 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

Lessons 5: 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

Lessons 6: 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

Lessons 7: 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

Lessons 8: 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

Lessons 9: 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

Lessons 10: 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

Lessons 11: 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

Lessons 12: 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

Lessons 13: 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

Lessons 14: 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

Lessons 15: 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

Lessons 16: 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

Lessons 17: 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

Lessons 18: 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++

Hands-on LAB Activities (Performance Labs)

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