I just recently interviewed with a company for a software developer internship. I was expecting it to be a generic interview but unfortunately I was wrong. The recruiter asked me some basics questions and then gave me a logic test of 30 questions. I was completely unprepared for that. Those questions were hard and I did really poorly on the test. As a result I did not get the internship and now I feel miserable. Can anyone point me to books or websites I can use to practice such logic questions. Hopefully when I interview with them next year I want to get this internship. Please any help will be apprecaited.

Two extremely common questions are: Given a binary tree, reverse it, such that for every node x, swap x.leftChild and x.rightChild - analyse the complexity of your solution. Another one is similar - given a singly linked list, reverse the list. Analyse your complexity.
A non-programming question - you are given a pizza, using only 3 cuts, slice it into 8 slices. There is more than one solution.

I will think of more and will post them to you. Good luck ;)

Can you give an example of the type of questions they asked as that will help fine more questions like that one :)

Another common interview question - write a method for swapping variables without using a temp variable (I know of two variations for this method).