Yes, a C function can call itself, making it a recursive function. Recursive functions are useful for solving problems that can be broken down into smaller instances of the same problem. However, recursive functions must have a base case to prevent infinite recursion.