As with most interviews for a C++ programming job expect to be asked about the basic of the language as well as some of the common data structure such as vectors and maps. Probably allocation and de-allocation of memory and some of the stuff you should know about OOP, including inheritance and polymorphism.
I havent' gone for a job at IBM so i couldn't tell you exactly, but as far as good jobs go these seem to be the standard type of questions.
Also by phone or in person, well in person i wager you will make more of an impact if you go in person. You get extra face time with the employers, and you can make a much better impression by showing you have people skills and are comfortable in situations where you have to deal with people.
So unless you are absolutely inept in social situations i would say in person would be better than over the phone. But if you get really nervous, visibly, maybe you should stick to the phone; but expect they may call you in for face to face later on anyway.