We almost never see 1 because chances of happening thread interleaving are very low.
thread I in
thread J in
Above code almost always results in C being 1 and reason is pretty trivial to figure out.
% (c) -
Since there is a lock, so other thread can't enter the locked block unless the first thread releases it so interleaving is not possible and hence we never see 1 even if we add delay.