C is called middle level language because it is actually binding the gap between a machine level language and more conventional high level languages. user can use c language to do system programming (for writing operating system) as well as application programming (for generate menu driven customer billing system ). So that is called middle level language.
High level - Ada , Modula-2 , Pascal, COBOL, FORTRAN, BASIC
Middle level - Java , C++ , C, FORTH, Macro-assemble<>
Low level - Assembler