Control statements allow altering the sequential flow of program execution. There are three main types of control statements in C: conditional statements like if-else that allow branching based on boolean conditions, loop statements like while and for that repeat execution of a block of code a specified number of times, and switch statements that choose among multiple code blocks to execute based on a variable's value. Well-structured programs use control statements to make decisions and repeat tasks to process data efficiently.