Understand the differences between compiling and linking and the process
to develop multi-module programs
Declare data items of built-in and user defined types, and as static,
automatic, or dynamic entities
Use the full complement of operators, including arithmetic, logical, relational,
bitwise, conditional, and combined assignment
Understand the mixed type operations and default compiler behavior
Understand the language's control constructs for conditional branching, looping,
and conditional testing
Use the preprocessor
Declare, define, and bind functions, including ANSI standard library functions,
including functions that take a variable number of arguments
Declare, manipulate and equate pointer types of multiple levels of indirection
Implement character strings and arrays of strings
Input and output information to/from files
Define names constants, including enumerations