C Typing Practice Chapters
150 exercises across 16 chapters, ordered from basic syntax to advanced patterns. Each section is real C code, and your best speed and accuracy are saved per section.
Basic Syntax
Learn C basic syntax, data types, and program structure
Program Structure
Variables & Data Types
Constants
Basic Operators
Comparison & Logical
Formatted Output
Reading Input
Type Casting
Increment & Compound
Mixed Basic Practice
Control Flow
Master C conditionals, loops, and branching
If-Else Statements
Switch Statements
For Loops
While Loops
Do-While Loops
Break and Continue
Nested Loops
Ternary Operator
Goto and Cleanup
Mixed Control Practice
Functions
Declare, define, and call functions in C
Function Basics
Function Prototypes
Passing by Pointer
Array Parameters
Recursion
Static and Extern
Function Pointers
Callbacks
Variadic Functions
Types & Integers
Fixed-width integers, size_t, conversions, and limits
Fixed-Width Integers
size_t and ptrdiff_t
Unsigned Arithmetic
Overflow Checks
The limits.h Header
Characters as Integers
Implicit Conversions
Booleans with stdbool
Arrays & Algorithms
Searching, sorting, and traversing arrays by hand
Linear Search
Binary Search
Bubble Sort
Insertion Sort
Reversing an Array
Min and Max
Matrix Traversal
Matrix Multiply
Prefix Sums
Two Pointers
Pointers & Memory
Master pointers, addresses, and dynamic memory in C
Pointer Basics
Null Checks
Pointer Arithmetic
Arrays and Pointers
Malloc and Free
Calloc and Realloc
Pointers to Pointers
Void Pointers
Const Pointers
Mixed Pointer Practice
Strings & Arrays
Work with character arrays and the C string library
Character Arrays
String Length
Copying Strings
Comparing Strings
Concatenating Strings
Searching Strings
Two-Dimensional Arrays
Array Iteration
Character Functions
String Processing
Tokenizing, parsing, and building strings safely
strtok
Manual Tokenizing
Building with snprintf
Parsing with sscanf
Reversing a String
Palindrome Check
Case Conversion
Counting Characters
Trimming Whitespace
Bounded Copy
Structs, Unions & Enums
Build custom data types with structs, unions, and enums
Struct Basics
Typedef Structs
Struct Pointers
Nested Structs
Arrays of Structs
Structs and Functions
Enumerations
Unions
Bit Fields
Data Structures
Linked lists, stacks, queues, and trees built by hand
Linked List Node
Pushing to a List
Traversing a List
Freeing a List
Array-Backed Stack
Circular Queue
Growable Array
Binary Tree Insert
Tree Traversal
Memory Patterns
Allocation strategies and ownership discipline
Ownership Conventions
Arena Allocator
2D Dynamic Arrays
Flexible Array Members
Copying Structs
Growth Strategy
NULL After Free
Cleanup Paths
Alignment
Mixed Memory Practice
Standard Library
The C library functions you reach for every day
Parsing Numbers
Sorting with qsort
Searching with bsearch
The math.h Header
Random Numbers
Working with Time
Memory Functions
Assertions
Exit and Cleanup
I/O & Formatting
stderr, binary I/O, and robust input loops
Writing to stderr
fgets + sscanf Loop
Binary I/O
fseek and ftell
Reading Until EOF
Writing CSV
Dynamic Width and Precision
Buffered Output
Growing Line Reader
Mixed I/O Practice
Multi-File Programs
Headers, linkage, and designing a C module
Header Declarations
Source Implementation
Extern Variables
Internal Linkage
Opaque Pointers
Dispatch Tables
Include Ordering
Systems Basics
Environment, signals, exit codes, and state machines
getenv
Exit Codes
Signal Handling
sigaction
Argument Dispatch
errno and perror
Timing with clock
Enum State Machine
Config Bit Flags
Mixed Systems Practice
Files & Preprocessor
File I/O, macros, and advanced C techniques
