Look at this mess: https://www.hackerrank.com/challenges/preprocessor-solution
This purports to be teaching use of the preprocessor. It's horrific. It's someone's amusing "look at how you can create your own programming language by abusing the preprocessor" mess; fair enough, it's always fun to see someone do something this painful, but this is being genuinely presented as a preprocessor learning exercise.
One day I'll have to work with people who learned from this (and others like it), and it will be a long painful road to help them unlearn.