getch() reads a single byte character from input. getch() is a way to get a user inputted character. It can be used to hold program execution, but the "holding" is simply a side-effect of its primary purpose, which is to wait until the user enters a character.

getch() and getchar() are used to read a character from screen.
putch() and putchar() are used to write a character to screen.

getch() and putch() are non-standard functions defined in conio.h, mostly used in turbo C/dev C++ environement. getchar() are putchar() are standard functions defined in C standard and they can be used in all environments.

Yes, you can certainly write a program without these 4 functions. Actually in most of production software, programs are written in UNIX like environment so these are very rarely used.

If you are using turbo C/dev C++, in that case you need to make output console wait for sometime in order to see the output. getch() or getchar() wait for user to press a key so that they can read the character and this allows you to see the output. Same effect can be achieved by using getche() function.