Control statements in C allow changing the order of execution based on conditions or repeating a group of statements. The main types of control statements are selection structures like if/else which execute one or the other block based on a condition being true or false, and looping structures like while, do-while and for loops which repeat a block of code either indefinitely or a specified number of times. Nested loops can also be used to repeat blocks of code multiple times in both the inner and outer loops.