Question regarding of the ECC test vector format
so (X,Y)=(m dot G), G is the base point defined by NIST or BP curve as “standard”. Q1: Is such understanding correct?


Yes, that sounds likely to be right.


  Q2: Does that mean we need convert them to hex--and by doing that I can get exactly 32byte test vector?


What format your C test code handles is, well, up to your C test code.  What they represent is an integer, however you choose to store it, in the scalar ring of the curve.


  and some other curve like BP-521, does that mean the key bit lenth is 521b?


What BP-521 refers to, I don't know, but if it's anything like E-521 or NIST P-521, it likely refers to the size in bits of the coordinate field modulus, i.e. the field in which the coordinates $x$ and $y$ live in: the Mersenne prime $2^{521} - 1$ is convenient as a modulus for arithmetic because $2^{521} x_{\mathrm{hi}} + x_{\mathrm{lo}} \equiv x_{\mathrm{hi}} + x_{\mathrm{lo}} \pmod{2^{521} - 1}$, so a reduction step only takes a shift-and-add.

Hasse's theorem implies that the size $\ell$ of the scalar ring and the size $q$ of the coordinate field can't be much different, $|\ell - (q + 1)| \leq 2\sqrt q$, so the scalar ring modulus $\ell$ is also going to be near $q = 2^{521} - 1$ in this case but may be off by about $2^{261}$.