Lateral thinking questions are "gotcha" questions that masquerade as critical thinking questions. You can google reams of them.
IMHO a programming test is a prophylactic and nothing more. It's fine if you ask me e.g. why I used an anonymous function in one spot, or why I didn't check for a certain exception, but it shouldn't be the focus of a technical interview.