Monday, 16 September 2013

C INTERVIEW QUESTIONS




What is C language?
  C is a programming language developed at AT & T's Bell Laboratories of USA in 1972.The C programming language is a standardized programming language developed in the early 1970s by Ken Thompson and Dennis Ritchie for use on the UNIX operating system. It has since spread to many other operating systems, and is one of the most widely used programming languages
2. What are the types of constants in c?
 
    C constants can ba divided into two categories :
  • Primary constants
  • Secondary constants
3. What are the types of C intructions?
 
    Now that we have written a few programs let us look at the instructions that we used in these programs. There are basically three types of instructions in C :
  • Type Declaration Instruction
  • Arithmetic Instruction
  • Control Instruction
4. What is a pointer?
  Pointers are variables which stores the address of another variable. That variable may be a scalar (including another pointer), or an aggregate (array or structure). The pointed-to object may be part of a larger object, such as a field of a structure or an element in an array.
5. What is the difference between arrays and pointers?
  Pointers are used to manipulate data using the address. Pointers use • operator to access the data pointed to by them.
Arrays is a collection of similar datatype. Array use subscripted variables to access and manipulate data. Array variables can be Equivalently written using pointer expression.

What is “this”s pointer?
  The this pointer is a pointer accessible only within the member functions of a class, struct, or union type. It points to the object for which the member function is called. Static member functions do not have a this pointer.
7. What are the uses of a pointer?
 
    Pointer is used in the following cases
  • It is used to access array elements.
  • It is used for dynamic memory allocation.
  • It is used in Call by reference.
  • It is used in data structures like trees, graph, linked list etc.
8. What is the purpose of main() function?
 
    The function main() invokes other functions within it.It is the first function to be called when the program starts execution.
  • It is the starting function.
  • It returns an int value to the environment that called the program.
  • Recursive call is allowed for main( ) also.
  • It is a user-defined function.
9. What are the different storage classes in C?
 
    There are four types of storage classes.
  • Automatic
  • Extern
  • Regiter
  • Static
10. Define inheritance?
  Inheritance is the process by which objects of one class acquire properties of objects of another class.

Define destuctors?
  A destructor is called for a class object when that object passes out of scope or is explicitly deleted.A destructors as the name implies is used to destroy the objects that have been created by a constructors.Like a constructor , the destructor is a member function whose name is the same as the class name but is precided by a tilde.
12. What is a structure?
  Structure constitutes a super data type which represents several different data types in a single unit. A structure can be initialized if it is static or global.
13. What is message passing?
  An object oriented program consists of a set of objects that communicate with each other. Message passing involves specifying the name of the object, the name of the function and the information to be sent.
14. Define Constructors?
  A constructor is a member function with the same name as its class. The constructor is invoked whenever an object of its associated class is created.It is called constructor because it constructs the values of data members of the class.
15. What is the use of default constructor?
  A constructors that accepts no parameters is called the default constructor.If no user-defined constructor exists for a class A and one is needed, the compiler implicitly declares a default parameterless constructor A::A(). This constructor is an inline public member of its class. The compiler will implicitly define A::A() when the compiler uses this constructor to create an object of type A. The constructor will have no constructor initializer and a null body.
What is a macro?
  Macros are the identifiers that represent statements or expressions. To associate meaningful identifiers with constants, keywords, and statements or expressions.
17. What is arrays?
  Array is a variable that hold multiple elements which has the same data type.
18. What is the difference between #include‹ › and #include “ ”?
  #include‹ › ----> Specifically used for built in header files.
#include “ ” ----> Specifically used for used for user defined/created n header file.
19. What are the advantages of the functions?
 
  • It reduces the Complexity in a program by reducing the code.
  • Function are easily understanding and reliability and execution is faster.
  • It also reduces the Time to run a program.In other way,Its directly proportional to Complexity.
  • Its easy to find-out the errors due to the blocks made as function definition outside the main function.
20. How do declare an array?
  We can declare an array by specify its data type, name and the number of elements the array holds between square brackets immediately following the array name.
syntax :
data_type array_name[size]
What are the differences between structures and union?
  A structure variable contains each of the named members, and its size is large enough to hold all the members. Structure elements are of same size.

A Union contains one of the named members at a given time and is large enough to hold the largest member. Union element can be of different sizes.
22. What is the difference between arrays and pointers?
  Array is collection of similar datatype. it is a static memory allocation means we can not increment and decrement the arry size once we allocated. and we can not increment the base address, reassign address.

Pointer is a dynamic memory allocation. we can allocate the size as we want, assigning into another variable and base address incrementation is allowed.
23. What is dynamic binding?
  Dynamic binding (also known as late binding) means that the code associated with a given procedure call is not known until the time of the call at run time.It is associated with polymorphism and inheritance.
24. what is an abstract base class?
  An abstract class is a class that is designed to be specifically used as a base class. An abstract class contains at least one pure virtual function.
25. What is the difference between class and structure?
 
  • By default, the members ot structures are public while that tor class is private.
  • structures doesn’t provide something like data hiding which is provided by the classes.
  • structures contains only data while class bind both data and member functions.
What is static identifier?
  A file- scope variable that is declared static is visible only to functions within that file. A function -scope or block-scope variable that is declared as static is visible only within that scope.Further more, static variables only have a single instance. In the case of function- or block-scope variables, this means that the variable is not “automatic” and thus retains its value across function invocations.
27. What is a dynamic constructor?
  The constructor can also be used to allocate memory while creating objects. Allocation of memory to objects at the time of their construction is known as dynamic construction of objects.The memory is allocated with the help of the new operator.
28. What is the difference between an Array and a List?
  The main difference between an array and a list is how they internally store the data. whereas Array is collection of homogeneous elements. List is collection of heterogeneous elements.
29. What are the advantages of inheritance?
 
  • Code reusability
  • Saves time in program development.
30. what is difference between function overloading and operator overloading?
  A function is overloaded when same name is given to different function.
While overloading a function, the return type of the functions need to be the same.
Define a class?
  A class represents description of objects that share same attributes and actions. It defines the characteristics of the objects such as attributes and actions or behaviors. It is the blue print that describes objects.
32. What is the term Polymorphism?
  To override a method, a subclass of the class that originally declared the method must declare a method with the same name, return type (or a subclass of that return type), and same parameter list.
33. What is Overriding?
  The main difference between an array and a list is how they internally store the data. whereas Array is collection of homogeneous elements. List is collection of heterogeneous elements.
34. What is encapsulation?
  Containing and hiding information about an object, such as internal data structures and code. Encapsulation isolates the internal complexity of an object’s operation from the rest of the application.
35. What is a pointer variable?
  A pointer variable is a variable that may contain the address of another variable or any valid address in the memory.

What is the difference between a string copy (strcpy) and a memory copy (memcpy)?
  The strcpy() function is designed to work exclusively with strings. It copies each byte of the source string to the destination string and stops when the terminating null character () has been moved.
On the other hand, the memcpy() function is designed to work with any type of data. Because not all data ends with a null character, you must provide the memcpy() function with the number of bytes you want to copy from the source to the destination.
37. What is the difference between a NULL Pointer and a NULL Macro?
  Null pointer is a pointer that is pointing nothing while NULL macro will used for replacing 0 in program as #define NULL 0 .
38. What is the difference between const char*p and char const* p?
  const char*p - p is pointer to the constant character. i.e value in that address location is constant.
const char* const p - p is the constant pointer which points to the constant string, both value and address are constants.
39. What is the purpose of realloc()?
 
    Realloc(ptr,n) function uses two arguments.
  • The first argument ptr is a pointer to a block of memory for which the size is to be altered.
  • The second argument n specifies the new size.The size may be increased or decreased.
40. What is a pointer value and address?
  A pointer value is a data object that refers to a memory location. Each memory location is numbered in the memory. The number attached to a memory location is called the address of the location.
What is the use of typedef?
  The typedef help in easier modification when the programs are ported to another machine.A descriptive new name given to the existing data type may be easier to understand the code.
42. What are the differences between new and malloc?
 
  • New initializes the allocated memory by calling the constructor. Memory allocated with new should be released with delete.
  • Malloc allocates uninitialized memory.
  • The allocated memory has to be released with free.new automatically calls the constructor while malloc(dosen’t)
43. What is the difference between strdup and strcpy?
  Both copy a string. strcpy wants a buffer to copy into. strdup allocates a buffer using malloc().
Unlike strcpy(), strdup() is not specified by ANSI.
44. What is this pointer?
  It is a pointer that points to the current object. This can be used to access the members of the current object with the help of the arrow operator.
45. What is friend function?
  The function declaration should be preceded by the keyword friend.The function definitions does not use either the keyword or the scope operator ::. The functions that are declared with the keyword friend as friend function.Thus, a friend function is an ordinary function or a member of another class.
What is recursion?
  A recursion function is one which calls itself either directly or indirectly it must halt at a definite point to avoid infinite recursion.
47. What are the characteristics of arrays in C?
 
  • An array holds elements that have the same data type.
  • Array elements are stored in subsequent memory locations
  • Two-dimensional array elements are stored row by row in subsequent memory locations.
  • Array name represents the address of the starting element
48. What is the differentiate between for loop and a while loop? What are it uses?
  For executing a set of statements fixed number of times we use for loop while when the number of iterations to be performed is not known in advance we use while loop.
49. What is the difference between printf(...) and sprintf(...)?
  printf(....) -------------> is standard output statement
sprintf(......)-----------> is formatted output statement.
50. What is an explicit constructor?
  A conversion constructor declared with the explicit keyword. The compiler does not use an explicit constructor to implement an implied conversion of types. It’s purpose is reserved explicitly for construction.Explicit constructors are simply constructors that cannot take part in an implicit conversion.
What is static memory allocation?
  Compiler allocates memory space for a declared variable. By using the address of operator,the reserved address is obtained and this address is assigned to a pointer variable. This way of assigning pointer value to a pointer variable at compilation time is known as static memory allocation.
52. what is the difference between c &c++?
  c++ ia an object oriented programing but c is a procedure oriented programing.c is super set of c++. c can't suport inheritance,function overloading, method overloading etc. but c++ can do this.In c-programe the main function could not return a value but in the c++ the main function shuld return a value.
53. What is multiple inheritance?
  A class can inherit properties from more than one class which is known as multiple inheritance.
54 what is difference between function overloading and operator overloading?
  A function is overloaded when same name is given to different function.
While overloading a function, the return type of the functions need to be the same.
55. What are the advantages of inheritance?
 
  • Code reusability
  • Saves time in program development.
.
What is the difference between malloc and calloc?
  malloc is use for memory allocation and initialize garbage values.malloc () for allocating the single block of memory.
where as calloc is same as malloc but it initialize 0 value.calloc () for allocating multiple blocks of memory.
57. What is null pointer?
  NULL pointer is a pointer which is pointing to nothing.
Examples :
int *ptr=(char *)0;
float *ptr=(float *)0;
58. How are pointer variables initialized?
 
    Pointer variable are initialized in two ways :
  • Static memory allocation
  • Dynamic memory allocation
59. What is copy constructor?
  Copy constructor is a constructor function with the same name as the class and used to make deep copy of objects.
60. What is the difference between #include‹ › and #include “ ”?
  #include‹ › ----> Specifically used for built in header files.
#include “ ” ----> Specifically used for used for user defined/created n header file.
What is dynamic array?
  The dynamic array is an array data structure which can be resized during runtime which means elements can be added and removed.
62. What are macros? What are its advantages and disadvantages?
  Macros are abbreviations for lengthy and frequently used statements. When a macro is called the entire code is substituted by a single line though the macro definition is of several lines.
The advantage of macro is that it reduces the time taken for control transfer as in case of function.
The disadvantage of it is here the entire code is substituted so the program becomes lengthy if a macro is called several times.
63. What is a copy constructor and when is it called?
  A copy constructor is a method that accepts an object of the same class and copies it members to the object on the left part of assignement.
64. Where is the auto variables stored?
  Auto variables can be stored anywhere, so long as recursion works. Practically, they’restored on the stack. It is not necessary that always a stack exist. You could theoretically allocate function invocation records from the heap.
65. What is the difference between arrays and linked list?
  An array is a repeated pattern of variables in contiguous storage. A linked list is a set of structures scattered through memory, held together by pointers in each element that point to the next element. With an array, we can (on most architectures) move from one element to the next by adding a fixed constant to the integer value of the pointer. With a linked list, there is a “next” pointer in each structure which says what element comes next.

Thursday, 11 July 2013

ABOUT C - K MANOHAR GOUD

9866550012

ABOUT C

What is C?

C is a compiler based programming language supports both high level and low level statements to interact directly with the hardware.

Development of C Language

The C programming language evolved from a succession of programming languages developed at Bell Laboratories in early 1970s. It was not until the late 1970s that this programming language began to gain widespread popularity and support. This was because until that time C compilers were not readily available for commercial use outside of Bell Laboratories.
The C language was the outcome of Dennis Ritchie’s work on a project in Bell Laboratories, to invent a suitable high level language for writing an Operating System which manages the input and output devices of a computer, allocates its storage and schedules the running of other programs.
UNIX operating system is written in the C language. Hence the Unix Operating system has C as its standard programming language. In fact over 90% of the operating system itself is written in the C language. So originally C language was designed and implemented on the Unix Operating System.

C as a general purpose Language

C is a high level, procedural/structured, and general purpose programming language and resembles few other high level languages such as Fortran, Pascal, and PL/1. However, we cannot call the C language as a “Purely High Level Language”.
C stands somewhere between the high-level languages meant for carrying on special activities and the low level languages such as assembly language of a machine because of some features like “System Independence”, “Limited Data Type”, “High Flexibility”, it is considered as a powerful language C has also become popular because of its portability across systems.

History of C

YearLanguageDeveloped byRemarks
1960ALGOLInternational CommitteeToo general, Too abstract
1963CPLCambridge UniversityHard to learn, Difficult to implement
1967BCPLMartin RichardsCould deal with only specific problems
1970BKen Thompson AT & T Bell LabsCould deal with only specific problems
1972CDennis Ritchie AT & T Bell LabsLost generality of BCPL and B restored
Early 80’sC++Bjarne Stroustrup AT & TIntroduces OOPs to C.

Features of C

-    Simple, versatile, general purpose language
-    Programs are fast and efficient
-    Has got rich set of operators
-    more general and has no restrictions
-    can easily manipulates with bits, bytes and addresses
-    Varieties of data types are available
-    separate compilation of functions is possible and such functions can be called by any C program
-    block-structured language
-    Can be applied in System programming areas like operating systems, compilers & Interpreters, Assemblers etc.,

II. Programming Basics

Components of a program

1.    Constants
2.    Variables
3.    Operators
4.    Statements
So, before writing serious programming we must be clear with all the above components of programs. According to above example every program is a set of statements, and statement is an instruction to the computer, which is a collection of constants, variables, operators and statements.

Constants

A constant is a fixed value, which never altered during the execution of a program.
Constants can be divided into two major categories:
1.    Primary Constants
2.    Secondary Constants

Data Types

The kind of data that the used variables can hold in a programming language is known as the data type.
Basic data types are as follows:
1.    Numeric Data Type
2.    Non-Numeric Data Type
3.    Integer Data Type
4.    Real Data Type
5.    Logical Data Type
6.    Enumerated Data Type
1.    Numeric Data Type: Totally deals with the numbers. These numbers can be of integer (int) data type or real (float) data type.
2.    Non-Numeric Data Type : Totally deals with characters. Any character or group of characters enclosed within quotes will be considered as non-numeric or character data type.
3. Integer Data Type :   Deals with integers or whole numbers. All arithmetic operations can be achieved through this data type and the results are again integers.
4.    Real Data Type :  deals with real numbers or the numeric data, which includes fractions. All arithmetic operations can be achieved through this data type and the results can be real data type.
5.    Logical or Boolean Data Type :  can hold only either of the two values TRUE or FALSE  at a time. In computer, a 1 (one) is stored for TRUE and a 0 (zero) is stored for FALSE.
6. Enumerated Data Type :  Includes the unstructured data grouped together to lead to a new type. This data type is not standard and us usually defined by user.
Ex.
    Week_days = { “sun”, “mon”, “tue”, “wed”, “thu”, “fri”, “sat” };
    Directions = {”North”, “East”, “West”, “South” };
The following table shows the standard data types with their properties.
Keyword
Range: low
Range: high
Digits of precision
Bytes of memory
Format-ID
char
-128
127
n/a
1
%c
int
-32, 768
32, 767
N/a
2 (on 16 bit processor)
%d
long
-2,147, 483, 648
2, 147, 483, 647
N/a
4
%ld
float
3.4 x 10-38
3.4 x 1038
7
4
%f
double
1.7 x 10-308
1.7 x 10308
15
8
%lf
long double
3.4 x 10-4932
3.4 x 10-4932
19
10
%Lf

Wednesday, 10 July 2013

C BASIC QUESTIONS AND ANSWERS - K MANOHAR GOUD

9866550012
C BASIC QUESTIONS AND ANSWERS 

Why are all header files not declared in every C program?

- Declaring all header files in every program would lead to increase in the overall file size and load of the program. It is not a good programming. 
- The choice header files that you want to declare in the program depends on the commands/functions you want to use in the program. Each header file contains different commands and functions. So we use only the files relevant to our program.


What is a newline escape sequence?

- A newline escape sequence is represented by the \n character.
- It is used to insert a new line while displaying the output data.
- To add more spaces you can use more \n characters.

What are pre-processor directives?

- Pre-processor directives are placed at the beginning of a C program. They begin with # symbol.
- This is the place, where library files are specified depending on the functions to be used in the program.
- Pre-processor directives are also used for declaration of constants.

What are header files? What are their uses?

- Header files are also called as library files.
- They carry two important things: the definitions and prototypes of functions being used in a program.
- For example: stdio.h is a header file that contains definition and prototypes of commands like printf and scanf.

Why is a semicolon (;) put at the end of every program statement?

- It is done for parsing process and compilation of the code.
- A semicolon acts as a delimiter. This tells the compiler where each statement ends, and can proceed to divide the statement into smaller elements for checking the syntax.

Are comments included during the compilation stage and placed in the EXE file as well?

- No, comments encountered by the compiler are disregarded.
- Their only purpose is guidance and ease of programmer. They have no effect on the functionality of the program.

What is the purpose of main( ) function?

The function main() calls / invokes other functions within it. The execution of the program always starts with main() function.
The main() function is :
- The first function to start a program
- Returns int value to the environment which called the program
- It can be called recursively.
- It is a user defined function, except the name
- Like other functions, main(0 function can receive arguments. It has a) argument count and b) argument vector(string argument)      

Differentiate between #include<...> and #include "..."

- #include<...> means that the directories other than the current one will be searched for the header file.
- #include "..." means that the current directory will be searched for the header file before any other directories.

Give an example of escape sequence in c.

• Newline character is the example of escape sequence in c.
• It is represented by symbol \n and is placed at the of control string.
• It is composed of 2 characters but is translated by the compiler into single character.
• It instructs the computer to move to the next line before the information is printed.
• Example: printf(“welcome to c “\n”) ;

Which function is used to input the values during execution of a program?

• The function scanf is used to input the values during execution of a program.
• Scanf stands for scan function or scan formatting.
• Syntax: scanf(“%d”, &n);
• %d shows the data type of value entered and the value is stored in’ n’.
• It is used where a numeric value or character is to be read into simple variable.


Tuesday, 9 July 2013

HISTORY OF C FAMILY LANGUAGE - K MANOHAR GOUD


History of the C family of languages

1972 - The precursor to C, the language B, is developed at Bell Labs. The B language is fast, easy to maintain, and useful for all kinds of development from systems to applications. The entire team that designed the language is immediately fired for behavior unbefitting a telephone company employee, and the project is handed to Dennis Ritchie. He alters the language to be incomprehensible, difficult to maintain, and only useful for systems development. He also designs in a pointer system guaranteed to give every program over 500 lines a pointer into the operating system.
1982 – It is discovered that 97% of all C routine calls are subject to buffer overrun exploits. C programmers begin to realize that initializing a variable to whatever happens to be lying around in memory is not necessarily a good idea. However, since enforcing sensible variable initialization would break 97% of all C programs in existence, nothing is done about it. 
1984 – The number of operating systems bad pointers can get to has been dramatically increased.  
1985 – A variant of C with object oriented capabilities, called C With Classes, is ready to go commercial. However, the name C With Classes is considered too clear and easy for outsiders to understand, so the commercial version is called C++.
1986 – C becomes so popular that industry analysts recommend writing business applications in it. They argue that applications written in C will be portable to many different systems. Many of these industry analysts are suspected of being under the influence of hallucinogens.
1988 – Industry analysts finally run out of LSD. After their hallucinations fade, they notice that business apps written in C take five times longer to produce, and are still not portable. They stop recommending that business apps be written in C, except for a minority that switch to crack cocaine and start recommending business apps be written in C++ because “object orientation will result in code reuse”.
1990 – By this time, all C compilers have turned into C++ compilers. But, since most C++ programs do not use any of the object oriented features of the language, this means in practical terms that bloated code structures with pointers into the operating system are now being compiled with an object-oriented compiler.
1990 – After hiring some industry analysts that switched from crack to sniffing glue, Sun decides to create a language called Oak to program set-top television boxes. Since all their programmers have had stilted C syntax imprinted into their DNA by this time, the new language borrows heavily from C and C++ syntax. However the set-top boxes don’t have an operating system for bad pointers to get to, so pointers are eliminated from the language.
1994 – Someone at Sun finally realizes what a stupid idea it was to develop a special language just for set-top television boxes. The language is renamed Java and repositioned as an “Internet” language that is supposed to be portable to many platforms. This works well as a marketing campaign, since less than 3% of people in the industry at this time realize what the Internet is, and since hallucinating industry analysts continue to be suckers for the mythical idea of "portability to different platforms".
1995 - Sun offers free psychedelic mushrooms to industry analysts, who immediately start writing articles about how Java is the future of programming because of its portability and integration with the Internet.
Mid 1996 – 17,468,972 articles appear about how Java is the future of programming. The age of Java applets in web pages begins.
Late 1996 – Programmers trying to produce actual web pages with applets that really work commit mass suicide out of frustration and depression. Industry analysts increase their dosage of hallucinogens to compensate.
1997 – Taking the advice of hallucinating industry analysts, Corel decides to rewrite all their applications, including WordPerfect, in Java. The end result is the first known word processor that is slower to use than a typewriter.
1998 – Realizing that the applet thing is fading fast, Sun repositions Java again, this time as a server language. They steal the design of Microsoft Transaction Server and convince everyone to pretend they created the design.
1999 – Java 2 Enterprise Edition is introduced to the rave reviews of drunk and stoned industry analysts. 21,499,512 articles are written about it, but no one actually uses it because it’s immature and expensive.
2000 – J2EE finally works, sort of. Just about the time all the Java vendors are ready to start making money on it, Microsoft announces .NET, which includes almost all the features of J2EE except the outrageous cost. In fact, Microsoft decides to give .NET away free for Windows users. Scott McNealy is so outraged he files another irrational lawsuit against Microsoft.
.NET includes a new C-family language, C#, pronounced “C-pound”, continuing the tradition of languages in this family having stupid names.
2001 – Microsoft’s marketing department realizes that no one in marketing has ever talked to a live Microsoft product developer. They have lunch with one and discover that the pronunciation is actually supposed to be “C sharp”.
2002 – C# is introduced as part of the release version of Microsoft .NET. C++ developers on the Microsoft platform rejoice over the concept of “managed code”, which means they finally receive the same automatic memory management features that Visual Basic has had since 1991 and Java has had since 1995.






INTRODUCTION TO C LANGUAGE - K MANOHAR GOUD

9866550012

INTRODUCTION TO C LANGUAGE

C is a general purpose high level language that was originally developed by Dennis M. Ritchie to develop the Unix operating system at Bell Labs. C was originally first implemented on the DEC PDP-11 computer in 1972.
In 1978, Brian Kernighan and Dennis Ritchie produced the first publicly available description of C, now known as the K&R standard.
The UNIX operating system, the C compiler, and essentially all UNIX applications programs have been written in C. The C has now become a widely used professional language for various reasons.
  • Easy to learn
  • Structured language
  • It produces efficient programs.
  • It can handle low-level activities.
  • It can be compiled on a variety of computer platforms.

Facts about C

  • C was invented to write an operating system called UNIX.
  • C is a successor of B language which was introduced around 1970
  • The language was formalized in 1988 by the American National Standard Institute (ANSI).
  • The UNIX OS was totally written in C By 1973.
  • Today C is the most widely used and popular System Programming Language.
  • Most of the state of the art software's have been implemented using C.
  • Today's most popular Linux OS and RBDMS MySQL have been written in C.

Why to use C ?

C was initially used for system development work, in particular the programs that make-up the operating system. C was adopted as a system development language because it produces code that runs nearly as fast as code written in assembly language. Some examples of the use of C might be:
  • Operating Systems
  • Language Compilers
  • Assemblers
  • Text Editors
  • Print Spoolers
  • Network Drivers
  • Modern Programs
  • Data Bases
  • Language Interpreters
  • Utilities

C Programs

A C program can vary from 3 lines to millions of lines and it should be written into one or more text files with extension ".c" for example hello.c