The document discusses different categories of user defined functions in C programming. It describes functions with: 1) No arguments and no return values, which can be used to print lines or patterns. 2) Arguments but no return values, used to perform operations on passed arguments. 3) Arguments and a single return value, allowing two-way communication by passing and returning data. 4) No arguments but a return value, exemplified by the getchar() library function. 5) Returning multiple values using arrays or structures.