Recursive functions are defined by a function calling itself, which is useful for solving mathematical problems like calculating factorials and generating Fibonacci series. Advantages of recursion include maintaining function-related information and simplifying certain evaluations, while disadvantages involve slower performance and potential stack overflow issues. The document includes examples demonstrating recursion for calculating factorials and Fibonacci numbers in C programming.