Answer from cs61c-cj (Peter Lau 16539384) for Question 1 The purpose of the C preprocessor is to allow programmers to write code that is slightly easier to read. Its input is in the language C and its output is in the language C. It runs before the compiler in Figure 3.21 on page 156 and replaces macros (#define), typedefs and performs various substitutions like sizeof() calls in a C program.