The document discusses functions in C programming. It defines functions as sub-programs that perform tasks when called. It describes pre-defined functions like sqrt(), abs(), pow() etc. and user-defined functions. User-defined functions are needed to break programs into modular pieces. Functions provide advantages like facilitating top-down programming and reusability. The document also discusses parameter passing methods like call by value and call by reference, and returning values from functions. Nesting and recursion of functions is explained with examples. Finally, it briefly discusses passing arrays and structures to functions.