1. Functions allow programmers to break programs into smaller, self-contained subprograms, making code more modular and reusable.
2. There are four types of functions: those with no arguments and no return value, no arguments but a return value, arguments but no return value, and arguments with a return value.
3. Functions can be user-defined or library functions provided in standard libraries that perform common tasks like input/output and mathematics. Functions must be declared, defined, and called properly in a program.