the learning c the hard way 1-20 exercises