A quick way to sort these out is to write down the general difference equation and transfer function once, then check each claim against it.
General recursive filter: \(y_n=\sum_{k=0}^{M}b_kx_{n-k}+\sum_{k=1}^{N}a_ky_{n-k}\), with transfer function
\[H(z)=\frac{Y(z)}{X(z)}=\frac{b_0+b_1z^{-1}+\cdots+b_Mz^{-M}}{1-a_1z^{-1}-\cdots-a_Nz^{-N}}\]
Setting all \(a_k=0\) collapses this to the non-recursive (FIR) case, \(H(z)=\sum b_kz^{-k}\) - a pure numerator, hence only zeros and no poles: this confirms (A).
Keeping the denominator active but setting all \(b_k=0\) except \(b_0\) gives an all-pole recursive filter (poles only); keeping several \(b_k\) nonzero along with the denominator gives a pole-zero filter. Both are legitimate recursive filters, so "only poles OR both poles and zeros" correctly covers all recursive cases: this confirms (B).
The filter order \(N\) (or \(\max(M,N)\)) counts the number of unit-delay memory elements required to implement the difference equation, and for a recursive filter that memory has to hold BOTH the past \(x\) values and the past \(y\) values - the order is not solely about how many previous inputs are stored. This shows (C) is an incomplete, and hence incorrect, statement.
Finally, \(H(z)=Y(z)/X(z)\) is the very definition of a discrete-time transfer function, so (D) is unquestionably correct.
Collecting the correct statements gives (A), (B), (D) - options \(\boxed{1,2,4}\).