C programs are composed of six types of tokens: keywords, identifiers, constants, strings, special symbols, and operators. Keywords are reserved words that serve as building blocks for statements and cannot be used as names. Identifiers name variables, functions, and arrays and must begin with a letter. Constants represent fixed values and come in numeric, character, and string forms. Special symbols include braces, parentheses, and brackets that indicate code blocks, function calls, and arrays. Operators perform arithmetic, assignment, comparison, logic, and other operations.