c,c++ interview questions

Upload: joshivaibhav

Post on 03-Apr-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 C,C++ Interview Questions

    1/31

    http://worldatyou.blogspot.com/

    1. What does static variable mean?

    2. What is a pointer?

    3. What is a structure?4. What are the differences between structures and arrays?

    5. In header files whether functions are declared or defined?

    6. What are the differences between malloc() and calloc()?7. What are macros? What are the advantages and disadvantages?

    8. Difference between pass by reference and pass by value?

    9. What is static identifier?10. Where are the auto variables stored?

    11. Where does global, static, local, register variables, free memory and C Program

    instructions get stored?12. Difference between arrays and linked list?

    13. What are enumerations?

    14. Describe about storage allocation and scope of global, extern, static, local and

    register variables?15. What are register variables? What are the advantage of using register variables?

    16. What is the use of typedef?

    17. Can we specify variable field width in a scanf() format string? If possible how?

    18. Out of fgets() and gets() which function is safe to use and why?19. Difference between strdup and strcpy?

    20. What is recursion?21. Differentiate between a for loop and a while loop? What are it uses?

    22. What are the different storage classes in C?

    23. Write down the equivalent pointer expression for referring the same element a[i]

    [j][k][l]?24. What is difference between Structure and Unions?

    25. What the advantages of using Unions?

    26. What are the advantages of using pointers in a program?27. What is the difference between Strings and Arrays?

    28. In a header file whether functions are declared or defined?29. What is a far pointer? where we use it?30. How will you declare an array of three function pointers where each function

    receives two ints and returns a float?

    31. What is a NULL Pointer? Whether it is same as an uninitialized pointer?32. What is a NULL Macro? What is the difference between a NULL Pointer and a

    NULL Macro?

    33. What does the error Null Pointer Assignment mean and what causes this error?

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    2/31

    http://worldatyou.blogspot.com/

    34. What is near, far and huge pointers? How many bytes are occupied by them?

    35. How would you obtain segment and offset addresses from a far address of a

    memory location?36. Are the expressions arr and *arr same for an array of integers?

    37. Does mentioning the array name gives the base address in all the contexts?

    38. Explain one method to process an entire string as one unit?39. What is the similarity between a Structure, Union and enumeration?

    40. Can a Structure contain a Pointer to itself?

    41. How can we check whether the contents of two structure variables are same ornot?

    42. How are Structure passing and returning implemented by the complier?

    43. How can we read/write Structures from/to data files?

    44. What is the difference between an enumeration and a set of pre-processor #defines?

    45. What do the c and v in argc and argv stand for?

    46. Are the variables argc and argv are local to main?

    47. What is the maximum combined length of command line arguments including thespace between adjacent arguments?

    48. If we want that any wildcard characters in the command line arguments should beappropriately expanded, are we required to make any special provision? If yes,

    which?

    49. Does there exist any way to make the command line arguments available to otherfunctions without passing them as arguments to the function?

    50. What are bit fields? What is the use of bit fields in a Structure declaration?

    51. To which numbering system can the binary number 1101100100111100 be easily

    converted to?52. Which bit wise operator is suitable for checking whether a particular bit is on or

    off?

    53. Which bit wise operator is suitable for turning off a particular bit in a number?54. Which bit wise operator is suitable for putting on a particular bit in a number?

    55. Which bit wise operator is suitable for checking whether a particular bit is on or

    off?56. Which one is equivalent to multiplying by 2?

    o Left shifting a number by 1

    o Left shifting an unsigned int or char by 1?

    57. Write a program to compare two strings without using the strcmp() function.

    58. Write a program to concatenate two strings.

    59. Write a program to interchange 2 variables without using the third one.

    60. Write programs for String Reversal. The same for Palindrome check.61. Write a program to find the Factorial of a number.

    62. Write a program to generate the Fibonacci Series?

    63. Write a program which employs Recursion?64. Write a program which uses command line arguments.

    65. Write a program which uses functions like strcmp(), strcpy(), etc.

    66. What are the advantages of using typedef in a program?

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    3/31

    http://worldatyou.blogspot.com/

    67. How would you dynamically allocate a one-dimensional and two-dimensional

    array of integers?

    68. How can you increase the size of a dynamically allocated array?69. How can you increase the size of a statically allocated array?

    70. When reallocating memory if any other pointers point into the same piece of

    memory do you have to readjust these other pointers or do they get readjustedautomatically?

    71. Which function should be used to free the memory allocated by calloc()?

    72. How much maximum can you allocate in a single call to malloc()?73. Can you dynamically allocate arrays in expanded memory?

    74. What is object file? How can you access object file?

    75. Which header file should you include if you are to develop a function which can

    accept variable number of arguments?76. Can you write a function similar to printf()?

    77. How can a called function determine the number of arguments that have been

    passed to it?

    78. Can there be at least some solution to determine the number of arguments passedto a variable argument list function?

    79. How do you declare the following:o An array of three pointers to chars

    o An array of three char pointers

    o A pointer to array of three chars

    o A pointer to function which receives an int pointer and returns a float

    pointer

    o A pointer to a function which receives nothing and returns nothing

    80. What do the functions atoi(), itoa() and gcvt() do?

    81. Does there exist any other function which can be used to convert an integer or a

    float to a string?82. How would you use qsort() function to sort an array of structures?

    83. How would you use qsort() function to sort the name stored in an array of pointers

    to string?84. How would you use bsearch() function to search a name stored in array of

    pointers to string?

    85. How would you use the functions sin(), pow(), sqrt()?

    86. How would you use the functions memcpy(), memset(), memmove()?87. How would you use the functions fseek(), freed(), fwrite() and ftell()?

    88. How would you obtain the current time and difference between two times?

    89. How would you use the functions randomize() and random()?

    90. How would you implement a substr() function that extracts a sub string from agiven string?

    91. What is the difference between the functions rand(), random(), srand() andrandomize()?

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

    93. How do you print a string on the printer?

    94. Can you use the function fprintf() to display the output on the screen?

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    4/31

    http://worldatyou.blogspot.com/

    95. Gautam Pagedar adds this question: What is a linklist and why do we use it

    when we have arrays? - I feel the correct answer should be linklist is used in cases

    where you dont know the memory required to store a data structure and need toallocate is dynamically on demand.

    96. How do you detect a loop in linked list?

    97. Sunil asks: What is the difference between main() in C and main() in C++?98. ajz at his interviews asks what will be printed out when the following code is

    executed:

    1. What is the difference between an ARRAY and a LIST?

    Array is collection of homogeneous elements.

    List is collection of heterogeneous elements.

    For Array memory allocated is static and continuous.

    For List memory allocated is dynamic and Random.

    Array: User need not have to keep in track of next memory allocation.

    List: User has to keep in Track of next location where memory is allocated.

    2. bhaskar Krishna Said:

    April 10th, 2006 6:16 am

    What is faster : access the element in an ARRAY or in a LIST?

    Its array the reason is it continuous.

    3. bhaskar Krishna Said:April 10th, 2006 6:23 am

    Define a constructor - what it is and how it might be called (2 methods).

    constructor is a member function of the class, with the name of the function beingthe same as the class name. It also specifies how the object should be initialized.

    Ways of calling constructor:

    1) Implicitly: automatically by complier when an object is created.

    2) Calling the constructors explicitly is possible, but it makes the code

    unverifiable.

    4. vaibhav chauhan Said:May 5th, 2006 1:42 am

    http://worldatyou.blogspot.com/http://www.techinterviews.com/#comment-23654http://www.techinterviews.com/#comment-23655http://www.techinterviews.com/#comment-25022http://www.techinterviews.com/#comment-25022http://www.techinterviews.com/#comment-23654http://www.techinterviews.com/#comment-23655http://www.techinterviews.com/#comment-25022http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    5/31

    http://worldatyou.blogspot.com/

    You have two pairs: new() and delete() and another pair : alloc() and free().

    Explain differences between eg. new() and malloc()

    1.) new and delete are preprocessors while malloc() and free() are functions.[we dont use brackets will calling new or delete].

    2.) no need of allocate the memory while using new but in malloc() we have

    to use sizeof().

    3.) new will initlize the new memory to 0 but malloc() gives random value in

    the new alloted memory location [better to use calloc()].

    vaibhav chauhan

    5. A question Said:

    June 2nd, 2006 7:53 pm

    I have a problem !.T dont know How many bytes does ++ advance the pointer

    LPWORD lpWord?. Can you help me please ! Thanks .

    6. Bumba Said:

    July 6th, 2006 1:20 am

    Explain term POLIMORPHISM and give an example using eg. SHAPE object: If

    I have a base class SHAPE, how would I define DRAW methods for two objectsCIRCLE and SQUARE

    POLYMORPHISM : A phenomenon which enables an object to react differentlyto the same function call.

    in C++ it is attained by using a keyword virtualexample

    public class SHAPE

    {public virtual void SHAPE::DRAW()=0;

    }

    Note here the function DRAW() is pure virtual which means the sub classes must

    implement the DRAW() method and SHAPE cannot be instatiatedpublic class CIRCLE::public SHAPE

    {public void CIRCLE::DRAW(){

    // TODO drawing circle

    }}

    public class SQUARE::public SHAPE

    {

    http://worldatyou.blogspot.com/http://www.techinterviews.com/#comment-27670http://www.techinterviews.com/#comment-29014http://www.techinterviews.com/#comment-27670http://www.techinterviews.com/#comment-29014http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    6/31

    http://worldatyou.blogspot.com/

    public void SQUARE::DRAW()

    {

    // TODO drawing square}

    }

    now from the user class the calls would be like

    globallySHAPE *newShape;

    when user action is to draw

    public void MENU::OnClickDrawCircle(){newShape = new CIRCLE();

    }

    public void MENU::OnClickDrawCircle(){

    newShape = new SQUARE();}

    the when user actually draws

    public void CANVAS::OnMouseOperations(){

    newShape->DRAW();}

    What is the word you will use when defining a function in base class to allow this

    function to be a polimorphic function?

    virtual

    7. Michael Mountrakis Said:July 28th, 2006 6:26 pm

    Q1.What is the difference between an ARRAY and a LIST?

    A1. Array uses direct access of stored members, list uses sequencial access formembers.

    //With Array you have direct access to memory position 5

    Object x = a[5]; // x takes directly a reference to 5th element of array

    //With the list you have to cross all previous nodes in order to get the 5th node:list mylist;list::iterator it;

    for( it = list.begin() ; it != list.end() ; it++ )

    {

    if( i==5){

    http://worldatyou.blogspot.com/http://www.illumine.gr/http://www.techinterviews.com/#comment-30055http://www.illumine.gr/http://www.techinterviews.com/#comment-30055http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    7/31

    http://worldatyou.blogspot.com/

    x = *it;

    break;

    }i++;

    }

    Q2. What is faster : access the element in an ARRAY or in a LIST?

    A2. See previous example. With the list implementation of our data structure weneed n-1 iteration steps before we reach n-nth item.

    With the array implementation we need a single ste to do so.

    Q3. Define a constructor - what it is and how it might be called (2 methods).A3.

    class Point2D{

    int x; int y;

    public Point2D() : x(0) , y(0) {} //default (no argument) constructor};

    main(){

    Point2D MyPoint; // Implicit Constructor call. In order to allocate memory on

    stack, the default constructor is implicitly called.

    Point2D * pPoint = new Point2D(); // Explicit Constructor call. In order toallocate memory on HEAP we call the default constructor.

    Q4. Describe PRIVATE, PROTECTED and PUBLIC the differences and giveexamples.

    A4.

    class Point2D{int x; int y;

    public int color;

    protected bool pinned;

    public Point2D() : x(0) , y(0) {} //default (no argument) constructor};

    Point2D MyPoint;

    You cannot directly access private data members when they are declared

    (implicitly) private:

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    8/31

    http://worldatyou.blogspot.com/

    MyPoint.x = 5; // Compiler will issue a compile ERROR

    //Nor yoy can see them:

    int x_dim = MyPoint.x; // Compiler will issue a compile ERROR

    On the other hand, you can assign and read the public data members:

    MyPoint.color = 255; // no problem

    int col = MyPoint.color; // no problem

    With protected data members you can read them but not write them:

    MyPoint.pinned = true; // Compiler will issue a compile ERROR

    bool isPinned = MyPoint.pinned; // no problem

    Q5.What is a COPY CONSTRUCTOR and when is it called (this is a frequent

    question !)?

    A5 A copy constructor is a method that accepts an object of the same class andcopies its data members to the object on the left part of assignement:

    class Point2D{

    int x; int y;

    public int color;

    protected bool pinned;public Point2D() : x(0) , y(0) {} //default (no argument) constructor

    public Point2D( const Point2D & ) ;

    };

    Point2D::Point2D( const Point2D & p )

    {

    this->x = p.x;

    this->y = p.y;this->color = p.color;

    this->pinned = p.pinned;

    }

    main(){

    Point2D MyPoint;

    MyPoint.color = 345;

    Point2D AnotherPoint = Point2D( MyPoint ); // now AnotherPoint has color =

    345

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    9/31

    http://worldatyou.blogspot.com/

    Q6 Explain term POLIMORPHISM and give an example using eg. SHAPE

    object: If I have a base class SHAPE, how would I define DRAW methods for

    two objects CIRCLE and SQUARE.A6

    class SHAPE{

    public virtual Draw() = 0; //abstract class with a pure virtual method};

    class CIRCLE{

    public int r;

    public virtual Draw() { this->drawCircle(0,0,r); }};

    class SQURE

    public int a;

    public virtual Draw() { this->drawRectangular(0,0,a,a); }

    };

    Each object is driven down from SHAPE implementing Draw() function in its

    own way.

    Q7 What is the word you will use when defining a function in base class to allowthis function to be a polimorphic function?

    A7

    virtual

    Q8 What are 2 ways of exporting a function from a DLL?

    A71.Taking a reference to the function from the DLL instance.

    2. Using the DLL s Type Library

    Q9 You have two pairs: new() and delete() and another pair : alloc() and free().Explain differences between eg. new() and malloc()

    new() allocates continous space for the object instace

    malloc() allocates distributed space.new() is castless, meaning that allocates memory for this specific type,

    malloc(), calloc() allocate space for void * that is cated to the specific class type

    pointer.

    Mike MountrakisIllumine Consulting

    8. MP Said:

    August 18th, 2006 10:31 am

    http://worldatyou.blogspot.com/http://www.illumine.gr/http://www.techinterviews.com/#comment-30770http://www.illumine.gr/http://www.techinterviews.com/#comment-30770http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    10/31

  • 7/28/2019 C,C++ Interview Questions

    11/31

    http://worldatyou.blogspot.com/

    public: The data of the class can be inherited into another class.

    private: The data of the class type private cannot be inherited into another class.

    protected : These data of the class can be inherited but they are same as private .

    Tell how to check whether a linked list is circular.

    A: Create two pointers, each set to the start of the list. Update each as follows:

    while (pointer1) {

    pointer1 = pointer1->next;

    pointer2 = pointer2->next; if (pointer2) pointer2=pointer2->next;

    if (pointer1 == pointer2) {

    print ("circularn");

    }

    }

    Q2: OK, why does this work?

    If a list is circular, at some point pointer2 will wrap around and be either at the item justbefore pointer1, or the item before that. Either way, its either 1 or 2 jumps until they

    meet.

    How can you quickly find the number of elements stored in a a) static array b)

    dynamic array ?

    Why is it difficult to store linked list in an array?

    How can you find the nodes with repetetive data in a linked list?

    Write a prog to accept a given string in any order and flash error if any of the

    character is different. For example : If abc is the input then abc, bca, cba, cab bac are

    acceptable but aac or bcd are unacceptable.

    This is a C question that I had for an intern position at Microsoft: Write out a

    function that prints out all the permutations of a string. For example, abc would give you

    abc, acb, bac, bca, cab, cba. You can assume that all the characters will be unique. After I

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    12/31

    http://worldatyou.blogspot.com/

    wrote out my function, he asked me to figure out from the code how many times the

    printf statement is run, and also questions on optimizing my algorithm.

    Whats the output of the following program? Why?

    #include

    main()

    {

    typedef union

    {

    int a;

    char b[10];

    float c;

    }

    Union;

    Union x,y = {100};

    x.a = 50;

    strcpy(x.b,"hello");

    x.c = 21.50;

    printf("Union x : %d %s %f n",x.a,x.b,x.c );

    printf("Union y :%d %s%f n",y.a,y.b,y.c);

    }

    Given inputs X, Y, Z and operations | and & (meaning bitwise OR and AND,

    respectively)

    What is output equal to in

    output = (X & Y) | (X & Z) | (Y & Z)

    ***********************-----------------------------------------------------------------------

    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. For example, a client component asking for net revenue from a

    business object need not know the data's origin.

    What is inheritance?

    Inheritance allows one class to reuse the state and behavior of another class. The derivedclass inherits the properties and method implementations of the base class and extends it

    by overriding methods and adding additional properties and methods.

    What is Polymorphism??

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    13/31

    http://worldatyou.blogspot.com/

    Polymorphism allows a client to treat different objects in the same way even if they were

    created from different classes and exhibit different behaviors.

    You can use implementation inheritance to achieve polymorphism in languages such asC++ and Java.

    Base class object's pointer can invoke methods in derived class objects.

    You can also achieve polymorphism in C++ by function overloading and operator

    overloading.

    What is constructor or ctor?

    Constructor creates an object and initializes it. It also creates vtable for virtual functions.It is different from other methods in a class.

    What is destructor?

    Destructor usually deletes any extra resources allocated by the object.

    What is default constructor?

    Constructor with no arguments or all the arguments has default values.

    What is copy constructor?

    Constructor which initializes the it's object member variables ( by shallow copying) with

    another object of the same class. If you don't implement one in your class then compilerimplements one for you.

    for example:Boo Obj1(10); // calling Boo constructor

    Boo Obj2(Obj1); // calling boo copy constructor

    Boo Obj2 = Obj1;// calling boo copy constructor

    When are copy constructors called?

    Copy constructors are called in following cases:a) when a function returns an object of that class by value

    b) when the object of that class is passed by value as an argument to a function

    c) when you construct an object based on another object of the same class

    d) When compiler generates a temporary object

    What is assignment operator?

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    14/31

  • 7/28/2019 C,C++ Interview Questions

    15/31

    http://worldatyou.blogspot.com/

    double i = BooObject; // assigning object to variable i of type double. now conversion

    operator gets called to assign the value.

    What is diff between malloc()/free() and new/delete?

    malloc allocates memory for object in heap but doesn't invoke object's constructor toinitiallize the object.

    new allocates memory and also invokes constructor to initialize the object.

    malloc() and free() do not support object semantics

    Does not construct and destruct objects

    string * ptr = (string *)(malloc (sizeof(string)))Are not safe

    Does not calculate the size of the objects that it construct

    Returns a pointer to void

    int *p = (int *) (malloc(sizeof(int)));int *p = new int;

    Are not extensible

    new and delete can be overloaded in a class

    "delete" first calls the object's termination routine (i.e. its destructor) and then releases the

    space the object occupied on the heap memory. If an array of objects was created using

    new, then delete must be told that it is dealing with an array by preceding the name with

    an empty []:-

    Int_t *my_ints = new Int_t[10];

    ...

    delete []my_ints;

    what is the diff between "new" and "operator new" ?

    "operator new" works like malloc.

    What is difference between template and macro??

    There is no way for the compiler to verify that the macro parameters are of compatible

    types. The macro is expanded without any special type checking.

    If macro parameter has a postincremented variable ( like c++ ), the increment is

    performed two times.

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    16/31

    http://worldatyou.blogspot.com/

    Because macros are expanded by the preprocessor, compiler error messages will refer to

    the expanded macro, rather than the macro definition itself. Also, the macro will show up

    in expanded form during debugging.

    for example:

    Macro:

    #define min(i, j) (i < j ? i : j)

    template:

    templateT min (T i, T j)

    {

    return i < j ? i : j;

    }

    What are C++ storage classes?

    autoregister

    static

    extern

    auto: the default. Variables are automatically created and initialized when they are

    defined and are destroyed at the end of the block containing their definition. They are notvisible outside that block

    register: a type of auto variable. a suggestion to the compiler to use a CPU register for

    performance

    static: a variable that is known only in the function that contains its definition but is

    never destroyed and retains its value between calls to that function. It exists from the time

    the program begins execution

    extern: a static variable whose definition and placement is determined when all object

    and library modules are combined (linked) to form the executable code file. It can bevisible outside the file where it is defined.

    What are storage qualifiers in C++ ?

    They are..

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    17/31

    http://worldatyou.blogspot.com/

    const

    volatile

    mutable

    Const keyword indicates that memory once initialized, should not be altered by a

    program.

    volatile keyword indicates that the value in the memory location can be altered even

    though nothing in the programcode modifies the contents. for example if you have a pointer to hardware location that

    contains the time, where hardware changes the value of this pointer variable and not the

    program. The intent of this keyword to improve the optimization ability of thecompiler.

    mutable keyword indicates that particular member of a structure or class can be altered

    even if a particular structure variable, class, or class member function is constant.

    struct data

    {char name[80];

    mutable double salary;

    }

    const data MyStruct = { "Satish Shetty", 1000 }; //initlized by complier

    strcpy ( MyStruct.name, "Shilpa Shetty"); // compiler error

    MyStruct.salaray = 2000 ; // complier is happy allowed

    What is reference ??

    reference is a name that acts as an alias, or alternative name, for a previously defined

    variable or an object.

    prepending variable with "&" symbol makes it as reference.

    for example:

    int a;

    int &b = a;

    What is passing by reference?

    Method of passing arguments to a function which takes parameter of type reference.

    for example:

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    18/31

    http://worldatyou.blogspot.com/

    void swap( int & x, int & y )

    {

    int temp = x;x = y;

    y = temp;

    }

    int a=2, b=3;

    swap( a, b );

    Basically, inside the function there won't be any copy of the arguments "x" and "y"

    instead they refer to original variables a and b. so no extra memory needed to pass

    arguments and it is more efficient.

    When do use "const" reference arguments in function?

    a) Using const protects you against programming errors that inadvertently alter data.

    b) Using const allows function to process both const and non-const actual arguments,while a function without const in the prototype can only accept non constant arguments.

    c) Using a const reference allows the function to generate and use a temporary variable

    appropriately.

    When are temporary variables created by C++ compiler?

    Provided that function parameter is a "const reference", compiler generates temporaryvariable in following 2 ways.

    a) The actual argument is the correct type, but it isn't Lvalue

    double Cube(const double & num){

    num = num * num * num;

    return num;

    }

    double temp = 2.0;double value = cube(3.0 + temp); // argument is a expression and not a Lvalue;

    b) The actual argument is of the wrong type, but of a type that can be converted to the

    correct type

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    19/31

    http://worldatyou.blogspot.com/

    long temp = 3L;

    double value = cuberoot ( temp); // long to double conversion

    What is virtual function?

    When derived class overrides the base class method by redefining the same function, then

    if client wants to access redefined the method from derived class through a pointer from

    base class object, then you must define this function in base class as virtual function.

    class parent{

    void Show()

    {cout

  • 7/28/2019 C,C++ Interview Questions

    20/31

  • 7/28/2019 C,C++ Interview Questions

    21/31

  • 7/28/2019 C,C++ Interview Questions

    22/31

    http://worldatyou.blogspot.com/

    What is inline function??

    The __inline keyword tells the compiler to substitute the code within the function

    definition for every instance of a function call. However, substitution occurs only at thecompiler's discretion. For example, the compiler does not inline a function if its address

    is taken or if it is too large to inline.

    What is overloading??

    With the C++ language, you can overload functions and operators. Overloading is thepractice of supplying more than one definition for a given function name in the same

    scope.

    - Any two functions in a set of overloaded functions must have different argument lists.

    - Overloading functions with argument lists of the same types, based on return type alone,

    is an error.

    What is Overriding?

    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), andsame parameter list.

    The definition of the method overriding is:

    Must have same method name. Must have same data type.

    Must have same argument list.

    Overriding a method means that replacing a method functionality in child class. To implyoverriding functionality we need parent and child classes. In the child class you definethe same method signature as one defined in the parent class.

    What is "this" 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.

    When a nonstatic member function is called for an object, the address of the object is

    passed as a hidden argument to the function. For example, the following function call

    myDate.setMonth( 3 );

    can be interpreted this way:

    setMonth( &myDate, 3 );

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    23/31

  • 7/28/2019 C,C++ Interview Questions

    24/31

    http://worldatyou.blogspot.com/

    The postfix version of operator++() has a dummy parameter of type int. The prefix

    version does not have dummy parameter.

    What is the difference between const char *myPointer and char *const myPointer?

    Const char *myPointer is a non constant pointer to constant data; while char *constmyPointer is a constant pointer to non constant data.

    How can I handle a constructor that fails?

    throw an exception. Constructors don't have a return type, so it's not possible to use return

    codes. The best way to signal constructor failure is therefore to throw an exception.

    How can I handle a destructor that fails?

    Write a message to a log-file. But do not throw an exception.

    The C++ rule is that you must never throw an exception from a destructor that is beingcalled during the "stack unwinding" process of another exception. For example, if

    someone says throw Foo(), the stack will be unwound so all the stack frames between thethrow Foo() and the } catch (Foo e) { will get popped. This is called stack unwinding.

    During stack unwinding, all the local objects in all those stack frames are destructed. If

    one of those destructors throws an exception (say it throws a Bar object), the C++runtime system is in a no-win situation: should it ignore the Bar and end up in the } catch

    (Foo e) { where it was originally headed? Should it ignore the Foo and look for a } catch

    (Bar e) { handler? There is no good answer -- either choice loses information.So the C++ language guarantees that it will call terminate() at this point, and terminate()

    kills the process. Bang you're dead.

    What is Virtual Destructor?

    Using virtual destructors, you can destroy objects without knowing their type - the correct

    destructor for the object is invoked using the virtual function mechanism. Note thatdestructors can also be declared as pure virtual functions for abstract classes.

    if someone will derive from your class, and if someone will say "new Derived", where

    "Derived" is derived from your class, and if someone will say delete p, where the actual

    object's type is "Derived" but the pointer p's type is your class.

    Can you think of a situation where your program would crash without reaching thebreakpoint which you set at the beginning of main()?

    C++ allows for dynamic initialization of global variables before main() is invoked. It ispossible that initialization of global will invoke some function. If this function crashes the

    crash will occur before main() is entered.

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    25/31

    http://worldatyou.blogspot.com/

    Name two cases where you MUST use initialization list as opposed to assignment in

    constructors.

    Both non-static const data members and reference data members cannot be assignedvalues; instead, you should use initialization list to initialize them.

    Can you overload a function based only on whether a parameter is a value or a

    reference?

    No. Passing by value and by reference looks identical to the caller.

    What are the differences between a C++ struct and C++ class?

    The default member and base class access specifiers are different.

    The C++ struct has all the features of the class. The only differences are that a struct

    defaults to public member access and public base class inheritance, and a class defaults tothe private access specifier and private base class inheritance.

    What does extern "C" int func(int *, Foo) accomplish?

    It will turn off "name mangling" for func so that one can link to code compiled by a Ccompiler.

    How do you access the static member of a class?

    ::

    What is multiple inheritance(virtual inheritance)? What are its advantages and

    disadvantages?

    Multiple Inheritance is the process whereby a child can be derived from more than one

    parent class. The advantage of multiple inheritance is that it allows a class to inherit the

    functionality of more than one base class thus allowing for modeling of complex

    relationships. The disadvantage of multiple inheritance is that it can lead to a lot ofconfusion(ambiguity) when two base classes implement a method with the same name.

    What are the access privileges in C++? What is the default access level?

    The access privileges in C++ are private, public and protected. The default access level

    assigned to members of a class is private. Private members of a class are accessible onlywithin the class and by friends of the class. Protected members are accessible by the class

    itself and it's sub-classes. Public members of a class can be accessed by anyone.

    What is a nested class? Why can it be useful?

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    26/31

    http://worldatyou.blogspot.com/

    A nested class is a class enclosed within the scope of another class. For example:

    // Example 1: Nested class

    //class OuterClass

    {class NestedClass

    {// ...

    };

    // ...};

    Nested classes are useful for organizing code and controlling access and dependencies.

    Nested classes obey access rules just like other parts of a class do; so, in Example 1, ifNestedClass is public then any code can name it as OuterClass::NestedClass. Often

    nested classes contain private implementation details, and are therefore made private; in

    Example 1, if NestedClass is private, then only OuterClass's members and friends can useNestedClass.

    When you instantiate as outer class, it won't instantiate inside class.

    What is a local class? Why can it be useful?

    local class is a class defined within the scope of a function -- any function, whether a

    member function or a free function. For example:

    // Example 2: Local class

    //int f()

    {class LocalClass

    {

    // ...

    };// ...

    };

    Like nested classes, local classes can be a useful tool for managing code dependencies.

    Can a copy constructor accept an object of the same class as parameter, instead of

    reference of the object?

    No. It is specified in the definition of the copy constructor itself. It should generate an

    error if a programmer specifies a copy constructor with a first argument that is an object

    and not a reference.

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    27/31

  • 7/28/2019 C,C++ Interview Questions

    28/31

  • 7/28/2019 C,C++ Interview Questions

    29/31

    http://worldatyou.blogspot.com/

    main()

    {

    char *p1;char *p2;

    p1=(char *)malloc(25);p2=(char *)malloc(25);

    strcpy(p1,Cisco);strcpy(p2,systems);

    strcat(p1,p2);

    printf(%s,p1);

    }

    Answer: Ciscosystems

    8. The following variable is available in file1.c, who can access it?:9. static int average;

    Answer: all the functions in the file1.c can access the variable.

    10. WHat will be the result of the following code?

    #define TRUE 0 // some code

    while(TRUE)

    {

    // some code

    }

    Answer: This will not go into the loop as TRUE is defined as 0.

    11. What will be printed as the result of the operation below:

    int x;

    int modifyvalue(){

    return(x+=10);

    }

    int changevalue(int x){

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    30/31

    http://worldatyou.blogspot.com/

    return(x+=1);

    }

    void main(){

    int x=10;x++;

    changevalue(x);x++;

    modifyvalue();

    printf("First output:%d\n",x);

    x++;

    changevalue(x);

    printf("Second output:%d\n",x);

    modifyvalue();

    printf("Third output:%d\n",x);

    }

    Answer: 12 , 13 , 13

    12. What will be printed as the result of the operation below:

    main(){

    int x=10, y=15;

    x = x++;y = ++y;printf(%d %d\n,x,y);

    }

    Answer: 11, 16

    13. What will be printed as the result of the operation below:

    main()

    { int a=0;

    if(a==0)printf(Cisco Systems\n);

    printf(Cisco Systems\n);

    }

    http://worldatyou.blogspot.com/http://worldatyou.blogspot.com/
  • 7/28/2019 C,C++ Interview Questions

    31/31