Right option is (c) double
Explanation: if the result of the function cannot be represented as a double value, a range error occurs. If the result overflows (the magnitude of the result is so large that it cannot be represented in an object of the specified type), the function returns the value of the macro HUGE_VAL, with the same sign as the correct value of the function.