How does ImportPrivateKey get the Address if I don't explicitly send it?
You ought to ask this question on CryptoSE, as the problem is not Bitcoin-specific. I've even done that for you.

In short:


  The public key is QA=dAG where G is the base point on the curve defined in the publicly agreed upon parameters.


And you can find the Bitcoin curve (secp256k1) parameters in the wiki.