Data types in C include integer, long, short, char, and double. Integer types can be signed or unsigned and their range depends on whether the compiler is 16-bit or 32-bit. Char requires 1 byte and represents a character with a range of -128 to 127. Double occupies 8 bytes with a range of -1.7e308 to +1.7e308 and is used to store floating point numbers. The document also provides examples of declaring different data types and their format specifiers used in scanf and printf statements.