Answer from cs61c-cm (Christopher Marcellino 15775059) for Question 1 The C preprocessor's input is C code that may contain #directives such as define macros and conditionals that can include code if certain conditions are met. Its output is also C code, but without any #directives. If it were a separate step, it would be between the C program bubble and the Compiler bubble, as gcc runs cpp on your code when you are compiling.