Answer:
The second print statement will print:
f2.i is 1 f2.s is 2
Explanation:
Initially when the execution start. i and s are both 0. i declared as a variable while s is a static variable which value stays once it is re-defined.
When f1 call i and s; their value is both 1 based on the increment statement in the constructor.
For the second print statement:
When f2 call i; it is re-initialized to 1. When f2 call s; it has initial value of 1 and is incremented to 2 which is printed. s hold the initial value of 1 because of the static keyword.