Predict function output: call by value versus pointers, local, global and static variables, scope and shadowing, and tracing recursion.