Cpp Programming Quiz 148 – What will be the output of the following program?

Question: What will be the output of the following program?

#include
class TestDrive
{
int x;
public:
TestDrive(int xx)
{
x = xx;
}
int DriveIt(void);
};
int TestDrive::DriveIt(void)
{
static int value = 0;
int m;
m = x % 2;
x = x / 2;
if((x / 2)) DriveIt();
value = value + m * 10;
return value;
}
int main()
{
TestDrive TD(1234);
cout<< TD.DriveIt() * 10 << endl; return 0; }

[A].300
[B].200
[C].Garbage value
[D].400

Answer: Option D