Answer from cs61c-ei (Jing Chen 16669246) for Question 1 The C preprocessor is a separate first step in compilation. It performs macro substitution, conditional compilation, and inclusion of named files. Usually lines beginning with # communicate with the preprocessor. In this case, the preprocessor’s input language is C code and its output is an expanded version of C. If it were a step in Figure 3.21, the preprocessor step would occur before the compiler (before C is translated into assembly language).