Consider a non-tree edge $(x,y)$ in an undirected graph.
Suppose $x$ is discovered first.
When DFS explores $x$, there are two possibilities.
If $y$ is still unvisited when $(x,y)$ is examined, then DFS would visit $y$ through this edge.
In that case, $(x,y)$ would become a tree edge.
But the question says that $(x,y)$ is not a tree edge.
Therefore, when the edge is examined, $y$ must already have been discovered.
In an undirected DFS, this means that one endpoint lies on the active DFS path of the other.
Hence one is an ancestor of the other.
So every non-tree edge in an undirected DFS is a back edge connecting a descendant to an ancestor.
$\therefore$ Answer: A
Note : This is also why an undirected DFS has only tree edges and back edges, not cross or forward edges.