Functions - Programming

Q1:

What will be the output of the following program?
#include<iostream.h> 
struct AptitudeCrack
{
    int arr[5]; 
    public:
    void AptitudeFunction(void);
    void Display(void);
};
void AptitudeCrack::Display(void)
{
    for(int i = 0; i < 5; i++) 
        cout<< arr[i] << ' ' ;
}
void AptitudeCrack::AptitudeFunction(void)
{
    static int i = 0, j = 4; 
    int tmp = arr[i]; 
    arr[i]  = arr[j]; 
    arr[j]  = tmp   ; 
    i++;
    j--;
    if(j != i) AptitudeFunction();
}
int main()
{
    AptitudeCrack objAptitude = {{ 5, 6, 3, 9, 0 }};
    objAptitude.AptitudeFunction();
    objAptitude.Display();
    return 0; 
}

A 0 9 3 6 5

B 9 3 6 5 0

C 5 6 3 9 0

D 5 9 3 6 0

ANS:A - 0 9 3 6 5

No answer description is available. Let's discuss.