1) A function is a block of code that performs a specific task. Functions increase code reusability and improve readability.
2) There are two types of functions - predefined library functions and user-defined functions. User-defined functions are customized functions created by the user.
3) The main() function is where program execution begins. It can call other functions, which may themselves call additional functions. This creates a hierarchical relationship between calling and called functions.