All the options are correct .
Now first try to learn how unsigned numbers are represented in the computer when we pass negative number as argument and it catch as an unsigned number.
Say My computer is using 32 bit to store an integer datatype.
now using 32 bits the largest unsigned number we can represent $2^{32}-1=4294967295$
now signed number was represented 2’s complement form in computer.
now 32 bit largest number we can represent :-$2^{31}-1=2147483647$
now how -1 is represented in signed form ?
=>(11111111111111111111111111111111) which is in 2’s complement form evaluated to -1.
now how -1 is evaluated in unsigned form?
=>(11111111111111111111111111111111) which evaluated to 4294967295.
same how -2 is is evaluated in unsigned form?
=> (11111111111111111111111111111110) which evaluated to 4294967294.
now one more point :-
difference of two unsigned number:-
the result of subtraction is if comes negative we use modular arithmetic to convert it to unsigned
by the following rule (a-b)mod $2^{32}$ .
for example we have a=2,b=4
now a-b =-2 which will represent as $((-2)mod 2^{32})$=4294967294
one might read this article for more info:- https://stackoverflow.com/questions/7221409/is-unsigned-integer-subtraction-defined-behavior
now coming to the following question:-
option a:-
is_greater(1,2) is called.
now
x-y= -1 now result comes negative so it will represent as 4294967295.
which is greater than 0 so 1 will be returned.
option b:-
is_greater(-1,-2) is called.
now x=(-1) is represented as 4294967295.
now y=(-2) is represented as 4294967294.
the difference is 1 which is greater than 0.
so 1 will be returned.
option c:
is_greater(−2,−1) is called.
now x=(-2) is represented as 4294967294.
now y=(-1) is represented as 4294967295.
now x-y =-1 which again converted to $((-1)mod 2^{32})=4294967295.$ which is greater than 0 , so 1 will be returned.
option D:-
I believe now you can do it by yourself.