Correct option is (D).
s(6) = (6-1)^2 -2 - 6^2 + 3*6 = 5 and before printf, s(5) is called.
s(5) = (5-1)^2 -2 - 5^2 + 3*5 = 4 and before printf, s(4) is called.
s(4) = (4-1)^2 -2 - 4^2 + 3*4 = 3 and before printf, s(3) is called.
s(3) = (3-1)^2 -2 - 3^2 + 3*3 = 2 and before printf, s(2) is called.
s(2) = (2-1)^2 -2 - 2^2 + 3*2 = 1 and before printf, s(1) is called.
s(1) will simply return and won't print anything.
Therefore, printf will be executed in reverse order, i.e. s(2)->s(3)->s(4)->s(5)->s(6)
Hence, output = 12345.