C programming provides various data types that determine how variables are set and acted upon, including integer, floating point, and character types. Data types specify a set of values and characteristics for a variable, and are used to identify a variable's type when declared, a function's return value, and parameters expected by a function.