I applied online for an internship position and got an e-mail 1-2 weeks later to setup 2 phone interviews on the same day for 2-3 weeks later. I interviewed with 2 different people for about an hour each. They both asked me one question about my resume, one question about past projects, and then they delved further. They each asked me a question about a concept of Computer Science or Data Structure or something of the liking and told me to get specific. When I got as specific as I could, I was again asked to delve deeper. I believe they wanted to see how I would react in stressful situations and react when they knew I couldn't answer further. Two examples of the questions they asked were how C# and Java were alike and different, and everything you could possibly know about Garbage Collection.
After that section, I was asked to write code with paper and pencil on a coding problem (two of the questions were to figure out if a word is the same backwards and forwards (ex: aba, racecar) and find all the permutations of a string). I was asked to talk as I wrote the code to describe my thought process. Once completed, I was asked what the efficiency in Big O Notation was and how I could rewrite my program to be more efficient. Even when I thought my explanation was as efficient as it could get, they asked me to be even more efficient, again testing me further.
After that I could ask them whatever questions and they answered them in great detail. I connected well with one of the interviewers and enjoyed talking to him a lot. A couple of days later I got an e-mail saying that there would be a third interview. I suggest having good questions prepared so you can have a good connection and conversation with your interviewer.
The third interview did not go so well. I had trouble understanding the interviewer due to background noise and an accent I was unfamiliar with (I'm normally good with accents due to both parents being foreign). It started off the same way as the other two, but this time as I coded she didn't want to hear my thought process. You would think this would be easier, but I feel there's more pressure to finish quickly. The question she asked me to code was to reverse a linked list.
Overall, I was fairly surprised by how easy the coding questions were and I think I performed well on those. The general knowledge questions was what I think ultimately caused me to not get an offer, alongside not having taken the class that went deep into analysis of algorithms and algorithm efficiency. Study both well and I think you will not have a problem.