If there is no explicit call made in the code to the super the implicit call is always made to the super(); contructor. As in the constructor public DerivedDemo( int x, int y), the first line compiler check if it is a call for the super() or any this() for the constructor for the super class and the same class. Which is not there so compiler puts a call to the super of no parameter constructor.
Further,public DerivedDemo( int x), in this contructor in the body the first line calls the super classes same parameter constructor so that is why the answer is B and C rather than A and B.
I hope it helps.