Exercises and Learning from The C Programming Language, by Kernighan and Ritchie