1. How many data types are there in C#?
Technically infinite, because any class/struct could be considered, a "data type".
I think what is potentially meant here is, how many primitive types are there, and what are they?
They are:
byte, sbyte, short, ushort, int, uint, long, ulong, float, double, decimal, string, char, bool
I think that pretty much covers it...there may be a few missing/additional. You might also consider things like DateTime, and BigInteger as data types. (although these are not primitive).
2. What is a abstract constructor? what can be the situation or scenario where you can implement them?
An abstract constructor is a constructor defined as part of an abstract class. The class cannot be constructed/instantiated because it is abstract, however the constructor can be called from derivatives of the abstract class. Therefore when you override/implement the abstract class (parent), your implementing class (child), can utilize/call the abstract constructor in the parent.