$\underline{\textbf{Let's understand diagrammatically}} :$
$\text{As its mentioned $\textbf{"parameters to a function are evaluated from right to left"}$}.$
$\text{So, h() will be evaluated first, and it will print 20 first then g() will be evaluated and it will print 10.}$
$\text{Now as g() and h() both function will return 10 and 20 respectively, so now $\textbf{f(10, 20)}$ will be called and from there,}$
$\text{ then again g() and h() will be called and 10 and 20 will be printed respectively.}$
$\newline$
$\boxed{ \color{Red}\underline{\textbf{Output}} \color{Black}\textbf{ : 20 10 10 20} }$ $\text{(Option A)}$
$\newline$
$\newline$
$\underline{\textbf{NOTE}} :$
"The order of evaluation of the function designator, the actual arguments, and subexpressions within the actual
arguments is Unspecified, but there is a sequence point before the actual call".
$\newline$
$\underline{\text{For example}}:$
$\boxed{ \text{ fun(A(), B(), C()) } }$ $\text{for this fun() we can't say order of evolution is always either from Right to Left }$
$\text{or Left to Right. Its totally Unspecified according to}$ ISO - C99 Standard.
$\newline$
$\text{The possible order of evolution of A(), B(), C() can be: }$
$\text{ A(), B(), C() }$
$\text{ A(), C(), B() }$
$\text{ B(), A(), C() }$
$\text{ B(), C(), A() }$
$\text{ C(), A(), B() }$
$\text{C(), B(), A()}$
$\newline$
$\underline{\text{References}} :$
1. Order of evaluation in C
2. ISO/IEC 9899:1999 (Chapter 6.5)