Wednesday 4 September 2013
0 comments

C Interview Question

03:27
1. 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 sub-scripted variables to access and manipulate data. Array variables can be Equivalently written using pointer expression.


6. 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 casesIt 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.


11. 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.


16. 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];


21. 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 decrements the array 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 incremental 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 or 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.


26. 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.



31. 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.


36. 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.


41. 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.


46. 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.


51. 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. 
56. 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.

61. 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.

66. What are register variables? What are the advantages of using 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.

67. What is problem with Runtime type identification?

  The run time type identification comes at a cost of performance penalty. Compiler maintains the class.

68. What is conversion operator?

  You can define a member function of a class, called a conversion function, that converts from the type of its class to another specified type.

69. What is a pointer value and address?

  A pointer value is a data object that refers to a memory location, bach memory location is numbered in the memory. The number attached to a memory location is called the address of the location.

70. What is a static function?

  A static function is a function whose scope is limited to the current source file. Scope refers to the visibility of a function or variable. If the function or variable is visible outside of the current source file, it is said to have global, or external, scope. If the function or variable is not visible outside of the current source file, it is said to have local, or static, scope.

71. What is storage class? What are the different storage classes in C?

  Storage class is an attribute that changes the behavior of a variable. It controls the lifetime,scope and linkage. The storage classes in c are auto, register, and extern, static, typedef.

72. What the advantages of using Unions?

  When the C compiler is allocating memory for unions it will always reserve enough room for the largest member.

73. What is the difference between Strings and Arrays?

  String is a sequence of characters ending with NULL .it can be treated as a one dimensional array of characters terminated by a NULL character.

74. What is a huge pointer?

  Huge pointer is 32bit long containing segment address and offset address. Huge pointers are normalized pointers so for any given memory address there is only one possible huge address segment : offset pair. Huge pointer arithmetic is doe with calls to special subroutines so its arithmetic slower than any other pointers.

75. In C, why is the void pointer useful? When would you use it?

  The void pointer is useful because it is a generic pointer that any pointer can be cast into and back again without loss of information.

76. What is generic pointer in C?

  In C void* acts as a generic pointer. When other pointer types are assigned to generic pointer,conversions are applied automatically (implicit conversion).

77. How pointer variables are initialized?
  Pointer variables are initialized by one of the following ways. 
  • Static memory allocation
  • Dynamic memory allocation
78. What are the advantages of auto variables?

  • The same auto variable name can be used in different blocks.
  • There is no side effect by changing the values in the blocks.
  • The memory is economically used.
  • Auto variables have inherent protection because of local scope.
79. What is dynamic memory allocation?

  A dynamic memory allocation uses functions such as malloc() or calloc() to get memory dynamically. If these functions are used to get memory dynamically and the values returned by these function are assigned to pointer variables, such a way of allocating memory at run time is known as dynamic memory allocation.

80. What is the purpose of realloc?

  It increases or decreases the size of dynamically allocated array. The function realloc (ptr,n) 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 specifies the new size. The size may be increased or decreased. If sufficient space is not available to the old region the function may create a new region.

81. What is pointer to a pointer?
If a pointer variable points another pointer value. Such a situation is known as a pointer to a pointer.
 Example : int *p1,
**p2,
v=10;P1=&v; p2=&p1;
Here p2 is a pointer to a pointer.

82. What is the difference between linker and linkage?

  Linker converts an object code into an executable code by linking together the necessary built in functions. The form and place of declaration where the variable is declared in a program determine the linkage of variable.

83. What is a function?

  A large program is subdivided into a number of smaller programs or subprograms. Each subprogram specifies one or more actions to be performed for the larger program. Such sub programs are called functions.

84. What is an argument?

  An argument is an entity used to pass data from the calling to a called function.

85. 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.

86. Can a Structure contain a Pointer to itself?

  Yes such structures are called self-referential structures.
87. What is the difference between array and pointer?

  Array 
  • Array allocates space automatically.
  • It cannot be resized
  • It cannot be reassigned.
  • size of (arrayname) gives the number of bytes occupied by the array.
        Pointer
  • Explicitly assigned to point to an allocated space.
  • It can be sized using realloc() 3-pointer can be reassigned.
  • sizeof (p) returns the number of bytes used to store the pointer variable p.
88. What is the difference between syntax vs logical error?
  • Syntax Error 
    • These involves validation of syntax of language.
    • compiler prints diagnostic message.
  • Logical Error 
    • logical error are caused by an incorrect algorithm or by a statement mistyped in such a way that it doesn't violet syntax of language.
    • difficult to find.
89. What is preincrement and post increment?

  ++n (pre increment) increments n before its value is used in an assignment operation or any expression containing it. n++ (post increment) does increment after the value of n is used.

90. What are the two forms of #include directive?

  #include“filename”
       #include - the first form is used to search the directory that contains the source file.If the search fails in the home directory it searches the implementation defined locations.In the second form ,the preprocessor searches the file only in the implementation defined locations.

91. What is the difference between the functions memmove() and memcpy()?

  The arguments of memmove() can overlap in memory. The arguments of memcpy() cannot.

92. what is a stream?

  A stream is a source of data or destination of data that may be associated with a disk or other I/O device. The source stream provides data to a program and it is known as input stream. The destination stream eceives the output from the program and is known as output stream.

93. What is meant by file opening?

  The action of connecting a program to a file is called opening of a file. This requires creating an I/O stream before reading or writing the data.

94. What is a file pointer?

  The pointer to a FILE data type is called as a stream pointer or a file pointer. A file pointer points to the block of information of the stream that had just been opened.

95. What are the advantages of using array of pointers to string instead of an array of strings?
  •  Efficient use of memory.
  • Easier to exchange the strings by moving their pointers while sorting.
96. What are the pointer declarations used in C?
  • Array of pointers, e.g , int *a[10]; Array of pointers to integer
  • Pointers to an array,e.g , int (*a)[10]; Pointer to an array of into
  • Function returning a pointer,e.g, float *f( ) ; Function returning a pointer to float
  • Pointer to a pointer ,e.g, int **x; Pointer to apointer to int
  • pointer to a data type ,e.g, char *p; pointer to char
97. What is the invalid pointer arithmetic?
  • adding ,multiplying and dividing two pointers.
  • Shifting or masking pointer.
  • Addition of float or double to pointer
  • Assignment of a pointer of one type to a pointer of another type

******************************************************************

0 comments:

Post a Comment

 
Toggle Footer
Top