Reference request for resource with difficult programming exercises
If he wants to have a blast biting into some very fun and challenging problems, Project Euler is fantastic, and entirely language neutral.
He may find that certain problems are out of his grasp until he learns a bit more programming, but there will be many that will be possible even with what he has.  (Arrays, structs, and pointers should make all of the problems accessible, even if some of them are still possibly too hard as problems before he has a good understanding of linked lists and trees.)