C interview questions

1.)  Who invented C Language?


Dennis Ritchie in 1972 developed a new language by inheriting the features of both BCPL and B and adding additional features. He named the language as just C.


2.) Who invented B Language?


Ken Thomson at AT&T Bell Labs developed a language and named it B. Even the B language was found to have some short comings to support development of both business applications and system software.

3.)  Who invented BCPL Language?

Basic Combined Programming Language(BCPL) was developed by Martin Richards, Cambridge university.


4.)  Why C Language?

 C is one of the high level languages. It is a general purpose language, which means it can be used to write programs of any sort.


 5.)  What are the features of C Langauges?


  • In C one can write programs like that of high level languages as in COBOL, BASIC, FORTRAN etc. as well as it permits very close interaction with the inner workings of the computer.
  • It is a general purpose programming language. It is usually called system programming language but equally suited to writing a variety of applications.
  • It supports various data types
  • It follows the programming style based on fundamental control flow constructions for structured programming
  • Functions may be pre–defined or user defined and they may return values of basic types, structures, unions or pointers.
6.) What are the advantages of c language?

  • Easy to write
  • Rich set of operators and functions that are built–in
  • Support for bit–wise operation
  • Flexible use of pointers
  • Direct control over the hardware
  • Ability to access BIOS/DOS routines
  • Interacting using Interrupts
  • Ability to write TSR programs
  • Ability to create .COM files
  • Ability to create library files (.LIB)
  • Ability to write interface programs
  • Incorporating assembly language in C program
7.)What are the disadvantages of c langauge?


  • C is considered difficult to learn
  • Because of its conciseness, the code can be difficult to follow
  • It is not suited to applications that require a lot of report formatting and data file manipulation

8.)  What are the salient features of c languages?


    The following are the salient features of C language are :
  • C is called a middle level language
  • C supports structured design approach
  • C is extensible
  • C is rich in data types and operators
  • C is portable

9.)  What is a header file?

Header files provide the definitions and declarations for the library functions. Thus, each header file contains the library functions along with the necessary definitions and declarations. For example, stdio.h, math.h, stdlib.h, string.h etc.

10.) What is character set?

Character set is the set of characters allowed and supported in the programming language. Generally a program is a collection of instructions, which contain groups of characters. Only a limited set of characters is allowed to write instructions in the program.


11.) What is C token?

The smallest individual units of a C program are known as tokens.

12.)  List the different types of C tokens?

  • Constants
  • Identifiers
  • Keywordshttp://www.blogger.com/blogger.g?blogID=5787117423536531354#editor/target=page;pageID=7043876951200578546
  • Operators
  • Special symbols
  • Strings
13.)  What is a string?

A string is a sequence of characters ending with NUL. It can be treated as a one–dimensional array of characters terminated by a NUL character.

14.)  What are qualifiers?

 Qualifiers or modifiers are identifiers that may precede the scalar data types (except float) to specify the number of bits used for representing the respective type of data in memory. The qualifiers in C are short, long, signed, and unsigned.

15.)  What is a function?

A function is a set of statements to perform a specific task.

16.) What is a constant?

A constant is a value that does not change during the program execution. A constant used in C does not occupy memory.

17.) What are the different types of constants?

    There are five types of constants. They are :
  • Integer constants
  • Floating point constants
  • Character constants
  • String literals
  • Enumeration constants

18.)  What is variable?

An identifier is used to identify and store some value. If the value of the identifier is changed during the execution of the program, then the identifier is known as variable.


19.) What are the rules for the identifier?

  • The first character must be an alphabet or underscore (_)
  • Digits may be included in the variable
  • The maximum number of characters in a word are 32 (It may vary depending upon the platform)
  • No other special characters are allowed.
20.)What are global variables?


Global Variables are those, which are required to be acccessed by all the functions defined after their declaration. So, the variables declared before the main {) can be acccessed by all the functions, which follow their declaration.

21.)  What is a keyword?

Keywords are those words of C which have predefined meaning assigned by the C language. They form a part of the database required by the C compiler.

22.)  What are the different types of c instructions?

    There are basically three types of instructions in C are :
  • Type Declaration Instruction
  • Arithmetic Instruction
  • Control Instruction
23.)  What is an expression?

Expression is defined as a combination of operands and operators to obtain some computation. Operands represent variables or values and The operator tells is what operation to be performed.


24.)  What are the types of data files?

    There are two types of data files :
  • stream oriented or standard data files
  • system oriented or low level data files
25.) Why C is called a middle level language?

C combines the features of both Assembly Level Languages (Low Level Languages) and Higher Level Languages. For this reason, C is referred to as a Middle Level Language. The feature of ALLs is that of enabling us to develop system level programs and the features of HLLs are those of higher degree of readability and machine independence.


26.)  How can variables be characterized?

The variables can be categorized by storage class as well as by data type. The storage class specifies the portion of the program within which the variables are recognized.

27.)  Give the rules for variable declaration?

    The rules for variable declaration in C are given below :
  • A variable name consists of alphabets, digits and the underscore (_) character
  • The length of variable should be kept upto 8 characters though your system may allow upto 40 characters
  • They must begin with an alphabet
  • Some systems also recognize an underscore as the first character
  • White space and commas are not allowed
  • Any reserved word (keyword) cannot be used as a variable name.
28.) What is the purpose of type declarations?

The type declaration allow to create a synonym for other data types. Its syntax is typedef type identifier; The declaration typedef unsigned long int INTEGER

29.) What is recursion?


C language a function may call another function. When a function calls itself, it is referred to as recursive call and the process is known as recursion. C provides very good facilities for recursion.

30.)  What is data types?

Data types refer to the classes of data that can be manipulated by C programs. The three fundamental data types supported by C are character, integer and real type. 

31.)   What are the types of macro formats?

    There are two types of macro formats. There are
  • Simple
  • Parameterized

32.)  What are the different types of errors?

  • Compile–Time Errors
  • Linker Errors
  • Runtime Errors
  • Logical Errors
33.) What is meant by errors and debugging

Errors may be made during program creation even by experienced programmers. Such type of errors are detected by the compiler.
Debugging means removing the errors.

34.) 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.

35.)  What is meant by type casting?

  It is the explicit type conversion required for a number before carrying out processing or assigning to another variable.

36.) What are the primitive data types in c?

    There are five different kinds of data types in C.
  • Char
  • Int
  • Float
  • Double
  • Void

37.) 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.


38.)  What is meant by type specifiers?

Type specifiers decide the amount of memory space occupied by a variable. In the ease of integral types; it also explicitly states the range of values that the object can hold.

39.)  What are the types of type specifiers?


    The available data type specifiers are :
  • Short
  • Long
  • Signed
  • Unsigned

40.) What is masking?


Masking is a process in which a given bit pattern is partly extracted into another bit pattern by means of a logical bitwise operation.


41.) What is the difference between single charater constant and string constant?

  • A single character constant consists of only one character and it is enclosed within a pair of single quotes.
  • A string constant consists of one or more characters and it is enclosed within a pair of double quotes.

42.) What is signed and unsigned?


A numeric value, may have a positive or a negative sign. In the memory, for a variable, one bit is used exclusively to maintain the sign of the data. If we don't have sign, the sign bit also may be used for data. If the value is negative, the sign bit is 1, and if it is positive, it will be 0.


43.) What is zero based addressing?


The array subscripts always start at zero. The compiler makes use of subscript values to identify the elements in the array. Since subscripts start at 0, it is said that array uses zero-based addressing.


44.)What are the different categories of functions in C?


    In C, the functions can be divided into the following categories :
  • Functions with no arguments and no return values
  • Functions having arguments but no return values
  • Functions having arguments and return values also

45.) 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.

46.) What is a loop?


A loop is a process to do a job repeatedly with possibly different data each time. The statements executed each time constitute the loop body, and each pass is called iteration. A condition must be present to terminate the loop.

47.)  What are the types of data types and explain?


    There are five basic Data types in C. These are :
  • void : means nothing i.e. no data involvement in an action
  • char : to work with all types of characters used in computer operations
  • int : to work with an integer type of data in any computational work
  • float : to work with the real type of data or scientific numbers in the exponential form
  • double : to work with double precision of numbers when the approximation is very crucial.


48.) 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.


49.) What is break statement?


When a break is encountered inside a loop, the loop is terminated and the control passes to the statement following the body of the loop.

50.) What is the use of getchar() function?


t returns a character just entered from the standard input unit, that is, keyboard. The entered character can be either assigned to a character variable or echoed to the computer screen.

51.)  What is a pointer?

A pointer is a variable that represents the location (rather than the value) of a data item, such as a variable or an array element. It is a variable that holds a memory address. This address is the location of another variable or an array element in memory.

52.) How to declare pointer variables?


If a variable is going to be a pointer, it must be declared as such. A pointer declaration consists of a base type, an *, and the variable name. The general form for declaring a pointer variable is data _type * var_ name;

53.)  What is the difference between fread buffer() and fwrite buffer()?


Fread(), buffer is a pointer to an area of memory that will receive the data from the file. For fwrite(), buffer is a pointer to the information that will be written to the file. The value of count determines how many items are read or written, with each item being num_byte bytes in length. The size_t in both the formats is defined as some kind of unsigned integer. Finally, fp is a file pointer to a previously opened file.


54.) What is macro?

The second preprocessor function is macro definition. A macro is formal syntax that can be used to generate statements for use in a program. For the C language, the macro generates C statements.


55.)  What are the types of I/O functions?


    I/O functions are grouped into two categories :
  • Unformatted I/O functions
  • Formatted I/O functions

56.)  What is the difference b/w formatted&unformatted I/O functions?


The formatted I/O functions allow programmers to specify the type of data and the way in which it should be read in or written out. On the other hand, unformatted I/O functions do not specify the type of data and the way is should be read or written.


57.) How to declare pointer variables?

If a variable is going to be a pointer, it must be declared as such. A pointer declaration consists of a base type, an *, and the variable name. The general form for declaring a pointer variable is data _type * var_ name;

58.)  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.

59.) What is the use of putchar function?

The putchar function displays one character on the display monitor. The character to be displayed is of type char. The syntax for putchar function is as given below : putchar (ch_var);
Where ch_var is a previously declared character variable.


60.) What is the use of getchar functions?

The getchar function accepts a single character from the keyboard. The function does not require any arguments, though a pair of empty parentheses must follow the word getchar as a syntax. It returns a single character from a standard input device (typically a keyboard ) and it can be assigned to predeclared character variable.

61.) What is character constants?

A character constant is a single character, enclosed within the pair of single quotation mark (apostrophes).

62.) What is string constants?

A string constant or literal contains a sequence of zero or more characters or escape seauences enclosed in double Quotation marks.

63.) What is integer constants?

An integer constant is an integer-valued number. It can represent decimal, octal, or hexadecimal values.

64.) What is floating point constants?

    Floating-point constants are numbers with decimal parts. A floating-point constants consists of :
  • An integral part
  • A decimal point
  • A fractional part
  • An exponent part
  • An optional suffix
65.) What is the difference between fread and fwrite function?

The fread() function returns the number of items read. This value may be less than count if the end of the file is reached or an error occurs. The fwrite() function returns the number of items written. This value will equal count unless an error occurs.

66.) 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.
67.) What are linker error?

The Linker Errors occur during the linking process when the external symbols referred to by the program are not resolved.


68.) What are runtime error?

The Runtime Errors occur while a program is being run and hence the name. They occur due to both program internal and external factors.

69.)  When do we get logical errors?


  • The Logical Errors occur if the solution procedure for the given problem itself is wrong.
  • In this case, the outputs produced by the programs would be incorrect.
  • Correcting the solution procedure itself by better understanding of the problem eliminates these errors.
  • The Logical Errors (if any) are to be figured out by ourselves by verifying the outputs that are produced by the program.

70)  Do character constants represent numerical values?

Yes, each character constant associates an integer value with it.


71)  What is the purpose of scanf() and printf() functions?

  • The function scanf() is used for formatted input from the standard input and provides many of the conversion facilities.
  • It is used for formatted output to standard output device, that is, screen. The format specification string and the data to be output, are the arguments (parameters) to the printf() function.
72.) What is type qualifiers?

Type qualifier adds properties to an identifier. Type qualifiers describe the manner in which the object will be modified. The application of qualifiers to an object does not affect the range or the arithmetic properties of the object.


73.) What are the types of type qualifiers in c?

    The two type qualifiers provided by C are :
  • const
  • volatile
74)  What is meant by inheritance?

Inheritance is the process by which objects of one class acquire properties of objects of another class.

75.) Do string constants represent numerical values?

No, the string constants donot have a corresponding numerical value.

76) What is meant by operator precedence?

Operator precedence describes the order in which C evaluates different operators in a complex expression.
77)What is an Operator?


An operator is a symbol, which instructs the computer to perform the specified manipulation over some data. The rich set of operators available in C enable us to write efficient and concise programs and this fact serves to set C apart from any other programming languages.


78) What are the types of operators in c?

  • Assignment operator
  • Arithmetic operators
  • Relational operators
  • Logical operators
  • Increment/Decrement operators
  • Shorthand arithmetic assignment operators
  • Conditional operator
  • Bitwise operators
  • Sizeof() operator
  • Comma operator


79.) What is a ternary operator in C?

Perhaps the most unusual operator in C language is one called the conditional expression operator. Unlike all other operators in C which are either unary or binary operators the conditional expression operator is a ternary operator; that is, it takes three operands. The two symbols that are used to denote this operator are the question mark (?) and the colon (:). The first operand is placed before the ?, the second between the ? and the and the third after the :.


80) What is assignment operator?

An operator is a symbol that operates on a certain data type.In C, the ’=’ symbol is known as the assignment operator. It sots the value of the variable on the left hand side of it to that of the right hand side of  it.

81) What are the types of assignment statements?

    C supports a variety of assignment statements. These are given below :
  • Simple assignment statement
  • Multiple assignment statement
  • Arithmetic assignment statement
82.)What is the sizeof () operator?

Even though it looks like a keyword, sizeof( ) is an operator which is used to know the memory size of the data types and variables. This operator returns the number of bytes allocated for the variable (or) data type. The format of the sizeof() operator is as follows.
sizeof (v);
where v is a variable name / data type / value.

83) What is the use of bitwise operator?

The bitwise operator performs the operation on bits (i.e. bit by bit). Using the bitwise operators we can set / reset / check any bit in the value of the variable.

84) What is the Difference between = and = = Operators?

The two operators = and == are used for assignment and checking respectively. If not properly used, it causes many problems. The following program illustrates what will happen if we use = instead of = =.

85) What is unary operator?

The operators that act upon a single operand to produce a new value are known as unary operators.

86) What are the types of unary operators?

support unary operators are :
  • minus operator -
  • increment operator + +
  • decrement operator –
  • size operator
  • (type) operator

87) What is the difference between break and continue?

The break statement is used to exit from all the loop constructs (while, do while and for) and switch.case statements, whereas the continue statement is used to skip all subsequent instructions and can control back to the loop control. The continue statement can be used for any loop construct.

88) What is storage class?

The storage class in C provides the complete information about the location and visibility of variables. Scope of a variable means the portion of the program within which it can be referenced and lifetime means the time of its existence in the memory.
89) What are the different storage classes in C?

    There are four types of storage classes.
  • Automatic : Variable used as a local variable. This is the default one. Initial value of variable is garbage value without initialization.
  • Extern : Variable used as a local variable. Retains its value during next function call.
  • Regiter : Variable used as a local variable. May be stored in register if possible. Default initial value is garbage value.
  • Static : Variable used as a global variable.


90) What are the types of bitwise operator?
    There are three types of bitwise operator.
  • Bitwise AND(&)
  • Bitwise OR(|)
  • Bitwise Exclusive OR(^)


91) 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.

92) What is getche() function?

It returns a character just entered from the standard input unit. The entered character is echoed (displayed) to the computer screen. It reads a single character the moment it is typed without waiting for the Enter key to be hit.

93) What is getch() function?

It returns a character just entered from the standard input unit. The entered character is not echoed on the screen. It reads a single character the moment it is typed without waiting for the Enter key to be hit.

94) What is putchar() function?

It prints the character constant or the character variable to the standard output device. The function putchar( ) has the following form :
putchar (var name)


95) What is an arrays?

Arrays can be defined as a collection of variables of the same type that are referred through a common name.

96)  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.

97) 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
  • Array size should be mentioned in the declaration. Array size must be a constant expression and not a variable.

98) 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.

99) What is else if ladder?

The else if ladder helps select one out of many alternative blocks of statements for execution depending on the mutually exclusive conditions.

100) What is 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.

101) How are the two dimensional array elements stored in memory?

Two dimensional arrays follow row major order storage representation .The elements are stored in row by row in the subsequent memory locations.

102)  What is the value of sizeof (char)?

The value returned by sizeof (char) is always 1 since char uses only one byte in any machine. For other data types, the number of bytes used to represent a data type depends on the implementation of a compiler.

103) What is an operands?

The operators can be defined as symbols which specify operations to be performed. The C language includes a number of operators. These operators are used in different combinations to form expressions. The  data items on which the operators act upon are known as operands.

104) What is the difference between switch and if else?

The switch expression may be any integral type only but the condition in. if–else–if ladder may be designed with arithmetic, boolean or user defined data items.

105) What are the types of looping structures?

    C provides three looping structures. They are
  • The While loop
  • The do while loop
  • The for loop
106)  What is the difference between for and do while loops?

This difference is the place where the condition is tested. The for tests the condition before executing any of the statements within the body of the for loop. As against this, the do while tests the condition after having executed the statements within the loop.

107)  What are the types of control structures?

Sequence control structure : may consist of a single statement or a sequence of statements with a single entry and single exit.
Selection control structure : performs one out of two or more statements depending upon the condition.
Looping control structure : has one condition and a sequence structure which is executed a number of times depending upon the condition.

108)  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.
Calloc is same as malloc but it initialize 0 value.calloc () for allocating multiple blocks of memory.


109)  What are the types of constants in c?

    C has four basic types of constants. They are :
  • Integer constants
  • Floating point constants
  • Character constants
  • String constants

110) What is the difference between call by value and call by reference?


The value of each of the actual parameters in the calling function is copied into corresponding formal arguments of the called function. So, variables in the caller function (actual parameters) are distinct from variables in the called function (formal parameters) even though they may have same names and their values are not affected in the called function, since they have different memory locations.

111)  What is structures?

In C, a structure is a derived data type consisting of a collection of member elements and their data types. Thus, a variable of a structure type is the name of a group of one or more members which may or may not be of the same data type. In programming terminology, a structure data type is referred to as a record data type and the members are called fields.

112) What are register variables?

If a variable is declared with a register storage class, it is known as register variable.The register variable is stored in the cpu register instead of main memory. Frequently used variables are declared as register variable as it’s access time is faster.

113)  What is a symbolic constant?

  • A symbolic constant is a name that substitutes for a sequence of characters. The characters may be a numeric constant, a character constant or a string constant.
  • A symbolic constant allows a name to appear in place of a numeric constant, a character constant or a string.
  • Symbolic constants are usually defined at the beginning of a C program. The symbolic constants may then appear later in the program in place of the numeric constants, character constants, and so on.

 114) What are the types of keywords supported by ANSI C?

    There are 32 keywords supported by ANSI C :
  • Auto
  • Double
  • Int
  • Struct
  • Break
  • Else
  • Long
  • Switch

 115) What is an union?

The union is a construct that allows memory to be shared by different types of data. It can store objects of different types at different times; however at any given moment it stores an object of only one of the specified types.


116)What is bit field?


A bit field is a commonly used data structure used to compactly hold a set of Boolean flags. Instead of using Boolean variables for each flag, the flags are stored in a fixed-size data structure like an integer, whose size in bits is known. The Boolean flags are then stored in each bit of the data structure, minimizing memory usage. In order to retrieve, read and write information from and to a bit field, the programmer uses the bitwise operators AND, OR and NOT.

117) What are the use of bit field?

    The Bit field are useful for number of reasons, such as :
  • When storage is limited, we can store several Boolean variables in one byte
  • Certain devices transmit status information encoded into one or more bits within a byte
  • Certain encryption routines need to access the bits within a byte

118) What is stream?

A stream is a sequence of elements in time. Only one stream element, the current one, is available at a time. In other words, the computer looks at input and output data, whether from a physical device such as keyboard or from file stored on a secondary storage, as a stream of characters or bytes. In this way, the programmer does not have to worry about the different properties of input/output devices, since every device sends or receives time sequenced bytes. All of C’s file structures are byte streams.

119)  What are Cpreprocessor?

The preprocessor uses programmer supplied commands to prepare the source program for compilation. The translator then accepts source program and converts it into machine code and generates the object module. Depending on the compiler design, the preprocessor and translator can work together, or the preprocessor can create a separate version of the source program, which is then read by the translator.

120) Difference between character constants and numeric type constants?

  • Each character constant has some integer value associated with it, while numeric type constants can be exact quantities or even approximations.
  • The value of a character constant may vary from one computer to another but the constants themselves are independent of the character set.
  • A character constant cannot be of length more than 1, but a numeric type constant has no such restriction.

 121) Difference between string constants and character constants?

The string constants are always enclosed in double quotes, while character constants are enclosed in apostrophes (single quotation marks).
A character constant has an equivalent integer value, whereas a single-character string constant does not have an equivalent integer value.

122) What are built in functions?

The functions that are predefined and supplied along with the compiler are known as built in functions. They are also known as library functions.

123) 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.

124) What is escape sequences?

An escape sequence is a set of characters, when taken together, represent one character which may have a special significance. Escape sequences help to format the outputs properly or create appropriate signals.

125) What is the difference between formal and actual parameters?

The formal parameters are the parameters that are used to collect values or addresses from the calling function to a function being called, whereas the actual parameters are used for passing values or addresses from the calling function to a function being callcd. In call by value method, it is the value of actual parameter that is copied into the formal parameter of the function. In call by reference, it is the address of the actual parameter that is assigned to the formal parameter, i.e., both the formal and actual parameters have same address. If any change is made to the actual (or formal) parameter, the corresponding formal (or actual) parameter will be affected.




























No comments:

Post a Comment