Interview Questions related to c, c++ and oops
BCA NOET
Interview Questions related to c, c++ and
oops.
All these questions are provided by Anupam
Karan.
Q1.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.
Q2.What are the types of constants in c?
C
constants can be divided into two categories :
1. Primary constants
2. Secondary constants
Q3. What are the types of C instructions?
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 :
1. Type Declaration Instruction
2. Arithmetic Instruction
3. Control Instruction
Q4. 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.
Q5. What is the difference between arrays
and pointers?
Pointers
Pointers
are used to manipulate data using the address. Pointers use • operator toaccess
the data pointed to by them.
Arrays
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.
Q6. 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.
Q7.What are the uses of a pointer?
Pointer
is used in the following casesIt is used to access array elements.
1. It is used for dynamic memory allocation.
2. It is used in Call by reference.
3. It is used in data structures like trees, graph, linked list etc.
Q8. 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.
1. It is the starting function.
2. It returns an int value to the environment that called the program.
3. Recursive call is allowed for main( ) also.
4. It is a user-defined function.
Q9.What are the different storage classes
in C?
There
are four types of storage classes.
1. Automatic 2. Extern 3. Regiter 4. Static
Q10. Define inheritance?
Inheritance
is the process by which objects of one class acquire properties of objects of
another class.
Q11.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.
Q12.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.
Q13. 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.
Q14. 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.
Q15. 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.
Q16. 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.
Q17. 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.
Q18. 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.
Q19. 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.
Q20. 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.
Q21. What are the advantages
of inheritance?
Main advantages of using
Inheritance are:
1. Code reusability
2. Saves time in program development.
Q22. 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.
Q23. 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.
Q24. 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.
Q25. 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.
Q26. What is encapsulation?
Containing and hiding
information about an object, such as internal data structures andcode.
Encapsulation isolates the internal complexity of an object's operation from
the rest of the application.
Q27. What is a pointer
variable?
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.
Q28. 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.
Q29. 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 .
Q30. 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.
Q31. 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.
Q32. 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.
Q33. 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.
Q34. 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)
Q35. 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.
Q36. 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.
Q37. 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.
Q38. What are the characteristics of arrays
in C?
are
the characteristics of arrays in C are as follows:
1. An array holds elements that have the same data type.
2. Array elements are stored in subsequent memory locations Two-dimensional.
3. Array elements are stored row by row in subsequent memory locations.
4. Array name represents the address of the starting element.
Q39. 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.
Q40. What is the difference between
printf(...) and sprintf(...)?
printf(....)
-------------> is standard output statement sprintf(......)----------->
is formatted output statement.
Q41. 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.
Q42. 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.
Q43. 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.
Q44. What is multiple inheritance?
A
class can inherit properties from more than one class which is known as
multiple inheritance.
Q45. what is difference between function
overloading and operator Overloading?
Function
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.
Operator
Overloading
A
operator is overloaded when same operator name is given to different function.
for example '+' operator usually used for adding two integers but we can also
use '+' as symbol in string for example "Hello + world".
Q46.
What is null pointer?
NULL
pointer is a pointer which is pointing to nothing. Examples :
int *ptr=(char *)0;
float *ptr=(float *)0;
Q47.
How are pointer variables initialized?
Pointer
variable are initialized in two ways :
1. Static memory allocation
2. Dynamic memory allocation
Q48.
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.
Q49.
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.
Q50.
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.
Q51.
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.
Q52.
Where is the auto variables stored?
Auto
variables can be stored anywhere, so long as recursion works. Practically,
they're stored on the stack. It is not necessary that always a stack exist. You
could theoretically allocate function invocation records from the heap.
Q53.
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.
Q54.
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.
Q55.
What is problem with Runtime type identification?
The run
time type identification comes at a cost of performance penalty. Compiler
maintains the class.
Q56.
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.
57.
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.
Q58.
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.
Q59.
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.
Q60.
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.
Q61. 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.
Q62. 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.
Q63. 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.
Q64. 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).
Q65. How pointer variables
are initialized?
Pointer variables are
initialized by one of the following ways.
1. Static memory allocation.
2. Dynamic memory allocation.
Q66. What are the advantages
of auto variables?
The Advantages of auto variables
are as follows:
1. The same auto variable name can be used in different blocks.
2. There is no side effect by changing the values in the blocks.
3. The memory is economically used.
4. Auto variables have inherent protection because of local scope.
Q67. 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.
Q68. 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.
Q69. 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.
Q70. 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.
Q71. 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.
Q72. What is an argument?
An argument is an entity used
to pass data from the calling to a called function.
Q73. 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.
Q74. Can a Structure contain
a Pointer to itself?
Yes such structures are called
self-referential structures.
Q75. 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.
Q76. What is pre increment 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.
Q77. 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.
Q78. What is the difference
between the functions memmove() and memcpy()?
The arguments of memmove() can
overlap in memory. The arguments of memcpy() cannot.
Q79. 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 receives the output from the program and is known as output
stream.
Q80. 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.
Q81. 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.
Q82. What are the advantages
of using array of pointers to string instead of an array of strings?
Following are some advantages:
1. Efficient use of memory.
2.Easier to exchange the strings by moving their pointers while sorting.
Q83. What are the pointer
declarations used in C?
1. Array of pointers, e.g , int
*a[10]; Array of pointers to integer
2. 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.
3. Pointer to a pointer ,e.g, int **x; Pointer to apointer to int.
4. pointer to a data type ,e.g, char *p; pointer to char
Q84. What is the invalid
pointer arithmetic?
1. Adding ,multiplying and
dividing two pointers.
2. Shifting or masking pointer.
3. Addition of float or double to pointer.
4. Assignment of a pointer of one type to a pointer of another type.
Comments
Post a Comment