Answer from cs61c-ax (Amanda Alfonso 15906918) for Question 1 The C preprocessor performs macro substitution, conditional compilation, and inclusion of named files. Its input language is primarily C (though it is possible to be used with other languages) and its output is the source code with textual substitutions (i.e. replaces macros) If it were a separate step in Figure 3.21, it would be placed between the C program and the compiler.