Complete placement guide(technical)


Published on

must read...

Published in: Career
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Complete placement guide(technical)

  1. 1. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN The Complete Placement Guide for IT Companies (Technical) © IT Engineering Portal : 1
  2. 2. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN ContentsTopics Page • Preface 03 • Technical Data Structure Interview Questions 04 C++ Interview Questions 14 Java Interview Questions 49 JDBC Interview Questions 124 Oracle Interview Questions 191 Networking Interview Questions 326 Operating Systems Interview Questions 344 C Aptitude Questions 350 © IT Engineering Portal : 2
  3. 3. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INPreface Placements are always a headache for most of the Engineeringstudents. Usually, a majority of the students are always in a state ofconfusion for deciding which book to refer, where to start from andwhich company to target. When a student gets to know about the arrivalof a company in the campus, he would then start preparing for the test.Namely, a student will start preparing for the technical interview,aptitude test, Group Discussion, HR Interview and all other necessarytests. Now the biggest problem is the availability of resources in studymaterial for preparing for these tests. We have thus identified the major areas where a student shouldprepare himself for an aptitude test or a technical interview so as to getplaced into an IT company. The technical fields are viz: C, C++, Java,Oracle, JDBC, Operating Systems and Networking. Similarly, amongst thenon-technical fields a student needs to mentally prepare himself for anaptitude test and a HR interview. All the basic study material required toprepare concerning the above related fields are deployed in this book The book makes available all available resources over the internet tothe students in a simple and compiled format. Regards Team : IT Engg Portal © IT Engineering Portal : 3
  4. 4. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN Data Structures Interview Questions & Answers © IT Engineering Portal : 4
  5. 5. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INData Structures Interview Questions and AnswersWhat is data structure?A data structure is a way of organizing data that considers not only the items stored, butalso their relationship to each other. Advance knowledge about the relationship betweendata items allows designing of efficient algorithms for the manipulation of data.List out the areas in which data structures are applied extensively?Compiler Design, Operating System, Database Management System, Statistical analysispackage, Numerical Analysis, Graphics, Artificial Intelligence, SimulationIf you are using C language to implement the heterogeneous linked list, whatpointer type will you use?The heterogeneous linked list contains different data types in its nodes and we need alink, pointer to connect them. It is not possible to use ordinary pointers for this. So we gofor void pointer. Void pointer is capable of storing pointer to any type as it is a genericpointer type.What is the data structures used to perform recursion?Stack. Because of its LIFO (Last In First Out) property it remembers its caller, so knowswhom to return when the function has to return. Recursion makes use of system stackfor storing the return addresses of the function calls. Every recursive function has itsequivalent iterative (non-recursive) function. Even when such equivalent iterativeprocedures are written, explicit stack is to be used.What are the methods available in storing sequential files ?Straight merging, Natural merging, Polyphase sort, Distribution of Initial runs.List out few of the Application of tree data-structure?The manipulation of Arithmetic expression, Symbol Table construction, Syntax analysis.In RDBMS, what is the efficient data structure used in the internal storagerepresentation?B+ tree. Because in B+ tree, all the data is stored only in leaf nodes, that makessearching easier. This corresponds to the records that shall be stored in leaf nodes.What is a spanning Tree?A spanning tree is a tree associated with a network. All the nodes of the graph appear onthe tree once. A minimum spanning tree is a spanning tree organized so that the totaledge weight between nodes is minimized.Does the minimum spanning tree of a graph give the shortest distance betweenany 2 specified nodes?Minimal spanning tree assures that the total weight of the tree is kept at its minimum.But it doesnt mean that the distance between any two nodes involved in the minimum-spanning tree is minimum. © IT Engineering Portal : 5
  6. 6. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhether Linked List is linear or Non-linear data structure?According to Access strategies Linked list is a linear one. According to Storage LinkedList is a Non-linear one.What is the quickest sorting method to use?The answer depends on what you mean by quickest. For most sorting problems, it justdoesnt matter how quick the sort is because it is done infrequently or other operationstake significantly more time anyway. Even in cases in which sorting speed is of theessence, there is no one answer. It depends on not only the size and nature of the data,but also the likely order. No algorithm is best in all cases. There are three sortingmethods in this authors toolbox that are all very fast and that are useful in differentsituations. Those methods are quick sort, merge sort, and radix sort.The Quick SortThe quick sort algorithm is of the divide and conquer type. That means it works byreducing a sorting problem into several easier sorting problems and solving each of them.A dividing value is chosen from the input data, and the data is partitioned into threesets: elements that belong before the dividing value, the value itself, and elements thatcome after the dividing value. The partitioning is performed by exchanging elements thatare in the first set but belong in the third with elements that are in the third set butbelong in the first Elements that are equal to the dividing element can be put in any ofthe three sets the algorithm will still work properly.The Merge SortThe merge sort is a divide and conquer sort as well. It works by considering the data tobe sorted as a sequence of already-sorted lists (in the worst case, each list is one elementlong). Adjacent sorted lists are merged into larger sorted lists until there is a single sortedlist containing all the elements. The merge sort is good at sorting lists and other datastructures that are not in arrays, and it can be used to sort things that dont fit intomemory. It also can be implemented as a stable sort.The Radix SortThe radix sort takes a list of integers and puts each element on a smaller list, dependingon the value of its least significant byte. Then the small lists are concatenated, and theprocess is repeated for each more significant byte until the list is sorted. The radix sort issimpler to implement on fixed-length data such as ints.How can I search for data in a linked list?Unfortunately, the only way to search a linked list is with a linear search, because theonly way a linked lists members can be accessed is sequentially. Sometimes it is quickerto take the data from a linked list and store it in a different data structure so thatsearches can be more efficient.What is the heap?The heap is where malloc(), calloc(), and realloc() get memory.Getting memory from the heap is much slower than getting it from the stack. On the © IT Engineering Portal : 6
  7. 7. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INother hand, the heap is much more flexible than the stack. Memory can be allocated atany time and deallocated in any order. Such memory isnt deallocated automatically; youhave to call free().Recursive data structures are almost always implemented with memory from the heap.Strings often come from there too, especially strings that could be very long at runtime. Ifyou can keep data in a local variable (and allocate it from the stack), your code will runfaster than if you put the data on the heap. Sometimes you can use a better algorithm ifyou use the heap faster, or more robust, or more flexible. Its a tradeoff.If memory is allocated from the heap, its available until the program ends. Thats great ifyou remember to deallocate it when youre done. If you forget, its a problem. A �memoryleak is some allocated memory thats no longer needed but isnt deallocated. If you have amemory leak inside a loop, you can use up all the memory on the heap and not be ableto get any more. (When that happens, the allocation functions return a null pointer.) Insome environments, if a program doesnt deallocate everything it allocated, memory staysunavailable even after the program ends.What is the easiest sorting method to use?The answer is the standard library function qsort(). Its the easiest sort by far for severalreasons:It is already written.It is already debugged.It has been optimized as much as possible (usually).Void qsort(void *buf, size_t num, size_t size, int (*comp)(const void *ele1, const void*ele2));What is the bucket size, when the overlapping and collision occur at same time?One. If there is only one entry possible in the bucket, when the collision occurs, there isno way to accommodate the colliding value. This results in the overlapping of values.In an AVL tree, at what condition the balancing is to be done?If the pivotal value (or the Height factor) is greater than 1 or less than 1.Minimum number of queues needed to implement the priority queue?Two. One queue is used for actual storing of data and another for storing priorities.How many different trees are possible with 10 nodes ?1014 - For example, consider a tree with 3 nodes(n=3), it will have the maximumcombination of 5 different (ie, 23 - 3 =? 5) trees.What is a node class?A node class is a class that, relies on the base class for services and implementation,provides a wider interface to users than its base class, relies primarily on virtualfunctions in its public interface depends on all its direct and indirect base class can beunderstood only in the context of the base class can be used as base for furtherderivationcan be used to create objects. A node class is a class that has added new services orfunctionality beyond the services inherited from its base class. © IT Engineering Portal : 7
  8. 8. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhen can you tell that a memory leak will occur?A memory leak occurs when a program loses the ability to free a block of dynamicallyallocated memory.What is placement new?When you want to call a constructor directly, you use the placement new. Sometimes youhave some raw memory that’s already been allocated, and you need to construct anobject in the memory you have. Operator new’s special version placement new allows youto do it.class Widget{public :Widget(int widgetsize);…Widget* Construct_widget_int_buffer(void *buffer,int widgetsize){return new(buffer) Widget(widgetsize);}};This function returns a pointer to a Widget object that’s constructed within the bufferpassed to the function. Such a function might be useful for applications using sharedmemory or memory-mapped I/O, because objects in such applications must be placed atspecific addresses or in memory allocated by special routines.List out the areas in which data structures are applied extensively ?Compiler Design, Operating System, Database Management System, Statistical analysispackage, Numerical Analysis, Graphics, Artificial Intelligence, SimulationIf you are using C language to implement the heterogeneous linked list, whatpointer type will you use?The heterogeneous linked list contains different data types in its nodes and we need alink, pointer to connect them. It is not possible to use ordinary pointers for this. So we gofor void pointer. Void pointer is capable of storing pointer to any type as it is a genericpointer type.What is the data structures used to perform recursion?Stack. Because of its LIFO (Last In First Out) property it remembers its caller so knowswhom to return when the function has to return. Recursion makes use of system stackfor storing the return addresses of the function calls. Every recursive function has itsequivalent iterative (non-recursive) function. Even when such equivalent iterativeprocedures are written, explicit stack is to be used.Whether Linked List is linear or Non-linear data structure?According to Access strategies Linked list is a linear one.According to Storage Linked List is a Non-linear one © IT Engineering Portal : 8
  9. 9. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INTell how to check whether a linked list is circular ?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”);}}What is the difference between ARRAY and STACK?STACK follows LIFO. Thus the item that is first entered would be the last removed.In array the items can be entered or removed in any order. Basically each member accessis done using index. No strict order is to be followed here to remove a particular element.What is the difference between NULL AND VOID pointer?NULL can be value for pointer type variables.VOID is a type identifier which has not size.NULL and void are not same. Example: void* ptr = NULL;What is precision?Precision refers the accuracy of the decimal portion of a value. Precision is the number ofdigits allowed after the decimal point.What is impact of signed numbers on the memory?Sign of the number is the first bit of the storage allocated for that number. So you getone bit less for storing the number. For example if you are storing an 8-bit number,without sign, the range is 0-255. If you decide to store sign you get 7 bits for the numberplus one bit for the sign. So the range is -128 to +127.How memory is reserved using a declaration statement ?Memory is reserved using data type in the variable declaration. A programming languageimplementation has predefined sizes for its data types.For example, in C# the declaration int i; will reserve 32 bits for variable i.A pointer declaration reserves memory for the address or the pointer variable, but not forthe data that it will point to. The memory for the data pointed by a pointer has to beallocated at runtime.The memory reserved by the compiler for simple variables and for storing pointer address © IT Engineering Portal : 9
  10. 10. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INis allocated on the stack, while the memory allocated for pointer referenced data atruntime is allocated on the heap.How many parts are there in a declaration statement?There are two main parts, variable identifier and data type and the third type is optionalwhich is type qualifier like signed/unsigned.Is Pointer a variable?Yes, a pointer is a variable and can be used as an element of a structure and as anattribute of a class in some programming languages such as C++, but not Java. However,the contents of a pointer is a memory address of another location of memory, which isusually the memory address of another variable, element of a structure, or attribute of aclass.What is Data Structure?A data structure is a group of data elements grouped together under one name. Thesedata elements, known as members, can have different types and different lengths. Someare used to store the data of same type and some are used to store different types ofdata.What is significance of ” * ” ?The symbol “*” tells the computer that you are declaring a pointer.Actually it depends on context.In a statement like int *ptr; the ‘*’ tells that you are declaring a pointer.In a statement like int i = *ptr; it tells that you want to assign value pointed to by ptr tovariable i.The symbol “*” is also called as Indirection Operator/ Dereferencing Operator.Why do we Use a Multidimensional Array?A multidimensional array can be useful to organize subgroups of data within an array. Inaddition to organizing data stored in elements of an array, a multidimensional array canstore memory addresses of data in a pointer array and an array of pointers.Multidimensional arrays are used to store information in a matrix form.e.g. a railway timetable, schedule cannot be stored as a single dimensional array.One can use a 3-D array for storing height, width and length of each room on each floorof a building.How do you assign an address to an element of a pointer array ?We can assign a memory address to an element of a pointer array by using the addressoperator, which is the ampersand (&), in an assignment statement such as ptemployee[0]= &projects[2];Run Time Memory Allocation is known as ?Allocating memory at runtime is called a dynamically allocating memory. In this, you © IT Engineering Portal : 10
  11. 11. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INdynamically allocate memory by using the new operator when declaring the array, forexample : int grades[] = new int[10];What method is used to place a value onto the top of a stack?push() method, Push is the direction that data is being added to the stack. push()member method places a value onto the top of a stack.What method removes the value from the top of a stack?The pop() member method removes the value from the top of a stack, which is thenreturned by the pop() member method to the statement that calls the pop() membermethod.What does isEmpty() member method determines?isEmpty() checks if the stack has at least one element. This method is called by Pop()before retrieving and returning the top element.What is a queue ?A Queue is a sequential organization of data. A queue is a first in first out type of datastructure. An element is inserted at the last position and an element is always taken outfrom the first position.What is the relationship between a queue and its underlying array?Data stored in a queue is actually stored in an array. Two indexes, front and end will beused to identify the start and end of the queue.When an element is removed front will be incremented by 1. In case it reaches past thelast index available it will be reset to 0. Then it will be checked with end. If it is greaterthan end queue is empty.When an element is added end will be incremented by 1. In case it reaches past the lastindex available it will be reset to 0. After incrementing it will be checked with front. Ifthey are equal queue is full.Which process places data at the back of the queue?Enqueue is the process that places data at the back of the queue.Why is the isEmpty() member method called?The isEmpty() member method is called within the dequeue process to determine if thereis an item in the queue to be removed i.e. isEmpty() is called to decide whether the queuehas at least one element. This method is called by the dequeue() method before returningthe front element.How is the front of the queue calculated ?The front of the queue is calculated by front = (front+1) % size.What does each entry in the Link List called?Each entry in a linked list is called a node. Think of a node as an entry that has three © IT Engineering Portal : 11
  12. 12. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INsub entries. One sub entry contains the data, which may be one attribute or manyattributes. Another points to the previous node, and the last points to the next node.When you enter a new item on a linked list, you allocate the new node and then set thepointers to previous and next nodes.What is Linked List ?Linked List is one of the fundamental data structures. It consists of a sequence of?nodes, each containing arbitrary data fields and one or two (”links”) pointing to the nextand/or previous nodes. A linked list is a self-referential datatype because it contains apointer or link to another data of the same type. Linked lists permit insertion andremoval of nodes at any point in the list in constant time, but do not allow randomaccess.What member function places a new node at the end of the linked list?The appendNode() member function places a new node at the end of the linked list. TheappendNode() requires an integer representing the current data of the node.How is any Data Structure application is classified among files?A linked list application can be organized into a header file, source file and mainapplication file. The first file is the header file that contains the definition of the NODEstructure and the LinkedList class definition. The second file is a source code filecontaining the implementation of member functions of the LinkedList class. The last fileis the application file that contains code that creates and uses the LinkedList class.Which file contains the definition of member functions?Definitions of member functions for the Linked List class are contained in theLinkedList.cpp file.What are the major data structures used in the following areas : RDBMS,Network data model & Hierarchical data model.1. RDBMS Array (i.e. Array of structures)2. Network data model Graph3. Hierarchical data model Trees.Difference between calloc and malloc ?malloc: allocate n bytescalloc: allocate m times n bytes initialized to 0 © IT Engineering Portal : 12
  13. 13. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN C++ Interview Questions & Answers © IT Engineering Portal : 13
  14. 14. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN C++ Interview Questions and AnswersWhat is C++?Released in 1985, C++ is an object-oriented programming language created by BjarneStroustrup. C++ maintains almost all aspects of the C language, while simplifyingmemory management and adding several features - including a new datatype known as aclass (you will learn more about these later) - to allow object-oriented programming. C++maintains the features of C which allowed for low-level memory access but also gives theprogrammer new tools to simplify memory management.C++ used for:C++ is a powerful general-purpose programming language. It can be used to create smallprograms or large applications. It can be used to make CGI scripts or console-only DOSprograms. C++ allows you to create programs to do almost anything you need to do. Thecreator of C++, Bjarne Stroustrup, has put together a partial list of applications writtenin C++.How do you find out if a linked-list has an end? (i.e. the list is not a cycle)You can find out by using 2 pointers. One of them goes 2 nodes each time. The secondone goes at 1 nodes each time. If there is a cycle, the one that goes 2 nodes each time willeventually meet the one that goes slower. If that is the case, then you will know thelinked-list is a cycle.What is the difference between realloc() and free()?The free subroutine frees a block of memory previously allocated by the mallocsubroutine. Undefined results occur if the Pointer parameter is not a valid pointer. If thePointer parameter is a null value, no action will occur. The realloc subroutine changesthe size of the block of memory pointed to by the Pointer parameter to the number ofbytes specified by the Size parameter and returns a new pointer to the block. The pointerspecified by the Pointer parameter must have been created with the malloc, calloc, orrealloc subroutines and not been deallocated with the free or realloc subroutines.Undefined results occur if the Pointer parameter is not a valid pointer.What is function overloading and operator overloading?Function overloading: C++ enables several functions of the same name to be defined, aslong as these functions have different sets of parameters (at least as far as their types areconcerned). This capability is called function overloading. When an overloaded functionis called, the C++ compiler selects the proper function by examining the number, typesand order of the arguments in the call. Function overloading is commonly used to createseveral functions of the same name that perform similar tasks but on different datatypes.Operator overloading allows existing C++ operators to be redefined so that they work on © IT Engineering Portal : 14
  15. 15. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INobjects of user-defined classes. Overloaded operators are syntactic sugar for equivalentfunction calls. They form a pleasant facade that doesnt add anything fundamental to thelanguage (but they can improve understandability and reduce maintenance costs).What is the difference between declaration and definition?The declaration tells the compiler that at some later point we plan to present thedefinition of this declaration.E.g.: void stars () //function declarationThe definition contains the actual implementation.E.g.: void stars () // declarator{for(int j=10; j > =0; j--) //function bodycout << *;cout << endl; }What are the advantages of inheritance?It permits code reusability. Reusability saves time in program development. It encouragesthe reuse of proven and debugged high-quality software, thus reducing problem after asystem becomes functional.How do you write a function that can reverse a linked-list?void reverselist(void){if(head==0)return;if(head->next==0)return;if(head->next==tail){head->next = 0;tail->next = head;}else{node* pre = head;node* cur = head->next;node* curnext = cur->next;head->next = 0;cur-> next = head;for(; curnext!=0; ){cur->next = pre; © IT Engineering Portal : 15
  16. 16. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INpre = cur;cur = curnext;curnext = curnext->next;}curnext->next = cur;}}What do you mean by inline function?The idea behind inline functions is to insert the code of a called function at the pointwhere the function is called. If done carefully, this can improve the applicationsperformance in exchange for increased compile time and possibly (but not always) anincrease in the size of the generated binary executables.Write a program that ask for user input from 5 to 9 then calculate the average#include "iostream.h"int main() {int MAX = 4;int total = 0;int average;int numb;for (int i=0; i<MAX; i++) {cout << "Please enter your input between 5 and 9: ";cin >> numb;while ( numb<5 || numb>9) {cout << "Invalid input, please re-enter: ";cin >> numb;}total = total + numb;}average = total/MAX;cout << "The average number is: " << average << "n";return 0;}Write a short code using C++ to print out all odd number from 1 to 100 using afor loopfor( unsigned int i = 1; i < = 100; i++ )if( i & 0x00000001 )cout << i << ",";What is public, protected, private?Public, protected and private are three access specifier in C++.Public data members and member functions are accessible outside the class.Protected data members and member functions are only available to derived classes. © IT Engineering Portal : 16
  17. 17. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INPrivate data members and member functions can’t be accessed outside the class.However there is an exception can be using friend classes.Write a function that swaps the values of two integers, using int* as the argument type.void swap(int* a, int*b) {int t;t = *a;*a = *b;*b = t;}Tell how to check whether a linked list is circular.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");}}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, it’s either 1 or 2 jumps until theymeet.What is virtual constructors/destructors?Answer1Virtual destructors:If an object (with a non-virtual destructor) is destroyed explicitly by applying the deleteoperator to a base-class pointer to the object, the base-class destructor function(matching the pointer type) is called on the object.There is a simple solution to this problem declare a virtual base-class destructor.This makes all derived-class destructors virtual even though they don’t have the samename as the base-class destructor. Now, if the object in the hierarchy is destroyedexplicitly by applying the delete operator to a base-class pointer to a derived-class object,the destructor for the appropriate class is called. Virtual constructor: Constructorscannot be virtual. Declaring a constructor as a virtual function is a syntax error.Answer2Virtual destructors: If an object (with a non-virtual destructor) is destroyed explicitly byapplying the delete operator to a base-class pointer to the object, the base-classdestructor function (matching the pointer type) is called on the object.There is a simple solution to this problem – declare a virtual base-class destructor. Thismakes all derived-class destructors virtual even though they don’t have the same nameas the base-class destructor. Now, if the object in the hierarchy is destroyed explicitly by © IT Engineering Portal : 17
  18. 18. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INapplying the delete operator to a base-class pointer to a derived-class object, thedestructor for the appropriate class is called.Virtual constructor: Constructors cannot be virtual. Declaring a constructor as avirtual function is a syntax error. Does c++ support multilevel and multipleinheritance?Yes.What are the advantages of inheritance?• It permits code reusability.• Reusability saves time in program development.• It encourages the reuse of proven and debugged high-quality software, thus reducingproblem after a system becomes functional.What is the difference between declaration and definition?The declaration tells the compiler that at some later point we plan to present thedefinition of this declaration.E.g.: void stars () //function declarationThe definition contains the actual implementation.E.g.: void stars () // declarator{for(int j=10; j>=0; j--) //function bodycout<<”*”;cout<<endl; }What is the difference between an ARRAY and a LIST?Answer1Array 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.Answer2Array uses direct access of stored members, list uses sequencial access for members.//With Array you have direct access to memory position 5Object 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++ ) © IT Engineering Portal : 18
  19. 19. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN{if( i==5){x = *it;break;}i++;}Does c++ support multilevel and multiple inheritance?Yes.What is a template?Templates allow to create generic functions that admit any data type as parameters andreturn value without having to overload the function with all the possible data types.Until certain point they fulfill the functionality of a macro. Its prototype is any of the twofollowing ones:template <class indetifier> function_declaration; template <typename indetifier>function_declaration;The only difference between both prototypes is the use of keyword class or typename, itsuse is indistinct since both expressions have exactly the same meaning and behaveexactly the same way.Define a constructor - What it is and how it might be called (2 methods).Answer1constructor is a member function of the class, with the name of the function being thesame 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.Answer2class 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, thedefault constructor is implicitly called. © IT Engineering Portal : 19
  20. 20. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INPoint2D * pPoint = new Point2D(); // Explicit Constructor call. In order to allocatememory on HEAP we call the default constructor.You have two pairs: new() and delete() and another pair : alloc() and free().Explain differences between eg. new() and malloc()Answer11.) “new and delete” are preprocessors while “malloc() and free()” are functions. [we dontuse 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 newalloted memory location [better to use calloc()]Answer2new() allocates continous space for the object instacemalloc() allocates distributed 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.What is the difference between class and structure?Structure: Initially (in C) a structure was used to bundle different type of data typestogether to perform a particular functionality. But C++ extended the structure to containfunctions also. The major difference is that all declarations inside a structure are bydefault public.Class: Class is a successor of Structure. By default all the members inside the class areprivate.What is RTTI?Runtime type identification (RTTI) lets you find the dynamic type of an object when youhave only a pointer or a reference to the base type. RTTI is the official way in standardC++ to discover the type of an object and to convert the type of a pointer or reference(that is, dynamic typing). The need came from practical experience with C++. RTTIreplaces many Interview Questions - Homegrown versions with a solid, consistentapproach.What is encapsulation?Packaging an object’s variables within its methods is called encapsulation.Explain term POLIMORPHISM and give an example using eg. SHAPE object: If Ihave a base class SHAPE, how would I define DRAW methods for two objectsCIRCLE and SQUAREAnswer1POLYMORPHISM : A phenomenon which enables an object to react differently to thesame function C++ it is attained by using a keyword virtual © IT Engineering Portal : 20
  21. 21. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INExamplepublic class SHAPE{public virtual void SHAPE::DRAW()=0;}Note here the function DRAW() is pure virtual which means the sub classes mustimplement the DRAW() method and SHAPE cannot be instatiatedpublic class CIRCLE::public SHAPE{public void CIRCLE::DRAW(){// TODO drawing circle}}public class SQUARE::public SHAPE{public void SQUARE::DRAW(){// TODO drawing square}}now from the user class the calls would be likegloballySHAPE *newShape;When user action is to drawpublic void MENU::OnClickDrawCircle(){newShape = new CIRCLE();}public void MENU::OnClickDrawCircle(){newShape = new SQUARE();}the when user actually drawspublic void CANVAS::OnMouseOperations(){newShape->DRAW();}Answer2class SHAPE{public virtual Draw() = 0; //abstract class with a pure virtual method © IT Engineering Portal : 21
  22. 22. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN};class CIRCLE{public int r;public virtual Draw() { this->drawCircle(0,0,r); }};class SQUREpublic 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.What is an object?Object is a software bundle of variables and related methods. Objects have state andbehavior.How can you tell what shell you are running on UNIX system?You can do the Echo $RANDOM. It will return a undefined variable if you are from the C-Shell, just a return prompt if you are from the Bourne shell, and a 5 digit randomnumbers if you are from the Korn shell. You could also do a ps -l and look for the shellwith the highest PID.What do you mean by inheritance?Inheritance is the process of creating new classes, called derived classes, from existingclasses or base classes. The derived class inherits all the capabilities of the base class,but can add embellishments and refinements of its own.Describe PRIVATE, PROTECTED and PUBLIC – the differences and give examples.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: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 © IT Engineering Portal : 22
  23. 23. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INOn the other hand, you can assign and read the public data members:MyPoint.color = 255; // no problemint col = MyPoint.color; // no problemWith protected data members you can read them but not write them: MyPoint.pinned =true; // Compiler will issue a compile ERRORbool isPinned = MyPoint.pinned; // no problemWhat is namespace?Namespaces allow us to group a set of global classes, objects and/or functions under aname. To say it somehow, they serve to split the global scope in sub-scopes known asnamespaces.The form to use namespaces is:namespace identifier { namespace-body }Where identifier is any valid identifier and namespace-body is the set of classes, objectsand functions that are included within the namespace. For example:namespace general { int a, b; } In this case, a and b are normal variables integratedwithin the general namespace. In order to access to these variables from outside thenamespace we have to use the scope operator ::. For example, to access the previousvariables we would have to put:general::a general::bThe functionality of namespaces is specially useful in case that there is a possibility thata global object or function can have the same name than another one, causing aredefinition error.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’sdata 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) constructorpublic Point2D( const Point2D & ) ;};Point2D::Point2D( const Point2D & p ){this->x = p.x;this->y = p.y;this->color = p.color;this->pinned = p.pinned;} © IT Engineering Portal : 23
  24. 24. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INmain(){Point2D MyPoint;MyPoint.color = 345;Point2D AnotherPoint = Point2D( MyPoint ); // now AnotherPoint has color = 345What is Boyce Codd Normal form?A relation schema R is in BCNF with respect to a set F of functional dependencies if forall functional dependencies in F+ of the form a-> , where a and b is a subset of R, at leastone of the following holds:* a- > b is a trivial functional dependency (b is a subset of a)* a is a superkey for schema RWhat is virtual class and friend class?Friend classes are used when two or more classes are designed to work together andneed access to each others implementation in ways that the rest of the world shouldntbe allowed to have. In other words, they help keep private things private. For instance, itmay be desirable for class DatabaseCursor to have more privilege to the internals of classDatabase than main() has.What is the word you will use when defining a function in base class to allow thisfunction to be a polimorphic function?virtualWhat do you mean by binding of data and functions?Encapsulation.What are 2 ways of exporting a function from a DLL?1.Taking a reference to the function from the DLL instance.2. Using the DLL ’s Type LibraryWhat is the difference between an object and a class?Classes and objects are separate but related concepts. Every object belongs to a classand every class contains one or more related objects.- A Class is static. All of the attributes of a class are fixed before, during, and after theexecution of a program. The attributes of a class dont change.- The class to which an object belongs is also (usually) static. If a particular objectbelongs to a certain class at the time that it is created then it almost certainly will stillbelong to that class right up until the time that it is destroyed.- An Object on the other hand has a limited lifespan. Objects are created and eventuallydestroyed. Also during that lifetime, the attributes of the object may undergo significantchange.Suppose that data is an array of 1000 integers. Write a single function call thatwill sort the 100 elements data [222] through data [321].quicksort ((data + 222), 100); © IT Engineering Portal : 24
  25. 25. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhat is a class?Class is a user-defined data type in C++. It can be created to solve a particular kind ofproblem. After creation the user need not know the specifics of the working of a class.What is friend function?As the name suggests, the function acts as a friend to a class. As a friend of a class, itcan access its private and protected members. A friend function is not a member of theclass. But it must be listed in the class definition.Which recursive sorting technique always makes recursive calls to sortsubarrays that are about half size of the original array?Mergesort always makes recursive calls to sort subarrays that are about half size of theoriginal array, resulting in O(n log n) time.What is abstraction?Abstraction is of the process of hiding unwanted details from the user.What are virtual functions?A virtual function allows derived classes to replace the implementation provided by thebase class. The compiler makes sure the replacement is always called whenever theobject in question is actually of the derived class, even if the object is accessed by a basepointer rather than a derived pointer. This allows algorithms in the base class to bereplaced in the derived class, even if users dont know about the derived class.What is the difference between an external iterator and an internal iterator?Describe an advantage of an external iterator.An internal iterator is implemented with member functions of the class that has items tostep through. .An external iterator is implemented as a separate class that can be"attach" to the object that has items to step through. .An external iterator has theadvantage that many difference iterators can be active simultaneously on the sameobject.What is a scope resolution operator?A scope resolution operator (::), can be used to define the member functions of a classoutside the class.What do you mean by pure virtual functions?A pure virtual member function is a member function that the base class forces derivedclasses to provide. Normally these member functions have no implementation. Purevirtual functions are equated to zero.class Shape { public: virtual void draw() = 0; };What is polymorphism? Explain with an example?"Poly" means "many" and "morph" means "form". Polymorphism is the ability of an object(or reference) to assume (be replaced by) or become many different forms of object.Example: function overloading, function overriding, virtual functions. Another example © IT Engineering Portal : 25
  26. 26. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INcan be a plus ‘+’ sign, used for adding two integers or for using it to concatenate twostrings.What’s the output of the following program? Why?#include <stdio.h>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 inoutput = (X & Y) | (X & Z) | (Y & Z)Why are arrays usually processed with for loop?The real power of arrays comes from their facility of using an index variable to traversethe array, accessing each element with the same expression a[i]. All the is needed tomake this work is a iterated statement in which the variable i serves as a counter,incrementing from 0 to a.length -1. That is exactly what a loop does.What is an HTML tag?Answer: An HTML tag is a syntactical construct in the HTML language that abbreviatesspecific instructions to be executed when the HTML script is loaded into a Web browser.It is like a method in Java, a function in C++, a procedure in Pascal, or a subroutine inFORTRAN.Explain which of the following declarations will compile and what will beconstant - a pointer or the value pointed at: * const char ** char const ** char * constNote: Ask the candidate whether the first declaration is pointing to a string or a single © IT Engineering Portal : 26
  27. 27. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INcharacter. Both explanations are correct, but if he says that it’s a single characterpointer, ask why a whole string is initialized as char* in C++. If he says this is a stringdeclaration, ask him to declare a pointer to a single character. Competent candidatesshould not have problems pointing out why const char* can be both a character and astring declaration, incompetent ones will come up with invalid reasons.You’re given a simple code for the class Bank Customer. Write the followingfunctions:* Copy constructor* = operator overload* == operator overload* + operator overload (customers’ balances should be added up, as an example of jointaccount between husband and wife)Note:Anyone confusing assignment and equality operators should be dismissed from theinterview. The applicant might make a mistake of passing by value, not by reference. Thecandidate might also want to return a pointer, not a new object, from the additionoperator. Slightly hint that you’d like the value to be changed outside the function, too,in the first case. Ask him whether the statement customer3 = customer1 + customer2would work in the second case.What problems might the following macro bring to the application?#define sq(x) x*xAnything wrong with this code?T *p = new T[10];delete p;Everything is correct, Only the first element of the array will be deleted”, The entire arraywill be deleted, but only the first element destructor will be called.Anything wrong with this code?T *p = 0;delete p;Yes, the program will crash in an attempt to delete a null pointer.How do you decide which integer type to use?It depends on our requirement. When we are required an integer to be stored in 1 byte(means less than or equal to 255) we use short int, for 2 bytes we use int, for 8 bytes weuse long int.A char is for 1-byte integers, a short is for 2-byte integers, an int is generally a 2-byte or4-byte integer (though not necessarily), a long is a 4-byte integer, and a long long is a 8-byte integer. © IT Engineering Portal : 27
  28. 28. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhat does extern mean in a function declaration?Using extern in a function declaration we can make a function such that it can usedoutside the file in which it is defined.An extern variable, function definition, or declaration also makes the described variableor function usable by the succeeding part of the current source file. This declaration doesnot replace the definition. The declaration is used to describe the variable that isexternally defined.If a declaration for an identifier already exists at file scope, any extern declaration of thesame identifier found within a block refers to that same object. If no other declaration forthe identifier exists at file scope, the identifier has external linkage.What can I safely assume about the initial values of variables which are notexplicitly initialized?It depends on complier which may assign any garbage value to a variable if it is notinitialized.What is the difference between char a[] = “string”; and char *p = “string”;?In the first case 6 bytes are allocated to the variable a which is fixed, where as in thesecond case if *p is assigned to some other value the allocate memory can change.What’s the auto keyword good for?Answer1Not much. It declares an object with automatic storage duration. Which means the objectwill be destroyed at the end of the objects scope. All variables in functions that are notdeclared as static and not dynamically allocated have automatic storage duration bydefault.For exampleint main(){int a; //this is the same as writing “auto int a;”}Answer2Local variables occur within a scope; they are “local” to a function. They are often calledautomatic variables because they automatically come into being when the scope isentered and automatically go away when the scope closes. The keyword auto makes thisexplicit, but local variables default to auto auto auto auto so it is never necessary todeclare something as an auto auto auto auto.What is the difference between char a[] = “string”; and char *p = “string”; ?Answer1a[] = “string”;char *p = “string”; © IT Engineering Portal : 28
  29. 29. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INThe difference is this:p is pointing to a constant string, you can never safely sayp[3]=’x;however you can always say a[3]=’x;char a[]=”string”; - character array initialization.char *p=”string” ; - non-const pointer to a const-string.( this is permitted only in the caseof char pointer in C++ to preserve backward compatibility with C.)Answer2a[] = “string”;char *p = “string”;a[] will have 7 bytes. However, p is only 4 bytes. P is pointing to an adress is either BSSor the data section (depending on which compiler — GNU for the former and CC for thelatter).Answer3char a[] = “string”;char *p = “string”;for char a[]…….using the array notation 7 bytes of storage in the static memory block aretaken up, one for each character and one for the terminating nul character.But, in the pointer notation char *p………….the same 7 bytes required, plus N bytes tostore the pointer variable “p” (where N depends on the system but is usually a minimumof 2 bytes and can be 4 or more)……How do I declare an array of N pointers to functions returning pointers to functionsreturning pointers to characters?Answer1If you want the code to be even slightly readable, you will use typedefs.typedef char* (*functiontype_one)(void);typedef functiontype_one (*functiontype_two)(void);functiontype_two myarray[N]; //assuming N is a const integralAnswer2char* (* (*a[N])())()Here a is that array. And according to question no function will not take any parametervalue.What does extern mean in a function declaration?It tells the compiler that a variable or a function exists, even if the compiler hasn’t yetseen it in the file currently being compiled. This variable or function may be defined inanother file or further down in the current file. © IT Engineering Portal : 29
  30. 30. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INHow do I initialize a pointer to a function?This is the way to initialize a pointer to a functionvoid fun(int a){}void main(){void (*fp)(int);fp=fun;fp(1);}How do you link a C++ program to C functions?By using the extern "C" linkage specification around the C function declarations.Explain the scope resolution operator.It permits a program to reference an identifier in the global scope that has been hiddenby another identifier with the same name in the local scope.What are the differences between a C++ struct and C++ class?The default member and base-class access specifier are different.How many ways are there to initialize an int with a constant?Two.There are two formats for initializers in C++ as shown in the example that follows. Thefirst format uses the traditional C notation. The second format uses foo = 123;int bar (123);How does throwing and catching exceptions differ from using setjmp andlongjmp?The throw operation calls the destructors for automatic objects instantiated since entryto the try block.What is a default constructor?Default constructor WITH arguments class B { public: B (int m = 0) : n (m) {} int n; }; intmain(int argc, char *argv[]) { B b; return 0; }What is a conversion constructor?A constructor that accepts one argument of a different type.What is the difference between a copy constructor and an overloadedassignment operator? © IT Engineering Portal : 30
  31. 31. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INA copy constructor constructs a new object by using the content of the argument object.An overloaded assignment operator assigns the contents of an existing object to anotherexisting object of the same class.When should you use multiple inheritance?There are three acceptable answers: "Never," "Rarely," and "When the problem domaincannot be accurately modeled any other way."Explain the ISA and HASA class relationships. How would you implement each ina class design?A specialized class "is" a specialization of another class and, therefore, has the ISArelationship with the other class. An Employee ISA Person. This relationship is bestimplemented with inheritance. Employee is derived from Person. A class may have aninstance of another class. For example, an employee "has" a salary, therefore theEmployee class has the HASA relationship with the Salary class. This relationship is bestimplemented by embedding an object of the Salary class in the Employee class.When is a template a better solution than a base class?When you are designing a generic class to contain or otherwise manage objects of othertypes, when the format and behavior of those other types are unimportant to theircontainment or management, and particularly when those other types are unknown(thus, the generosity) to the designer of the container or manager class.What is a mutable member?One that can be modified by the class even when the object of the class or the memberfunction doing the modification is const.What is an explicit constructor?A conversion constructor declared with the explicit keyword. The compiler does not usean explicit constructor to implement an implied conversion of types. It’s purpose isreserved explicitly for construction.What is the Standard Template Library (STL)?A library of container templates approved by the ANSI committee for inclusion in thestandard C++ specification.A programmer who then launches into a discussion of the generic programming model,iterators, allocators, algorithms, and such, has a higher than average understanding ofthe new technology that STL brings to C++ programming.Describe run-time type identification.The ability to determine at run time the type of an object by using the typeid operator orthe dynamic_cast operator.What problem does the namespace feature solve?Multiple providers of libraries might use common global identifiers causing a namecollision when an application tries to link with two or more such libraries. Thenamespace feature surrounds a library’s external declarations with a unique namespace © IT Engineering Portal : 31
  32. 32. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INthat eliminates the potential for those collisions.This solution assumes that two library vendors don’t use the same namespace identifier,of course.Are there any new intrinsic (built-in) data types?Yes. The ANSI committee added the bool intrinsic type and its true and false valuekeywords.Will the following program execute?void main(){void *vptr = (void *) malloc(sizeof(void));vptr++;}Answer1It will throw an error, as arithmetic operations cannot be performed on void pointers.Answer2It will not build as sizeof cannot be applied to void* ( error “Unknown size” )Answer3How can it execute if it won’t even compile? It needs to be int main, not void main. Also,cannot increment a void *.Answer4According to gcc compiler it won’t show any error, simply it executes. but in general wecan’t do arthematic operation on void, and gives size of void as 1Answer5The program compiles in GNU C while giving a warning for “void main”. The programruns without a crash. sizeof(void) is “1? hence when vptr++, the address is incrementedby 1.Answer6Regarding arguments about GCC, be aware that this is a C++ question, not C. So gcc willcompile and execute, g++ cannot. g++ complains that the return type cannot be void andthe argument of sizeof() cannot be void. It also reports that ISO C++ forbids incrementinga pointer of type ‘void*’.Answer7in C++voidp.c: In function `int main()’:voidp.c:4: error: invalid application of `sizeof’ to a void typevoidp.c:4: error: `malloc’ undeclared (first use this function)voidp.c:4: error: (Each undeclared identifier is reported only once for each function itappears in.) © IT Engineering Portal : 32
  33. 33. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INvoidp.c:6: error: ISO C++ forbids incrementing a pointer of type `void*’But in c, it work without problemsvoid main(){char *cptr = 0?2000;long *lptr = 0?2000;cptr++;lptr++;printf(” %x %x”, cptr, lptr);}Will it execute or not?Answer1For Q2: As above, won’t compile because main must return int. Also, 0×2000 cannot beimplicitly converted to a pointer (I assume you meant 0×2000 and not 0?2000.)Answer2Not Excute.Compile with VC7 results following errors:error C2440: ‘initializing’ : cannot convert from ‘int’ to ‘char *’error C2440: ‘initializing’ : cannot convert from ‘int’ to ‘long *’Not Excute if it is C++, but Excute in C.The printout:2001 2004Answer3In C++[$]> g++ point.cpoint.c: In function `int main()’:point.c:4: error: invalid conversion from `int’ to `char*’point.c:5: error: invalid conversion from `int’ to `long int*’in C———————————–[$] etc > gcc point.cpoint.c: In function `main’:point.c:4: warning: initialization makes pointer from integer without a castpoint.c:5: warning: initialization makes pointer from integer without a cast[$] etc > ./a.exe2001 2004 © IT Engineering Portal : 33
  34. 34. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhat is the difference between Mutex and Binary semaphore?semaphore is used to synchronize processes. where as mutex is used to providesynchronization between threads running in the same process.In C++, what is the difference between method overloading and methodoverriding?Overloading a method (or function) in C++ is the ability for functions of the same name tobe defined as long as these methods have different signatures (different set ofparameters). Method overriding is the ability of the inherited class rewriting the virtualmethod of the base class.What methods can be overridden in Java?In C++ terminology, all public methods in Java are virtual. Therefore, all Java methodscan be overwritten in subclasses except those that are declared final, static, and private.What are the defining traits of an object-oriented language?The defining traits of an object-oriented langauge are:* encapsulation* inheritance* polymorphismWrite a program that ask for user input from 5 to 9 then calculate the averageint main(){int MAX=4;int total =0;int average=0;int numb;cout<<"Please enter your input from 5 to 9";cin>>numb;if((numb <5)&&(numb>9))cout<<"please re type your input";elsefor(i=0;i<=MAX; i++){total = total + numb;average= total /MAX;}cout<<"The average number is"<<average<<endl;return 0;}Assignment Operator - What is the diffrence between a "assignment operator"and a "copy constructor"?Answer1. © IT Engineering Portal : 34
  35. 35. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INIn assignment operator, you are assigning a value to an existing object. But in copyconstructor, you are creating a new object and then assigning a value to that object. Forexample:complex c1,c2;c1=c2; //this is assignmentcomplex c3=c2; //copy constructorAnswer2.A copy constructor is used to initialize a newly declared variable from an existingvariable. This makes a deep copy like assignment, but it is somewhat simpler:There is no need to test to see if it is being initialized from itself.There is no need to clean up (eg, delete) an existing value (there is none).A reference to itself is not returned.RTTI - What is RTTI?Answer1.RTTI stands for "Run Time Type Identification". In an inheritance hierarchy, we can findout the exact type of the objet of which it is member. It can be done by using:1) dynamic id operator2) typecast operatorAnswer2.RTTI is defined as follows: Run Time Type Information, a facility that allows an object tobe queried at runtime to determine its type. One of the fundamental principles of objecttechnology is polymorphism, which is the ability of an object to dynamically change atruntime.STL Containers - What are the types of STL containers?There are 3 types of STL containers:1. Adaptive containers like queue, stack2. Associative containers like set, map3. Sequence containers like vector, dequeWhat is the need for a Virtual Destructor ?Destructors are declared as virtual because if do not declare it as virtual the base classdestructor will be called before the derived class destructor and that will lead to memoryleak because derived class’s objects will not get freed.Destructors are declared virtualso as to bind objects to the methods at runtime so that appropriate destructor is called.What is "mutable"?Answer1."mutable" is a C++ keyword. When we declare const, none of its data members canchange. When we want one of its members to change, we declare it as mutable. © IT Engineering Portal : 35
  36. 36. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INAnswer2.A "mutable" keyword is useful when we want to force a "logical const" data memberto have its value modified. A logical const can happen when we declare a datamember as non-const, but we have a const member function attempting to modifythat data member. For example:class Dummy {public:bool isValid() const;private:mutable int size_ = 0;mutable bool validStatus_ = FALSE;// logical const issue resolved};bool Dummy::isValid() const// data members become bitwise const{if (size > 10) {validStatus_ = TRUE; // fine to assignsize = 0; // fine to assign}}Answer2."mutable" keyword in C++ is used to specify that the member may be updated ormodified even if it is member of constant object. Example:class Animal {private:string name;string food;mutable int age;public:void set_age(int a);};void main() {const Animal Tiger(’Fulffy’,antelope’,1);Tiger.set_age(2);// the age can be changed since its mutable}Differences of C and C++Could you write a small program that will compile in C but not in C++ ?In C, if you can a const variable e.g.const int i = 2;you can use this variable in other module as follows © IT Engineering Portal : 36
  37. 37. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INextern const int i;C compiler will not complain.But for C++ compiler u must writeextern const int i = 2;else error would be generated.Bitwise Operations - Given inputs X, Y, Z and operations | and & (meaningbitwise OR and AND, respectively), what is output equal to in?output = (X & Y) | (X & Z) | (Y & Z);C++ Object-Oriented Interview Questions And AnswersWhat is a modifier?A modifier, also called a modifying function is a member function that changes thevalue of at least one data member. In other words, an operation that modifies thestate of an object. Modifiers are also known as ‘mutators’. Example: The functionmod is a modifier in the following code snippet:class test{int x,y;public:test(){x=0; y=0;}void mod(){x=10;y=15;}};What is an accessor?An accessor is a class operation that does not modify the state of an object. Theaccessor functions need to be declared as const operationsDifferentiate between a template class and class template.Template class: A generic definition or a parameterized class not instantiated until theclient provides the needed information. It’s jargon for plain templates. Class template: Aclass template specifies how individual classes can be constructed much like the way aclass specifies how individual objects can be constructed. It’s jargon for plain classes. © IT Engineering Portal : 37
  38. 38. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhen does a name clash occur?A name clash occurs when a name is defined in more than one place. For example., twodifferent class libraries could give two different classes the same name. If you try to usemany class libraries at the same time, there is a fair chance that you will be unable tocompile or link the program because of name clashes.Define namespace.It is a feature in C++ to minimize name collisions in the global name space. Thisnamespace keyword assigns a distinct name to a library that allows other libraries to usethe same identifier names without creating any name collisions. Furthermore, thecompiler uses the namespace signature for differentiating the definitions.What is the use of ‘using’ declaration. ?A using declaration makes it possible to use a name from a namespace without the scopeoperator.What is an Iterator class ?A class that is used to traverse through the objects maintained by a container class.There are five categories of iterators: input iterators, output iterators, forward iterators,bidirectional iterators, random access. An iterator is an entity that gives access to thecontents of a container object without violating encapsulation constraints. Access to thecontents is granted on a one-at-a-time basis in order. The order can be storage order (asin lists and queues) or some arbitrary order (as in array indices) or according to someordering relation (as in an ordered binary tree). The iterator is a construct, whichprovides an interface that, when called, yields either the next element in the container, orsome value denoting the fact that there are no more elements to examine. Iterators hidethe details of access to and update of the elements of a container class.The simplest and safest iterators are those that permit read-only access to the contentsof a container class.What is an incomplete type?Incomplete types refers to pointers in which there is non availability of theimplementation of the referenced location or it points to some location whose value is notavailable for *i=0x400 // i points to address 400*i=0; //set the value of memory location pointed by i.Incomplete types are otherwise called uninitialized pointers.What is a dangling pointer?A dangling pointer arises when you use the address of an object afterits lifetime is over. This may occur in situations like returningaddresses of the automatic variables from a function or using theaddress of the memory block after it is freed. The followingcode snippet shows this: © IT Engineering Portal : 38
  39. 39. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INclass Sample{public:int *ptr;Sample(int i){ptr = new int(i);}~Sample(){delete ptr;}void PrintVal(){cout << "The value is " << *ptr;}};void SomeFunc(Sample x){cout << "Say i am in someFunc " << endl;}int main(){Sample s1 = 10;SomeFunc(s1);s1.PrintVal();}In the above example when PrintVal() function iscalled it is called by the pointer that has been freed by thedestructor in SomeFunc.Differentiate between the message and method.Message:* Objects communicate by sending messages to each other.* A message is sent to invoke a method.Method* Provides response to a message.* It is an implementation of an operation.What is an adaptor class or Wrapper class?A class that has no functionality of its own. Its member functions hide the use of a third © IT Engineering Portal : 39
  40. 40. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INparty software component or an object with the non-compatible interface or a non-object-oriented implementation.What is a Null object?It is an object of some class whose purpose is to indicate that a real object of that classdoes not exist. One common use for a null object is a return value from a memberfunction that is supposed to return an object with some specified properties but cannotfind such an object.What is class invariant?A class invariant is a condition that defines all valid states for an object. It is a logicalcondition to ensure the correct working of a class. Class invariants must hold when anobject is created, and they must be preserved under all operations of the class. Inparticular all class invariants are both preconditions and post-conditions for alloperations or member functions of the class.What do you mean by Stack unwinding?It is a process during exception handling when the destructor is called for all localobjects between the place where the exception was thrown and where it is caught.Define precondition and post-condition to a member function.Precondition: A precondition is a condition that must be true on entry to a memberfunction. A class is used correctly if preconditions are never false. An operation is notresponsible for doing anything sensible if its precondition fails to hold. For example, theinterface invariants of stack class say nothing about pushing yet another element on astack that is already full. We say that isful() is a precondition of the push operation. Post-condition: A post-condition is a condition that must be true on exit from a memberfunction if the precondition was valid on entry to that function. A class is implementedcorrectly if post-conditions are never false. For example, after pushing an element on thestack, we know that isempty() must necessarily hold. This is a post-condition of the pushoperation.What are the conditions that have to be met for a condition to be an invariant ofthe class?* The condition should hold at the end of every constructor.* The condition should hold at the end of every mutator (non-const) operation.What are proxy objects?Objects that stand for other objects are called proxy objects or surrogates.template <class t="">class Array2D{public:class Array1D{public:T& operator[] (int index); © IT Engineering Portal : 40
  41. 41. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INconst T& operator[] (int index)const;};Array1D operator[] (int index);const Array1D operator[] (int index) const;};The following then becomes legal:Array2D<float>data(10,20);cout<<data[3][6]; // fineHere data[3] yields an Array1D object and the operator [] invocation on that object yieldsthe float in position(3,6) of the original two dimensional array. Clients of the Array2Dclass need not be aware of the presence of the Array1D class. Objects of this latter classstand for one-dimensional array objects that, conceptually, do not exist for clients ofArray2D. Such clients program as if they were using real, live, two-dimensional arrays.Each Array1D object stands for a one-dimensional array that is absent from a conceptualmodel used by the clients of Array2D. In the above example, Array1D is a proxy class. Itsinstances stand for one-dimensional arrays that, conceptually, do not exist.Name some pure object oriented languages.Smalltalk, Java, Eiffel, Sather.What is an orthogonal base class?If two base classes have no overlapping methods or data they are said to be independentof, or orthogonal to each other. Orthogonal in the sense means that two classes operatein different dimensions and do not interfere with each other in any way. The samederived class may inherit such classes with no difficulty.What is a node class?A node class is a class that,* relies on the base class for services and implementation,* provides a wider interface to the users than its base class,* relies primarily on virtual functions in its public interface* depends on all its direct and indirect base class* can be understood only in the context of the base class* can be used as base for further derivation* can be used to create objects.A node class is a class that has added new services or functionality beyond the servicesinherited from its base class.What is a container class? What are the types of container classes?A container class is a class that is used to hold objects in memory or external storage. Acontainer class acts as a generic holder. A container class has a predefined behavior anda well-known interface. A container class is a supporting class whose purpose is to hidethe topology used for maintaining the list of objects in memory. When a container class © IT Engineering Portal : 41
  42. 42. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INcontains a group of mixed objects, the container is called a heterogeneous container;when the container is holding a group of objects that are all the same, the container iscalled a homogeneous container.How do you write a function that can reverse a linked-list?Answer1:void reverselist(void){if(head==0)return;if(head-<next==0)return;if(head-<next==tail){head-<next = 0;tail-<next = head;}else{node* pre = head;node* cur = head-<next;node* curnext = cur-<next;head-<next = 0;cur-<next = head;for(; curnext!=0; ){cur-<next = pre;pre = cur;cur = curnext;curnext = curnext-<next;}curnext-<next = cur;}}Answer2:node* reverselist(node* head){if(0==head || 0==head->next)//if head->next ==0 should return head instead of 0;return 0; © IT Engineering Portal : 42
  43. 43. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN{node* prev = head;node* curr = head->next;node* next = curr->next;for(; next!=0; ){curr->next = prev;prev = curr;curr = next;next = next->next;}curr->next = prev;head->next = 0;head = curr;}return head;}What is polymorphism?Polymorphism is the idea that a base class can be inherited by several classes. A baseclass pointer can point to its child class and a base class array can store different childclass objects.How do you find out if a linked-list has an end? (i.e. the list is not a cycle)You can find out by using 2 pointers. One of them goes 2 nodes each time. The secondone goes at 1 nodes each time. If there is a cycle, the one that goes 2 nodes each time willeventually meet the one that goes slower. If that is the case, then you will know thelinked-list is a cycle.How can you tell what shell you are running on UNIX system?You can do the Echo $RANDOM. It will return a undefined variable if you are fromthe C-Shell, just a return prompt if you are from the Bourne shell, and a 5 digitrandom numbers if you are from the Korn shell. You could also do a ps -l and lookfor the shell with the highest PID.What is Boyce Codd Normal form?A relation schema R is in BCNF with respect to a set F of functional dependencies iffor all functional dependencies in F+ of the form a->b, where a and b is a subset ofR, at least one of the following holds:* a->b is a trivial functional dependency (b is a subset of a)* a is a superkey for schema R © IT Engineering Portal : 43
  44. 44. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INWhat is pure virtual function?A class is made abstract by declaring one or more of its virtual functions to be pure.A pure virtual function is one with an initializer of = 0 in its declarationWrite a Struct Time where integer m, h, s are its membersstruct Time{int m;int h;int s;};How do you traverse a Btree in Backward in-order?Process the node in the right subtreeProcess the rootProcess the node in the left subtreeWhat is the two main roles of Operating System?As a resource managerAs a virtual machineIn the derived class, which data member of the base class are visible?In the public and protected sections.C++ programming on UNIXCould you tell something about the Unix System Kernel?The kernel is the heart of the UNIX openrating system, it’s reponsible for controllingthe computer’s resouces and scheduling user jobs so that each one gets its fairshare of resources.What are each of the standard files and what are they normally associatedwith?They are the standard input file, the standard output file and the standard errorfile. The first is usually associated with the keyboard, the second and third areusually associated with the terminal screen.Detemine the code below, tell me exectly how many times is the operationsum++ performed ?for ( i = 0; i < 100; i++ )for ( j = 100; j > 100 - i; j–)sum++; © IT Engineering Portal : 44
  45. 45. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN(99 * 100)/2 = 4950The sum++ is performed 4950 times.Give 4 examples which belongs application layer in TCP/IP architecture?FTP, TELNET, HTTP and TFTPWhat’s the meaning of ARP in TCP/IP?The "ARP" stands for Address Resolution Protocol. The ARP standard defines twobasic message types: a request and a response. a request message contains an IPaddress and requests the corresponding hardware address; a replay contains boththe IP address, sent in the request, and the hardware address.What is a Makefile?Makefile is a utility in Unix to help compile large programs. It helps by onlycompiling the portion of the program that has been changed.A Makefile is the file and make uses to determine what rules to apply. make isuseful for far more than compiling programs.What is deadlock?Deadlock is a situation when two or more processes prevent each other fromrunning. Example: if T1 is holding x and waiting for y to be free and T2 holding yand waiting for x to be free deadlock happens.What is semaphore?Semaphore is a special variable, it has two methods: up and down. Semaphoreperforms atomic operations, which means ones a semaphore is called it can not beinturrupted.The internal counter (= #ups - #downs) can never be negative. If you execute the“down” method when the internal counter is zero, it will block until some otherthread calls the “up” method. Semaphores are use for thread synchronization.Is C an object-oriented language?C is not an object-oriented language, but limited object-oriented programming canbe done in C.Name some major differences between C++ and Java.C++ has pointers; Java does not. Java is platform-independent; C++ is not. Javahas garbage collection; C++ does not. Java does have pointers. In fact all variablesin Java are pointers. The difference is that Java does not allow you to manipulatethe addresses of the pointer © IT Engineering Portal : 45
  46. 46. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INC++ Networking Interview Questions and AnswersWhat is the difference between Stack and Queue?Stack is a Last In First Out (LIFO) data structure.Queue is a First In First Out (FIFO) data structureWrite a fucntion that will reverse a string.char *strrev(char *s){int i = 0, len = strlen(s);char *str;if ((str = (char *)malloc(len+1)) == NULL)/*cannot allocate memory */err_num = 2;return (str);}while(len)str[i++]=s[–len];str[i] = NULL;return (str);}What is the software Life-Cycle?The software Life-Cycle are1) Analysis and specification of the task2) Design of the algorithms and data structures3) Implementation (coding)4) Testing5) Maintenance and evolution of the system6) ObsolescenceWhat is the difference between a Java application and a Java applet?The difference between a Java application and a Java applet is that a Javaapplication is a program that can be executed using the Java interpeter, and aJAVA applet can be transfered to different networks and executed by using a webbrowser (transferable to the WWW).Name 7 layers of the OSI Reference Model?-Application layer-Presentation layer-Session layer-Transport layer-Network layer-Data Link layer-Physical layer © IT Engineering Portal : 46
  47. 47. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INC++ Algorithm Interview Questions and AnswersWhat are the advantages and disadvantages of B-star trees over Binary trees?Answer1B-star trees have better data structure and are faster in search than Binary trees,but it’s harder to write codes for B-start trees.Answer2The major difference between B-tree and binary tres is that B-tree is a external datastructure and binary tree is a main memory data structure. The computationalcomplexity of binary tree is counted by the number of comparison operations ateach node, while the computational complexity of B-tree is determined by the diskI/O, that is, the number of node that will be loaded from disk to main memory. Thecomparision of the different values in one node is not counted.Write the psuedo code for the Depth first Search.dfs(G, v) //OUTLINEMark v as "discovered"For each vertex w such that edge vw is in G:If w is undiscovered:dfs(G, w); that is, explore vw, visit w, explore from there as much as possible, andbacktrack from w to v. Otherwise:"Check" vw without visiting w. Mark v as "finished".Describe one simple rehashing policy.The simplest rehashing policy is linear probing. Suppose a key K hashes to locationi. Suppose other key occupies H[i]. The following function is used to generatealternative locations:rehash(j) = (j + 1) mod hwhere j is the location most recently probed. Initially j = i, the hash code for K.Notice that this version of rehash does not depend on K.Describe Stacks and name a couple of places where stacks are useful.A Stack is a linear structure in which insertions and deletions are always made atone end, called the top. This updating policy is called last in, first out (LIFO). It isuseful when we need to check some syntex errors, such as missing parentheses.Suppose a 3-bit sequence number is used in the selective-reject ARQ, what is © IT Engineering Portal : 47
  48. 48. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INthe maximum number of frames that could be transmitted at a time?If a 3-bit sequence number is used, then it could distinguish 8 different frames.Since the number of frames that could be transmitted at a time is no greater halfthe numner of frames that could be distinguished by the sequence number, so atmost 4 frames can be transmitted at a time. © IT Engineering Portal : 48
  49. 49. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.IN Java Interview Questions & Answers © IT Engineering Portal : 49
  50. 50. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INJava Interview Questions and AnswersWhat is Collection API ?The Collection API is a set of classes and interfaces that support operation oncollections of objects. These classes and interfaces are more flexible, more powerful,and more regular than the vectors, arrays, and hashtables if effectively replaces.Example of classes: HashSet, HashMap, ArrayList, LinkedList, TreeSet andTreeMap.Example of interfaces: Collection, Set, List and Map.Is Iterator a Class or Interface? What is its use?Answer: Iterator is an interface which is used to step through the elements of aCollection.What is similarities/difference between an Abstract class and Interface?Differences are as follows:Interfaces provide a form of multiple inheritance. A class can extend only one otherclass. Interfaces are limited to public methods and constants with noimplementation. Abstract classes can have a partial implementation, protectedparts, static methods, etc.A Class may implement several interfaces. But in case of abstract class, a class mayextend only one abstract class. Interfaces are slow as it requires extra indirection toto find corresponding method in in the actual class. Abstract classes are fast.Similarities:Neither Abstract classes or Interface can be instantiated.Java Interview Questions - How to define an Abstract class?A class containing abstract method is called Abstract class. An Abstract class cantbe instantiated.Example of Abstract class:abstract class testAbstractClass {protected String myString;public String getMyString() {return myString;}public abstract string anyAbstractFunction();}How to define an Interface in Java ?In Java Interface defines the methods but does not implement them. Interface caninclude constants. A class that implements the interfaces is bound to implement allthe methods defined in Interface.Emaple of Interface:public interface sampleInterface {public void functionOne(); © IT Engineering Portal : 50
  51. 51. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INpublic long CONSTANT_ONE = 1000;}If a class is located in a package, what do you need to change in the OSenvironment to be able to use it?You need to add a directory or a jar file that contains the package directories to theCLASSPATH environment variable. Lets say a class Employee belongs to a; and is located in the file In thiscase, youd need to add c:dev to the variable CLASSPATH. If this class contains themethod main(), you could test it from a command prompt window as follows:c:>java many methods in the Serializable interface?There is no method in the Serializable interface. The Serializable interface acts as amarker, telling the object serialization tools that your class is serializable.How many methods in the Externalizable interface?There are two methods in the Externalizable interface. You have to implement thesetwo methods in order to make your class externalizable. These two methods arereadExternal() and writeExternal().What is the difference between Serializalble and Externalizable interface?When you use Serializable interface, your class is serialized automatically bydefault. But you can override writeObject() and readObject() two methods to controlmore complex object serailization process. When you use Externalizable interface,you have a complete control over your classs serialization process.What is a transient variable in Java?A transient variable is a variable that may not be serialized. If you dont want somefield to be serialized, you can mark that field transient or static.Which containers use a border layout as their default layout?The Window, Frame and Dialog classes use a border layout as their default layout.How are Observer and Observable used?Objects that subclass the Observable class maintain a list of observers. When anObservable object is updated, it invokes the update() method of each of its observersto notify the observers that it has changed state. The Observer interface isimplemented by objects that observe Observable objects.What is Java?Java is an object-oriented programming language developed initially by JamesGosling and colleagues at Sun Microsystems. The language, initially called Oak(named after the oak trees outside Goslings office), was intended to replace C++,although the feature set better resembles that of Objective C. Java should not be © IT Engineering Portal : 51
  52. 52. July 7, 2011 IT ENGG PORTAL - WWW.ITPORTAL.INconfused with JavaScript, which shares only the name and a similar C-like syntax.Sun Microsystems currently maintains and updates Java regularly.What does a well-written OO program look like?A well-written OO program exhibits recurring structures that promote abstraction,flexibility, modularity and elegance.Can you have virtual functions in Java?Yes, all functions in Java are virtual by default. This is actually a pseudo trickquestion because the word "virtual" is not part of the naming convention in Java (asit is in C++, C-sharp and VB.NET), so this would be a foreign concept for someonewho has only coded in Java. Virtual functions or virtual methods are functions ormethods that will be redefined in derived classes.Jack developed a program by using a Map container to hold key/value pairs.He wanted to make a change to the map. He decided to make a clone of themap in order to save the original data on side. What do you think of it? ?If Jack made a clone of the map, any changes to the clone or the original mapwould be seen on both maps, because the clone of Map is a shallow copy. So Jackmade a wrong decision.What is more advisable to create a thread, by implementing a Runnableinterface or by extending Thread class?Strategically speaking, threads created by implementing Runnable interface aremore advisable. If you create a thread by extending a thread class, you cannotextend any other class. If you create a thread by implementing Runnable interface,you save a space for your class to extend another class now or in future.What is NullPointerException and how to handle it?When an object is not initialized, the default value is null. When the followingthings happen, the NullPointerException is thrown:--Calling the instance method of a null object.--Accessing or modifying the field of a null object.--Taking the length of a null as if it were an array.--Accessing or modifying the slots of null as if it were an array.--Throwing null as if it were a Throwable value.The NullPointerException is a runtime exception. The best practice is to catch suchexception even if it is not required by language design.An application needs to load a library before it starts to run, how to code?One option is to use a static block to load a library before anything is called. Forexample,class Test {static {System.loadLibrary("path-to-library-file");} © IT Engineering Portal : 52