C has emerged as the most widely used programming language for software development. Its features allow the development of well-structured programs. The language gets its name from being the successor to the B language (an interpreter-based language). It was designed by Dennis Ritchie in 1972 as the systems language for LINUX operating system on a PDP-11 computer at AT&T Bell laboratories. It was developed as an alternative to the systems language B, developed by Ken Thompson in about 1970 for the first LINUX operating system on a PDP-7 at the Bell Laboratories.
C language's data types and control structures are directly supported by most computers. resulting in the construction of efficient programs. It is independent of any particular machine architecture or operating system which makes it easy to write portable programs. It is this contribution of rich control structures and data types, ability to get close to computer hardware, efficiency, portability and conciseness that has contributed to the popularity of C.
C by its very nature, is a modular language. In programming the term structure has two interrelated meanings. Programs whose structure consists of interrelated segments, arranged in a logical and easily understandable order to form an integrated and complete unit, are called modular programs. Modular programs are easier to develop. Correct and modify than programs constructed otherwise. The smaller segments used to construct a modular program are called modules. Since each module is designed to perform a specific function, the modules themselves are called functions in C
Although C matches the capabilities of many computers, it is independent of any particular machine architecture. With a little care it is easy to write portable programs which can be run without change on a variety of hardware
Recursion is the process whereby a construct operates on itself. In C, functions can be defined recursively -the function may directly or indirectly call itself in the course of its execution.
Let us consider a task of printing the phrase "This is a test program" at the terminal. The following flowchart illustrates the task.

The C program to perform the task is given below
#include <stdio.h>
int main(void){
printf ("This is a test program");
}