
Initial array:
$\texttt{a[0] = 5}$
$\texttt{a[1] = 10}$
$\texttt{a[2] = 15}$
Initially, $\texttt{p}$ points to $\texttt{a[0]}$.
First print:
$\texttt{(*p)++}$
This prints the current value of $\texttt{a[0]}$, then increments $\texttt{a[0]}$.
So, it prints $\texttt{5}$.
Now $\texttt{a[0]}$ becomes $\texttt{6}$.
Second print:
$\texttt{*p++}$
This means $\texttt{*(p++)}$.
So, it first prints the value at current $\texttt{p}$, then moves $\texttt{p}$ to the next element.
Currently, $\texttt{p}$ is still pointing to $\texttt{a[0]}$.
So, it prints $\texttt{6}$.
Then $\texttt{p}$ moves to $\texttt{a[1]}$.
Third print:
$\texttt{++*p}$
This means increment the value pointed to by $\texttt{p}$.
Now $\texttt{p}$ points to $\texttt{a[1]}$.
So, $\texttt{a[1]}$ changes from $\texttt{10}$ to $\texttt{11}$.
Then it prints $\texttt{11}$.
Fourth print:
$\texttt{*++p}$
This means first move $\texttt{p}$ to the next element, then dereference it.
So, $\texttt{p}$ moves from $\texttt{a[1]}$ to $\texttt{a[2]}$.
Then it prints $\texttt{a[2]}$, which is $\texttt{15}$.
$\therefore$ Output : $\texttt{5 6 11 15}$
Answer : A