(strlen(s)- strlen(t)) = 3-5 =-2
But in C, when we do operation with two unsigned integers, result is also unsigned. (strlen returns size_t which is unsigned in most systems). So, this result "-2" is treated as unsigned and its value is INT_MAX - 2 (not sure about all systems, but at least on systems using 2's complement representation). Now, the comparison is between this large number and another unsigned number c which is 0. So, the comparison return TRUE here.
Even if 'c' is declared as "int", while doing an operation with an unsigned int, it gets promoted to unsigned int and we get the same result.
Hence (strlen(s)- strlen(t)) >0 will return 1 on execution thus the conditional operator will return the true statement which is strlen(abc) =3.
Ans should be 3.