This is due to the way functions are called. When doit1 is called, the argument a (42) is put on the call stack, and be (also 42) is right above it. When you exit doit1 and enter doit2 x and y are in the same place a and be were in doit1 .
Since neither is initialized, they just use whatever value is already in that spot -- 42 in your case. Of course, depending on optimization, this might not always happen, but it's a pretty good bet that it will.
There's going to be a few answers pointing out issues with stacks/registers/temporary variables, but I'll point out that if you compile with optimizations, there is no answer.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.