Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Search Your Question

Showing posts with label C language. Show all posts
Showing posts with label C language. Show all posts

Thursday, May 29, 2008

C Interview Questions

1. What will print out?
main()
{
char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%s\n”,p2);
}
Answer:empty string.

2. What will be printed as the result of the operation below:
main()
{
int x=20,y=35;
x=y++ + x++;
y= ++y + ++x;
printf(“%d%d\n”,x,y);
}
Answer : 5794

3. What will be printed as the result of the operation below:
main()
{
int x=5;
printf(“%d,%d,%d\n”,x,x< <2,x>>2);
}
Answer: 5,20,1

4. What will be printed as the result of the operation below:
#define swap(a,b) a=a+b;b=a-b;a=a-b;
void main()
{
int x=5, y=10;
swap (x,y);
printf(“%d %d\n”,x,y);
swap2(x,y);
printf(“%d %d\n”,x,y);
}
int swap2(int a, int b)
{
int temp;
temp=a;
b=a;
a=temp;
return 0;
}
Answer: 10, 5
10, 5
5. What will be printed as the result of the operation below:
main()
{
char *ptr = ” Cisco Systems”;
*ptr++; printf(“%s\n”,ptr);
ptr++;
printf(“%s\n”,ptr);
}
Answer:Cisco Systems
isco systems

6. What will be printed as the result of the operation below:
main()
{
char s1[]=“Cisco”;
char s2[]= “systems”;
printf(“%s”,s1);
}
Answer: Cisco

7. What will be printed as the result of the operation below:
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?
static int average;
Answer: all the functions in the file1.c can access the variable.

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

10. What will be printed as the result of the operation below:
int x;
int modifyvalue()
{
return(x+=10);
}
int changevalue(int x)
{
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
11. 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
12. 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”);
}
Answer: Two lines with “Cisco Systems” will be printed.

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?
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 or not?
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 the space between adjacent arguments?
48. If we want that any wildcard characters in the command line arguments should be appropriately 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 other functions 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?
57. Left shifting a number by 1
58. Left shifting an unsigned int or char by 1?
59. Write a program to compare two strings without using the strcmp() function.
60. Write a program to concatenate two strings.

C++ Interview Questions

What is encapsulation??
Containing and hiding information about an object, such as internal data structures and
code. Encapsulation isolates the internal complexity of an object's operation from the rest
of the application. 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 derived
class 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??
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 as C++ 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 compiler
implements 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?
Default assignment operator handles assigning one object to another of the same class.
Member to member copy (shallow copy)

What are all the implicit member functions of the class? Or what are all the functions which
compiler implements for us if we don't define one.??
default ctor
copy ctor
assignment operator
default destructor
address operator

What is conversion constructor?
constructor with a single argument makes that constructor as conversion ctor and it can be
used for type conversion.
for example:
class Boo
{
public:
Boo( int i );
};
Boo BooObject = 10 ; // assigning int 10 Boo object

What is conversion operator??
class can have a public method for specific data type conversions.
for example:
class Boo
{
double value;
public:
Boo(int i )
operator double()
{
return value;
}
};
Boo BooObject;
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 to
initiallize 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.
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 < t="">
T min (T i, T j)
{
return i < mystruct =" {" salaray =" 2000" b =" a;" temp =" x;" x =" y;" y =" x;" a="2," b="3;" num =" num" temp =" 2.0;" value =" cuberoot" temp =" 3L;" value =" cuberoot" parent_object_ptr =" new">show() // calls parent->show() i
now we goto virtual world...
class parent
{
virtual void Show()
{
cout << "i'm parent" << parent_object_ptr =" new">show() // calls child->show()
What is pure virtual function? or what is abstract class?
When you define only function prototype in a base class without and do the complete
implementation in derived class. This base class is called abstract class and client won't
able to instantiate an object using this base class.
You can make a pure virtual function or abstract class this way..
class Boo
{
void foo() = 0;
}
Boo MyBoo; // compilation error

What is Memory alignment??
The term alignment primarily means the tendency of an address pointer value to be a multiple
of some power of two. So a pointer with two byte alignment has a zero in the least
significant bit. And a pointer with four byte alignment has a zero in both the two least
significant bits. And so on. More alignment means a longer sequence of zero bits in the
lowest bits of a pointer.

What problem does the namespace feature solve?
Multiple providers of libraries might use common global identifiers causing a name collision
when an application tries to link with two or more such libraries. The namespace feature
surrounds a library's external declarations with a unique namespace that eliminates the
potential for those collisions.
namespace [identifier] { namespace-body }
A namespace declaration identifies and assigns a name to a declarative region.
The identifier in a namespace declaration must be unique in the declarative region in which
it is used. The identifier is the name of the namespace and is used to reference its
members.

What is the use of 'using' declaration?
A using declaration makes it possible to use a name from a namespace without the scope
operator.

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 the
contents of a container object without violating encapsulation constraints. Access to the
contents is granted on a one-at-a-time basis in order. The order can be storage order (as in
lists and queues) or some arbitrary order (as in array indices) or according to some
ordering relation (as in an ordered binary tree). The iterator is a construct, which
provides an interface that, when called, yields either the next element in the container, or
some value denoting the fact that there are no more elements to examine. Iterators hide the
details of access to and update of the elements of a container class. Something like a
pointer.

What is a dangling pointer?
A dangling pointer arises when you use the address of an object after its lifetime is over.
This may occur in situations like returning addresses of the automatic variables from a
function or using the address of the memory block after it is freed.
What do you mean by Stack unwinding?
It is a process during exception handling when the destructor is called for all local
objects in the stack between the place where the exception was thrown and where it is
caught.

Name the operators that cannot be overloaded??
sizeof, ., .*, .->, ::, ?:

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. A
container class acts as a generic holder. A container class has a predefined behavior and a
well-known interface. A container class is a supporting class whose purpose is to hide the
topology used for maintaining the list of objects in memory. When a container class contains
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 is called a
homogeneous container.

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 the
compiler'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 the practice
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), and
same 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 imply
overriding functionality we need parent and child classes. In the child class you define the
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 );
The object's address is available from within the member function as the this pointer. It is
legal, though unnecessary, to use the this pointer when referring to members of the class.

What happens when you make call "delete this;" ??
The code has two built-in pitfalls. First, if it executes in a member function for an
extern, static, or automatic object, the program will probably crash as soon as the delete
statement executes. There is no portable way for an object to tell that it was instantiated
on the heap, so the class cannot assert that its object is properly instantiated. Second,
when an object commits suicide this way, the using program might not know about its demise.
As far as the instantiating program is concerned, the object remains in scope and continues
to exist even though the object did itself in. Subsequent dereferencing of the pointer can
and usually does lead to disaster.
You should never do this. Since compiler does not know whether the object was allocated on
the stack or on the heap, "delete this" could cause a disaster.

How virtual functions are implemented C++?
Virtual functions are implemented using a table of function pointers, called the vtable.
There is one entry in the table per virtual function in the class. This table is created by
the constructor of the class. When a derived class is constructed, its base class is
constructed first which creates the vtable. If the derived class overrides any of the base
classes virtual functions, those entries in the vtable are overwritten by the derived class
constructor. This is why you should never call virtual functions from a constructor: because
the vtable entries for the object may not have been set up by the derived class constructor
yet, so you might end up calling base class implementations of those virtual functions

What is name mangling in C++??
The process of encoding the parameter types with the function/method name into a unique name
is called name mangling. The inverse process is called demangling.
For example Foo::bar(int, long) const is mangled as `bar__C3Fooil'.
For a constructor, the method name is left out. That is Foo::Foo(int, long) const is mangled
as `__C3Fooil'.

What is the difference between a pointer and a reference?
A reference must always refer to some object and, therefore, must always be initialized;
pointers do not have such restrictions. A pointer can be reassigned to point to different
objects while a reference always refers to an object with which it was initialized.
How are prefix and postfix versions of operator++() differentiated?
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 *const
myPointer 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 being
called 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 the throw 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 that
destructors 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 the breakpoint
which you set at the beginning of main()?

C++ allows for dynamic initialization of global variables before main() is invoked. It is
possible that initialization of global will invoke some function. If this function crashes
the crash will occur before main() is entered.
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 assigned values;
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 to
the 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 C
compiler.

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 of
confusion(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 only
within 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?
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, if
NestedClass 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 use
NestedClass.
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.

Assume I have a linked list contains all of the alphabets from ‘A’ to ‘Z’.
I want to find the letter ‘Q’ in the list, how does you perform the search to find the ‘Q’?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;
pre = cur;
cur = curnext;
curnext = curnext->next;
}
curnext->next = cur;
}
}

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 second one
goes at 1 nodes each time. If there is a cycle, the one that goes 2 nodes each time will
eventually meet the one that goes slower. If that is the case, then you will know the
linked-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 from the
C-Shell, just a return prompt if you are from the Bourne shell, and a 5 digit random numbers
if you are from the Korn shell. You could also do a ps -l and look for 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 if for all
functional dependencies in F+ of the form a->b, where a and b is a subset of R, 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
Could you tell something about the Unix System Kernel?
The kernel is the heart of the UNIX openrating system, it’s reponsible for controlling the
computer’s resouces and scheduling user jobs so that each one gets its fair share of
resources.

What is a Make file?
Make file is a utility in Unix to help compile large programs. It helps by only compiling
the portion of the program that has been changed

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.
Design and implement a String class that satisfies the following:
Supports embedded nulls
Provide the following methods (at least)
Constructor
Destructor
Copy constructor
Assignment operator
Addition operator (concatenation)
Return character at location
Return substring at location
Find substring
Provide versions of methods for String and for char* arguments
Suppose that data is an array of 1000 integers. Write a single function call that will sort
the 100 elements data [222] through data [321].
Answer: quicksort ((data + 222), 100);

What is a modifier?
What is an accessor?

Differentiate between a template class and class template.

When does a name clash occur?

Define namespace.

What is the use of ‘using’ declaration.

What is an Iterator class?

List out some of the OODBMS available.

List out some of the object-oriented methodologies.

What is an incomplete type?

What is a dangling pointer?

Differentiate between the message and method.

What is an adaptor class or Wrapper class?

What is a Null object?

What is class invariant?
What do you mean by Stack unwinding?
Define precondition and post-condition to a member function.

What are the conditions that have to be met for a condition to be an invariant of the class?

What are proxy objects?

Name some pure object oriented languages.

Name the operators that cannot be overloaded.

What is a node class?

What is an orthogonal base class?

What is a container class? What are the types of container classes?

What is a protocol class?

What is a mixin class?

What is a concrete class?

What is the handle class?

What is an action class?

When can you tell that a memory leak will occur?
What is a parameterized type?
Differentiate between a deep copy and a shallow copy?
What is an opaque pointer?
What is a smart pointer?
What is reflexive association?
What is slicing?
What is name mangling?
What are proxy objects?
What is cloning?
Describe the main characteristics of static functions.
Will the inline function be compiled as the inline function always? Justify.
Define a way other than using the keyword inline to make a function inline.
How can a '::' operator be used as unary operator?
What is placement new?
What do you mean by analysis and design?
What are the steps involved in designing?

What are the main underlying concepts of object orientation?


What do u meant by "SBI" of an object?


Differentiate persistent & non-persistent objects?


What do you meant by active and passive objects?


What is meant by software development method?


What do you meant by static and dynamic modeling?


How to represent the interaction between the modeling elements?


Why generalization is very strong?


Differentiate Aggregation and containment?
Can link and Association applied interchangeably?


What is meant by "method-wars"?


Whether unified method and unified modeling language are same or different?


Who were the three famous amigos and what was their contribution to the object community?


Differentiate the class representation of Booch, Rumbaugh and UML?


What is an USECASE? Why it is needed?


Who is an Actor?


What is guard condition?


Differentiate the following notations?


USECASE is an implementation independent notation. How will the designer give the
implementation details of a particular USECASE to the programmer?


Suppose a class acts an Actor in the problem domain, how to represent it in the static
model?


Why does the function arguments are called as "signatures"?

C Interview Questions Interview question

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 second one goes at 1 nodes each time. If there is a cycle, the one that goes 2 nodes each time will eventually meet the one that goes slower. If that is the case, then you will know the linked-list is a cycle.

What is the difference between realloc() and free()?

The free subroutine frees a block of memory previously allocated by the malloc subroutine. Undefined results occur if the Pointer parameter is not a valid pointer. If the Pointer parameter is a null value, no action will occur. The realloc subroutine changes the size of the block of memory pointed to by the Pointer parameter to the number of bytes specified by the Size parameter and returns a new pointer to the block. The pointer specified by the Pointer parameter must have been created with the malloc, calloc, or realloc 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, as long as these functions have different sets of parameters (at least as far as their types are concerned). This capability is called function overloading. When an overloaded function is called, the C++ compiler selects the proper function by examining the number, types and order of the arguments in the call. Function overloading is commonly used to create several functions of the same name that perform similar tasks but on different data types.

Operator overloading allows existing C++ operators to be redefined so that they work on objects of user-defined classes. Overloaded operators are syntactic sugar for equivalent function calls. They form a pleasant facade that doesn't add anything fundamental to the language (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 the definition of this declaration.
E.g.: void stars () //function declaration
The definition contains the actual implementation.
E.g.: void stars () // declarator
{
for(int j=10; j > =0; j--) //function body
cout << *;
cout <<>

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 reducing problem after a system 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;
pre = 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 point where the function is called. If done carefully, this can improve the application's performance in exchange for increased compile time and possibly (but not always) an increase 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; icout << "Please enter your input between 5 and 9: ";
cin >> numb;
while ( numb<5>9) {
cout << "Invalid input, please re-enter: ";
cin >> numb;
}
total = total + numb;
}
average = total/MAX;
cout << "The average number is: " <<>return 0;
}

What is public, protected, private?

  • Public, protected and private are three access specifiers 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.
  • Private 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 (\"circular\n\");
}
}

OK, why does this work?
If a list is circular, at some point pointer2 will wrap around and be either at the item just before pointer1, or the item before that. Either way, it’s either 1 or 2 jumps until they meet.

What is polymorphism?

Polymorphism is the idea that a base class can be inherited by several classes. A base class pointer can point to its child class and a base class array can store different child class objects.

What is virtual constructors/destructors?

Answer1
Virtual destructors:

If an object (with a non-virtual destructor) is destroyed explicitly by applying the delete operator 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 same name as the base-class destructor. Now, if the object in the hierarchy is destroyed explicitly 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: Constructors cannot be virtual. Declaring a constructor as a virtual function is a syntax error.

Answer2
Virtual destructors: If an object (with a non-virtual destructor) is destroyed explicitly by applying the delete operator 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 same name as the base-class destructor. Now, if the object in the hierarchy is destroyed explicitly 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: Constructors cannot be virtual. Declaring a constructor as a virtual function is a syntax error.

Does c++ support multilevel and multiple inheritance?
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 reducing problem 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 the definition of this declaration.
E.g.: void stars () //function declaration
The definition contains the actual implementation.
E.g.: void stars () // declarator
{
for(int j=10; j>=0; j--) //function body
cout<<”*”;
cout<
What is the difference between an ARRAY and a LIST?

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

Answer2
Array uses direct access of stored members, list uses sequencial access for members.

//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)
{
x = *it;
break;
}
i++;
}

What is a template?

Templates allow to create generic functions that admit any data type as parameters and return 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 two following ones:

template function_declaration; template function_declaration;

The only difference between both prototypes is the use of keyword class or typename, its use is indistinct since both expressions have exactly the same meaning and behave exactly the same way.

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

Answer1
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()]

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

What is the difference between class and structure?

Structure: Initially (in C) a structure was used to bundle different type of data types together to perform a particular functionality. But C++ extended the structure to contain functions also. The major difference is that all declarations inside a structure are by default public.
Class: Class is a successor of Structure. By default all the members inside the class are private.

What is RTTI?

Runtime type identification (RTTI) lets you find the dynamic type of an object when you have only a pointer or a reference to the base type. RTTI is the official way in standard C++ 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++. RTTI replaces many homegrown versions with a solid, consistent approach.

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 I have a base class SHAPE, how would I define DRAW methods for two objects CIRCLE and SQUARE

Answer1
POLYMORPHISM : A phenomenon which enables an object to react differently to the same function call.
in C++ it is attained by using a keyword virtual

Example
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 instatiated

public 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 like
globally
SHAPE *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();
}

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

What is an object?

Object is a software bundle of variables and related methods. Objects have state and behavior.

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 random numbers if you are from the Korn shell. You could also do a ps -l and look for the shell with the highest PID.

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

What is namespace?

Namespaces allow us to group a set of global classes, objects and/or functions under a name. To say it somehow, they serve to split the global scope in sub-scopes known as namespaces.
The form to use namespaces is:
namespace identifier { namespace-body }
Where identifier is any valid identifier and namespace-body is the set of classes, objects and functions that are included within the namespace. For example:
namespace general { int a, b; } In this case, a and b are normal variables integrated within the general namespace. In order to access to these variables from outside the namespace we have to use the scope operator ::. For example, to access the previous variables we would have to put:
general::a general::b
The functionality of namespaces is specially useful in case that there is a possibility that a global object or function can have the same name than another one, causing a redefinition error.

What do you mean by inheritance?

Inheritance is the process of creating new classes, called derived classes, from existing classes or base classes. The derived class inherits all the capabilities of the base class, but can add embellishments and refinements of its own.

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’s 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

What is Boyce Codd Normal form?

A relation schema R is in BCNF with respect to a set F of functional dependencies if for all functional dependencies in F+ of the form a-> , where a and b is a subset of R, 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

What is virtual class and friend class?

Friend classes are used when two or more classes are designed to work together and need access to each other's implementation in ways that the rest of the world shouldn't be allowed to have. In other words, they help keep private things private. For instance, it may be desirable for class DatabaseCursor to have more privilege to the internals of class Database than main() has.

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

virtual

What 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 Library.

What is the difference between an object and a class?

Classes and objects are separate but related concepts. Every object belongs to a class and 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 the execution of a program. The attributes of a class don't change.
- The class to which an object belongs is also (usually) static. If a particular object belongs to a certain class at the time that it is created then it almost certainly will still belong 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 eventually destroyed. Also during that lifetime, the attributes of the object may undergo significant change.

Suppose that data is an array of 1000 integers. Write a single function call that will sort the 100 elements data [222] through data [321].

quicksort ((data + 222), 100);

What is a class?

Class is a user-defined data type in C++. It can be created to solve a particular kind of problem. 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, it can access its private and protected members. A friend function is not a member of the class. But it must be listed in the class definition.

Which recursive sorting technique always makes recursive calls to sort subarrays that are about half size of the original array?

Mergesort always makes recursive calls to sort subarrays that are about half size of the original 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 the base class. The compiler makes sure the replacement is always called whenever the object in question is actually of the derived class, even if the object is accessed by a base pointer rather than a derived pointer. This allows algorithms in the base class to be replaced in the derived class, even if users don't 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 to step 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 the advantage that many difference iterators can be active simultaneously on the same object.

What is a scope resolution operator?

A scope resolution operator (::), can be used to define the member functions of a class outside the class.

What do you mean by pure virtual functions?

A pure virtual member function is a member function that the base class forces derived classes to provide. Normally these member functions have no implementation. Pure virtual 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 can be a plus ‘+’ sign, used for adding two integers or for using it to concatenate two strings.

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

What’s 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)

Why are arrays usually processed with for loop?

The real power of arrays comes from their facility of using an index variable to traverse the array, accessing each element with the same expression a[i]. All the is needed to make 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?

An HTML tag is a syntactical construct in the HTML language that abbreviates specific 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 in FORTRAN.

What problems might the following macro bring to the application?

#define sq(x) x*x

Anything 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 array will 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 we use long int.
A char is for 1-byte integers, a short is for 2-byte integers, an int is generally a 2-byte or 4-byte integer (though not necessarily), a long is a 4-byte integer, and a long long is a 8-byte integer.

What’s the best way to declare and define global variables?

The best way to declare global variables is to declare them after including all the files so that it can be used in all the functions.

What does extern mean in a function declaration?

Using extern in a function declaration we can make a function such that it can used outside the file in which it is defined.
An extern variable, function definition, or declaration also makes the described variable or function usable by the succeeding part of the current source file. This declaration does not replace the definition. The declaration is used to describe the variable that is externally defined.
If a declaration for an identifier already exists at file scope, any extern declaration of the same identifier found within a block refers to that same object. If no other declaration for the identifier exists at file scope, the identifier has external linkage.

What can I safely assume about the initial values of variables which are not explicitly initialized?

It depends on complier which may assign any garbage value to a variable if it is not initialized.

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 the second case if *p is assigned to some other value the allocate memory can change.

What’s the auto keyword good for?

Answer1
Not much. It declares an object with automatic storage duration. Which means the object will be destroyed at the end of the objects scope. All variables in functions that are not declared as static and not dynamically allocated have automatic storage duration by default.
For example
int main()
{
int a; //this is the same as writing “auto int a;”
}

Answer2
Local variables occur within a scope; they are “local” to a function. They are often called automatic variables because they automatically come into being when the scope is entered and automatically go away when the scope closes. The keyword auto makes this explicit, but local variables default to auto auto auto auto so it is never necessary to declare something as an auto auto auto auto.

What is the difference between char a[] = “string”; and char *p = “string”; ?

Answer1
a[] = “string”;
char *p = “string”;

The difference is this:
p is pointing to a constant string, you can never safely say
p[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 case of char pointer in C++ to preserve backward compatibility with C.)

Answer2
a[] = “string”;
char *p = “string”;
a[] will have 7 bytes. However, p is only 4 bytes. P is pointing to an adress is either BSS or the data section (depending on which compiler — GNU for the former and CC for the latter).

Answer3
char a[] = “string”;
char *p = “string”;

for char a[]…….using the array notation 7 bytes of storage in the static memory block are taken 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 to store the pointer variable “p” (where N depends on the system but is usually a minimum of 2 bytes and can be 4 or more)……

How do I declare an array of N pointers to functions returning pointers to functions returning pointers to characters?

Answer1
If 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 integral

Answer2
char* (* (*a[N])())()
Here a is that array. And according to question no function will not take any parameter value.

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 yet seen it in the file currently being compiled. This variable or function may be defined in another file or further down in the current file.

How do I initialize a pointer to a function?

This is the way to initialize a pointer to a function
void 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 hidden by 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 specifiers 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. The first format uses the traditional C notation. The second format uses constructor notation.
int foo = 123;
int bar (123);

How does throwing and catching exceptions differ from using setjmp and longjmp?

The throw operation calls the destructors for automatic objects instantiated since entry to the try block.

What is a default constructor?

Default constructor WITH arguments class B { public: B (int m = 0) : n (m) {} int n; }; int main(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 overloaded assignment operator?

A 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 another existing object of the same class.

When should you use multiple inheritance?

There are three acceptable answers: "Never," "Rarely," and "When the problem domain cannot be accurately modeled any other way."

Explain the ISA and HASA class relationships. How would you implement each in a class design?

A specialized class "is" a specialization of another class and, therefore, has the ISA relationship with the other class. An Employee ISA Person. This relationship is best implemented with inheritance. Employee is derived from Person. A class may have an instance of another class. For example, an employee "has" a salary, therefore the Employee class has the HASA relationship with the Salary class. This relationship is best implemented 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 other types, when the format and behavior of those other types are unimportant to their containment or management, and particularly when those other types are unknown (thus, the genericity) 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 member function doing the modification is const.

What is an explicit constructor?

A conversion constructor declared with the explicit keyword. The compiler does not use an explicit constructor to implement an implied conversion of types. It’s purpose is reserved explicitly for construction.

What is the Standard Template Library (STL)?

A library of container templates approved by the ANSI committee for inclusion in the standard 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 of the 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 or the dynamic_cast operator.

What problem does the namespace feature solve?

Multiple providers of libraries might use common global identifiers causing a name collision when an application tries to link with two or more such libraries. The namespace feature surrounds a library’s external declarations with a unique namespace that 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 value keywords.

Will the following program execute?
void main()
{
void *vptr = (void *) malloc(sizeof(void));
vptr++;
}


Answer1
It will throw an error, as arithmetic operations cannot be performed on void pointers.

Answer2
It will not build as sizeof cannot be applied to void* ( error “Unknown size” )

Answer3
How can it execute if it won’t even compile? It needs to be int main, not void main. Also, cannot increment a void *.

Answer4
According to gcc compiler it won’t show any error, simply it executes. but in general we can’t do arthematic operation on void, and gives size of void as 1

Answer5
The program compiles in GNU C while giving a warning for “void main”. The program runs without a crash. sizeof(void) is “1? hence when vptr++, the address is incremented by 1.

Answer6
Regarding arguments about GCC, be aware that this is a C++ question, not C. So gcc will compile and execute, g++ cannot. g++ complains that the return type cannot be void and the argument of sizeof() cannot be void. It also reports that ISO C++ forbids incrementing a pointer of type ‘void*’.

Answer7
in C++
voidp.c: In function `int main()’:
voidp.c:4: error: invalid application of `sizeof’ to a void type
voidp.c:4: error: `malloc’ undeclared (first use this function)
voidp.c:4: error: (Each undeclared identifier is reported only once for each function it appears in.)
voidp.c:6: error: ISO C++ forbids incrementing a pointer of type `void*’
But in c, it work without problems

void main()
{
char *cptr = 0?2000;
long *lptr = 0?2000;
cptr++;
lptr++;
printf(” %x %x”, cptr, lptr);
}Will it execute or not?


Answer1
For Q2: As above, won’t compile because main must return int. Also, 0×2000 cannot be implicitly converted to a pointer (I assume you meant 0×2000 and not 0?2000.)

Answer2
Not 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 2004

What is the difference between Mutex and Binary semaphore?

semaphore is used to synchronize processes. where as mutex is used to provide synchronization between threads running in the same process.

In C++, what is the difference between method overloading and method overriding?

Overloading a method (or function) in C++ is the ability for functions of the same name to be defined as long as these methods have different signatures (different set of parameters). Method overriding is the ability of the inherited class rewriting the virtual method of the base class.

What methods can be overridden in Java?

In C++ terminology, all public methods in Java are virtual. Therefore, all Java methods can 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
* polymorphism

Write a program that ask for user input from 5 to 9 then calculate the average

int 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";
else
for(i=0;i<=MAX; i++)
{
total = total + numb;
average= total /MAX;
}
cout<<"The average number is"<return 0;
}

Assignment Operator - What is the diffrence between a "assignment operator" and a "copy constructor"?

Answer1.
In assignment operator, you are assigning a value to an existing object. But in copy constructor, you are creating a new object and then assigning a value to that object. For example:
complex c1,c2;
c1=c2; //this is assignment
complex c3=c2; //copy constructor

Answer2.
A copy constructor is used to initialize a newly declared variable from an existing variable. 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.

"mutable" Keyword - What is "mutable"?

Answer1.
"mutable" is a C++ keyword. When we declare const, none of its data members can change. When we want one of its members to change, we declare it as mutable.

Answer2.
A "mutable" keyword is useful when we want to force a "logical const" data member to have its value modified. A logical const can happen when we declare a data member as non-const, but we have a const member function attempting to modify that 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 assign
size = 0; // fine to assign
}
}

Answer2.
"mutable" keyword in C++ is used to specify that the member may be updated or modified 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
}

RTTI - What is RTTI?

Answer1.
RTTI stands for "Run Time Type Identification". In an inheritance hierarchy, we can find out the exact type of the objet of which it is member. It can be done by using:
1) dynamic id operator
2) typecast operator

Answer2.
RTTI is defined as follows: Run Time Type Information, a facility that allows an object to be queried at runtime to determine its type. One of the fundamental principles of object technology is polymorphism, which is the ability of an object to dynamically change at runtime.

STL Containers - What are the types of STL containers?

There are 3 types of STL containers:
1. Adaptive containers like queue, stack
2. Associative containers like set, map
3. Sequence containers like vector, deque

Virtual Destructor - What is the need for â€Å“Virtual Destructor?

Destructors are declared as virtual because if do not declare it as virtual the base class destructor will be called before the derived class destructor and that will lead to memory leak because derived class̢۪s objects will not get freed.Destructors are declared virtual so as to bind objects to the methods at runtime so that appropriate destructor is called.

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
extern const int i;
C compiler will not complain.

But for C++ compiler u must write
extern const int i = 2;
else error would be generated.

Bitwise Operations - 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);


Monday, May 26, 2008

C Interview Questions

Comment lines are
a compiled in the object code
b ignored by the compiler
c included in the executable code
d ignored by the linker.

A syntax error is signalled by the
a compiler
b linker
c editor
d run time system.

When a program is running the value of a constant
a can be changed
b cannot be used
c is always hidden
d cannot be changed.

The type of a function/procedure/module is determined by
a its arguments
b the value returned
c its name
d the address returned.

Which type of code is editable?
a object
b executable
c library
d source.

Typically a variable defined in a function/procedure/module has
a scope for the whole file
b global scope
c local scope
d retains its value between calls.

A program construct used for selection is
a if…else

b for loop
c while loop
d a sequence.

What is the result of the following expression?
6+12*3-4/2
a 22
b 25
c 40
d 52

What is the result of the following expression?
5+((2*(9+5))-4)/2
a 12.5
b 14.5
c 15
d 17

A run-time error is ALWAYS caused by
a division by zero

b incorrect logic
c error in syntax
d incorrect linkage

Test results are proved by a comparison of
a logical to syntax errors
b expected to actual input
c expected to actual output
d run time to logical errors

An argument passed by reference passes
a a global variable
b a constant
c a value
d an address

How many characters can a string hold when declared as follows?
char name[20];
a 18
b 19
c 20
d 21

Directives are translated by the
a pre-processor
b compiler
c linker
d editor

Every call to a function is checked by the compiler against the
a parameter list
b variable description
c function prototype
d program prototype

The function atoi() returns the type
a char
b float
c integer
d double

How many bytes does “D” use?
a 0.
b 1.
c 2.
d 3.

A standalone executable file requires
a no run time system
b a run time system
c a development environment
d compilation.

The switch construct is used for
a sequence
b selection
c iteration
d flags.

How many times will the following loop execute?
for(j=1; j<=10; j=j-1);

a 1.
b 10.
c Never.
d Forever.

Which one of the following is a loop construct that will always be executed once?
a for
b switch
c while
d do…while

What is the result after execution of the following code if a is 10, b is 5 and c is 10?
if((a>b) && (a<=c))
a = a + 1;
else
c = c + 1;

a a = 10, c = 10
b a = 11, c = 10
c a = 10, c = 11
d a = 11, c = 11

What is the return type of the following function prototype?
float calc(int, float, char, char);
a int
b char
c float
d void

What result is in the variable num after execution of the following statements?
int num = 58;
num % = 11;
a 3
b 5
c 8
d 11

What is the maximum number of characters that can be held in the string variable char
AddressLine[40];
a 38
b 39
c 40
d 41

What result is in the variable num1 after execution of the following statements?
int j = 1, num1 = 4;

while (++j <= 10)
{
num1++;
}
a 11
b 12
c 13
d 14

What is the result in the variable len after execution of the following statements?
int len;
char str1[ ] = {“39 March Road”};
len=strlen(str1);
a 11
b 12
c 13
d 14

What is the result in the variable str3 after execution of the following statements?
char str2[] = {“Books”};
char str3[20] = {“Fair”};
strcat(str3,str2);
a “Books Fair”
b “BooksFair”
c “Fair Books”
d “FairBooks”

How many instances of a class can be declared?
a None.
b One.
c Ten.

d As many as required.

Typically a class is made up of
a attributes only
b methods only

c attributes and methods
d interfaces

Each instance of a class has a different set of
a class interfaces
b methods
c return types

d attribute values.

Methods in a class define the
a operations to be performed

b actions to be performed by its attributes
c actions to be performed on another class’s objects
d operations to be performed on another class’s attributes.

A method declared as private can be accessed by
a its class methods only

b superclasses only
c subclass methods only
d all classes.

A constructor for a class MUST have
a no parameters
b a different na me to the class

c the same name as the class
d a return value.

One method will overload another method if they have
a different names but the same parameters
b different names with no parameters
c the same name with no parameters
d the same name but different parameters

J2ME Interview Questions Interview question

What is 3G
Third generation (3G) wireless networks will offer faster data transfer rates than current networks. The first generation of
wireless (1G) was analog cellular. The second generation (2G) is digital cellular, featuring integrated voice and data
communications. So-called 2.5G networks offer incremental speed increases. 3G networks will offer dramatically improved data
transfer rates, enabling new wireless applications such as streaming media.

What is 3GPP
The 3rd Generation Partnership Project (3GPP) is a global collaboration between 6 partners: ARIB, CWTS, ETSI, T1, TTA, and
TTC. The group aims to develop a globally accepted 3rd-generation mobile system based on GSM.

What is 802.11
802.11 is a group of specifications for wireless networks developed by the Institute of Electrical and Electronics Engineers
(IEEE). 802.11 uses the Ethernet protocol and CSMA/CA (carrier sense multiple access with collision avoidance) for path
sharing.

What is API
An Application Programming Interface (API) is a set of classes that you can use in your own application. Sometimes called
libraries or modules, APIs enable you to write an application without reinventing common pieces of code. For example, a
networking API is something your application can use to make network connections, without your ever having to understand the
underlying code.

What is AMPS
Advanced Mobile Phone Service (AMPS) is a first-generation analog, circuit-switched cellular phone network. Originally
operating in the 800 MHz band, service was later expanded to include transmissions in the 1900 MHz band, the VHF range in
which most wireless carriers operate. Because AMPS uses analog signals, it cannot transmit digital signals and cannot
transport data packets without assistance from newer technologies such as TDMA and CDMA.

What is CDC
The Connected Device Configuration (CDC) is a specification for a J2ME configuration. Conceptually, CDC deals with devices
with more memory and processing power than CLDC; it is for devices with an always-on network connection and a minimum of 2 MB
of memory available for the Java system.

What is CDMA
Code-Division Multiple Access (CDMA) is a cellular technology widely used in North America. There are currently three CDMA
standards: CDMA One, CDMA2000 and W-CDMA. CDMA technology uses UHF 800Mhz-1.9Ghz frequencies and bandwidth ranges from 115Kbs
to 2Mbps.

What is CDMA One
Also know as IS-95, CDMAOne is a 2nd generation wireless technology. Supports speeds from 14.4Kbps to 115K bps.

What is CDMA2000
Also known as IS-136, CDMA2000 is a 3rd generation wireless technology. Supports speeds ranging from 144Kbps to 2Mbps.

What is CDPD
Developed by Nortel Networks, Cellular Digital Packet Data (CDPD) is an open standard for supporting wireless Internet access
from cellular devices. CDPD also supports Multicast, which allows content providers to efficiently broadcast information to
many devices at the same time.

What is cHTML
Compact HTML (cHTML) is a subset of HTML which is designed for small devices. The major features of HTML that are excluded
from cHTML are: JPEG image, Table, Image map, Multiple character fonts and styles, Background color and image, Frame and
Style sheet.

What is CLDC
The Connected, Limited Device Configuration (CLDC) is a specification for a J2ME configuration. The CLDC is for devices with
less than 512 KB or RAM available for the Java system and an intermittent (limited) network connection. It specifies a
stripped-down Java virtual machine1 called the KVM as well as several APIs for fundamental application services. Three
packages are minimalist versions of the J2SE java.lang, java.io, and java.util packages. A fourth package,
javax.microedition.io, implements the Generic Connection Framework, a generalized API for making network connections.

What is configuration
In J2ME, a configuration defines the minimum Java runtime environment for a family of devices: the combination of a Java
virtual machine (either the standard J2SE virtual machine or a much more limited version called the CLDC VM) and a core set
of APIs. CDC and CLDC are configurations. See also profile, optional package.
What is CVM
The Compact Virtual Machine (CVM) is an optimized Java virtual machine1 (JVM) that is used by the CDC.

What is Deck
A deck is a collection of one or more WML cards that can be downloaded, to a mobile phone, as a single entity.

What is EDGE
Enhanced Data GSM Environment (EDGE) is a new, faster version of GSM. EDGE is designed to support transfer rates up to
384Kbps and enable the delivery of video and other high-bandwidth applications. EDGE is the result of a joint effort between
TDMA operators, vendors and carriers and the GSM Alliance.

What is ETSI
The European Telecommunications Standards Institute (ETSI) is a non-profit organization that establishes telecommunications
standards for Europe.

What is FDMA
Frequency-division multiple-access (FDMA) is a mechanism for sharing a radio frequency band among multiple users by dividing
it into a number of smaller bands.

What is Foundation Profile
The Foundation Profile is a J2ME profile specification that builds on CDC. It adds additional classes and interfaces to the
CDC APIs but does not go so far as to specify user interface APIs, persistent storage, or application life cycle. Other J2ME
profiles build on the CDC/Foundation combination: for example, the Personal Profile and the RMI Profile both build on the
Foundation Profile.

What is Generic Connection Framework
The Generic Connection Framework (GCF) makes it easy for wireless devices to make network connections. It is part of CLDC and
CDC and resides in the javax.microedition.io package.

What is GPRS
The General Packet Radio System (GPRS) is the next generation of GSM. It will be the basis of 3G networks in Europe and
elsewhere.

What is GSM
The Global System for Mobile Communications (GSM) is a wireless network system that is widely used in Europe, Asia, and
Australia. GSM is used at three different frequencies: GSM900 and GSM1800 are used in Europe, Asia, and Australia, while
GSM1900 is deployed in North America and other parts of the world.
What is HLR
The Home Location Register (HLR) is a database for permanent storage of subscriber data and service profiles.

What is HTTPS
Hyper Text Transfer Protocol Secure sockets (HTTPS) is a protocol for transmission of encrypted hypertext over Secure Sockets
Layer.

What is i-appli
Sometimes called "Java for i-mode", i-appli is a Java environment based on CLDC. It is used on handsets in NTT DoCoMo's
i-mode service. While i-appli is similar to MIDP, it was developed before the MIDP specification was finished and the two
APIs are incompatible.

What is IDE
An Integrated Development Environment (IDE) provides a programming environment as a single application. IDEs typically bundle
a compiler, debugger, and GUI builder tog ether. Forte for Java is Sun's Java IDE.

What is iDEN
The Integrated Dispatch Enhanced Network (iDEN) is a wireless network system developed by Motorola. Various carriers support
iDEN networks around the world: Nextel is one of the largest carriers, with networks covering North and South America.

What is i-mode
A standard used by Japanese wireless devices to access cHTML (compact HTML) Web sites and display animated GIFs and other
multimedia content.

What is J2ME
Java 2, Micro Edition is a group of specifications and technologies that pertain to Java on small devices. The J2ME moniker
covers a wide range of devices, from pagers and mobile telephones through set-top boxes and car navigation systems. The J2ME
world is divided into configurations and profiles, specifications that describe a Java environment for a specific class of
device.

What is J2ME WTK
The J2ME Wireless Toolkit is a set of tools that provides developers with an emulation environment, documentation and
examples for developing Java applications for small devices. The J2ME WTK is based on the Connected Limited Device
Configuration (CLDC) and Mobile Information Device Profile (MIDP) reference implementations, and can be tightly integrated
with Forte for Java

What is Java Card
The Java Card specification allows Java technology to run on smart cards and other small devices. The Java Card API is
compatible with formal international standards, such as, ISO7816, and industry-specific standards, such as, Europay/Master
Card/Visa (EMV).

What is JavaHQ
JavaHQ is the Java platform control center on your Palm OS device.

What is JCP
The Java Community Process (JCP) an open organization of international Java developers and licensees who develop and revise
Java technology specifications, reference implementations, and technology compatibility kits through a formal process.

What is JDBC for CDC/FP
The JDBC Optional Package for CDC/Foundation Profile (JDBCOP for CDC/FP) is an API that enables mobile Java applications to
communicate with relational database servers using a subset of J2SE's Java Database Connectivity. This optional package is a
strict subset of JDBC 3.0 that excludes some of JDBC's advanced and server-oriented features, such as pooled connections and
array types. It's meant for use with the Foundation Profile or its supersets.

What is JSR
Java Specification Request (JSR) is the actual description of proposed and final specifications for the Java platform. JSRs
are reviewed by the JCP and the public before a final release of a specification is made.

What is KittyHawk
KittyHawk is a set of APIs used by LG Telecom on its IBook and p520 devices. KittyHawk is based on CLDC. It is conceptually
similar to MIDP but the two APIs are incompatible.

What is KJava
KJava is an outdated term for J2ME. It comes from an early package of Java software for PalmOS, released at the 2000 JavaOne
show. The classes for that release were packaged in the com.sun.kjava package.

What is kSOAP
kSOAP is a SOAP API suitable for the J2ME, based on kXML.

What is kXML
The kXML project provides a small footprint XML parser that can be used with J2ME.

What is KVM
The KVM is a compact Java virtual machine (JVM) that is designed for small devices. It supports a subset of the features of
the JVM. For example, the KVM does not support floating-point operations and object finalization. The CLDC specifies use of
the KVM. According to folklore, the 'K' in KVM stands for kilobyte, signifying that the KVM runs in kilobytes of memory as
opposed to megabytes.

What is LAN
A Local Area Network (LAN) is a group of devices connected with various communications technologies in a small geographic
area. Ethernet is the most widely-used LAN technology. Communication on a LAN can either be with Peer-to-Peer devices or
Client-Server devices.

What is LCDUI
LCDUI is a shorthand way of referring to the MIDP user interface APIs, contained in the javax.microedition.lcdui package.
Strictly speaking, LCDUI stands for Liquid Crystal Display User Interface. It's a user interface toolkit for small device
screens which are commonly LCD screens.

What is MExE
The Mobile Execution Environment (MExE) is a specification created by the 3GPP which details an applicatio n environment for
next generation mobile devices. MExE consists of a variety of technologies including WAP, J2ME, CLDC and MIDP.

What is MIDlet
A MIDlet is an application written for MIDP. MIDlet applications are subclasses of the javax.microedition.midlet.MIDlet class
that is defined by MIDP.

What is MIDlet suite
MIDlets are packaged and distributed as MIDlet suites. A MIDlet suite can contain one or more MIDlets. The MIDlet suite
consists of two files, an application descriptor file with a .jad extension and an archive file with a .jar file. The
descriptor lists the archive file name, the names and class names for each MIDlet in the suite, and other information. The
archive file contains the MIDlet classes and resource files.

What is MIDP
The Mobile Information Device Profile (MIDP) is a specification for a J2ME profile. It is layered on top of CLDC and adds
APIs for application life cycle, user interface, networking, and persistent storage.

What is MIDP-NG
The Next Generation MIDP specification is currently under development by the Java Community Process. Planned improvements
include XML parsing and cryptographic support.

What is Mobitex
Mobitex is a packet-switched, narrowband PCS network, designed for wide-area wireless data communications. It was developed
in 1984 by Eritel, an Ericsson subsidiary, a nd there are now over 30 Mobitex networks in operation worldwide.

What is Modulation
Modulation is the method by which a high-frequency digital signal is grafted onto a lower-frequency analog wave, so that
digital packets are able to ride piggyback on the analog airwave.

What is MSC
A Mobile Switching Center (MSC) is a unit within a cellular phone network that automatically coordinates and switches calls
in a given cell. It monitors each caller's signal strength, and when a signal begins to fade, it hands off the call to
another MSC that's better positioned to manage the call.

What is Obfuscation
Obfuscation is a technique used to complicate code. Obfuscation makes code harder to understand when it is de-compiled, but
it typically has no affect on the functionality of the code. Obfuscation programs can be used to protect Java programs by
making them harder to reverse-engineer.

What is optional package
An optional package is a set of J2ME APIs providing services in a specific area, such as database access or multimedia.
Unlike a profile, it does not define a complete application environment, but rather is used in conjunction with a
configuration or a profile. It extends the runtime environment to support device capabilities that are not universal enough
to be defined as part of a profile or that need to be shared by different profiles. J2ME RMI and the Mobile Media RMI are
examples of optional packages.

What is OTA
Over The Air (OTA) refers to any wireless networking technology.

What is PCS
Personal Communications Service (PCS) is a suite of second-generation, digitally modulated mobile-communications interfaces
that includes TDMA, CDMA, and GSM. PCS serves as an umbrella term for second-generation wireless technologies operating in
the 1900MHz range

What is PDAP
The Personal Digital Assistant Profile (PDAP) is a J2ME profile specification designed for small platforms such as PalmOS
devices. You can think of PDAs as being larger than mobile phones but smaller than set-top boxes. PDAP is built on top of
CLDC and will specify user interface and persistent storage APIs. PDAP is currently being developed using the Java Community
Process (JCP).

What is PDC
Personal Digital Cellular (PDC) is a Japanese standard for wireless communications.

What is PDCP
Parallel and Distributed Computing Practices (PDCP) are often used to describe computer systems that are spread over many
devices on a network (wired or wireless) where many nodes process data simultaneously.

What is Personal Profile
The Personal Profile is a J2ME profile specification. Layered on the Foundation Profile and CDC, the Personal Profile will be
the next generation of PersonalJava technology. The specification is currently in development under the Java Community
Process (JCP).

What is PersonalJava
PersonalJava is a Java environment based on the Java virtual machine1 (JVM) and a set of APIs similar to a JDK 1.1
environment. It includes the Touchable Look and Feel (also called Truffle), a graphic toolkit that is optimized for consumer
devices with a touch sensitive screen. PersonalJava will be included in J2ME in the upcoming Personal Profile, which is built
on CDC.

What is PNG
Portable Network Graphics (PNG) is an image format offering lossless compression and storage flexibility. The MIDP
specification requires implementations to recognize certain types of PNG images.

What is POSE
Palm OS Emulator (POSE).

What is PRC
Palm Resource Code (PRC) is the file format for Palm OS applications.

What is preverification
Due to memory and processing power available on a device, the verification process of classes are split into two processes.
The first process is the preverification which is off-device and done using the preverify tool. The second process is
verification which is done on-device.

What is profile
A profile is a set of APIs added to a configuration to support specific uses of a mobile device. Along with its underlying
configuration, a profile defines a complete, and usually self-contained, general-purpose application environment. Profiles
often, but not always, define APIs for user interface and persistence; the MIDP profile, based on the CLDC configuration,
fits this pattern. Profiles may be supersets or subsets of other profiles; the Personal Basis Profile is a subset of the
Personal Profile and a superset of the Foundation Profile. See also configuration, optional package.

What is Provisioning
In telecommunications terms, provisioning means to provide telecommunications services to a user. This includes providing all
necessary hardware, software, and wiring or transmission devices.

What is PSTN
The public service telephone network (PSTN) is the traditional, land-line based system for exchanging phone calls.

What is RMI
Remote method invocation (RMI) is a feature of J2SE that enables Java objects running in one virtual machine to invoke
methods of Java objects running in another virtual machine, seamlessly.

What is RMI OP
The RMI Optional Package (RMI OP) is a subset of J2SE 1.3's RMI functionality used in CDC-based profiles that incorporate the
Foundation Profile, such as the Personal Basis Profile and the Personal Profile. The RMIOP cannot be used with CLDC-based
profiles because they lack object serialization and other important features found only in CDC-based profiles. RMIOP supports
most of the J2SE RMI functionality, including the Java Remote Method Protocol, marshalled objects, distributed garbage
collection, registry-based object lookup, and network class loading, but not HTTP tunneling or the Java 1.1 stub protocol.

What is RMI Profile
The RMI Profile is a J2ME profile specification designed to support Java's Remote Method Invocation (RMI) distributed object
system. Devices implementing the RMI Profile will be able to interoperate via RMI with other Java devices, including Java 2,
Standard Edition. The RMI Profile is based on the Foundation Profile, which in turn is based on CDC.

What is RMS
The Record Management System (RMS) is a simple record-oriented database that allows a MIDlet to persistently store
information and retrieve it later. Different MIDlets can also use the RMS to share data.

What is SDK
A Software Development Kit (SDK) is a set of tools used to develop applications for a particular platform. An SDK typically
contains a compiler, linker, and debugger. It may also contain libraries and documentation for APIs.

What is SIM
A Subscriber Identity Module (SIM) is a stripped-down smart card containing information about the identity of a cell-phone
subscriber, and subscriber authentication and service information. Because the SIM uniquely identifies the subscriber and is
portable among handsets, the user can move it from one kind of phone to another, facilitating international roaming.

What is SMS
Short Message Service (SMS) is a point-to-point service similar to paging for sending text messages of up to 160 characters
to mobile phones.

What is SOAP
The Simple Object Access Protocol (SOAP) is an XML- based protocol that allows objects of any type to communicated in a
distributed environment. SOAP is used in developing Web Services.

What is SSL
Secure Sockets Layer (SSL) is a socket protocol that encrypts data sent over the network and provides authentication for the
socket endpoints.

What is T9
T9 is a text input method for mobile phones and other small devices. It replaces the "multi-tap" input method by guessing the
word that you are trying to enter. T9 may be embedded in a device by the manufacturer. Note that even if the device supports
T9, the Java implementation may or may not use it. Check your documentation for details.

What is TDMA
Time Division Multiple Access (TDMA) is a second-generation modulation standard using bandwidth allocated in the 800 MHz, 900
MHz, and 1900MHz ranges.

What is Telematics
Telematics is a location-based service that routes event notification and control data over wireless networks to and from
mobile devices installed in automobiles. Telematics makes use of GPS technology to track vehicle latitude and longitude, and
displays maps in LED consoles mounted in dashboards. It connects to remote processing centers that turn provide server-side
Internet and voice services, as well as access to database resources.

What is Tomcat
Tomcat is a reference implementation of the Java servlet and JavaServer Pages (JSP) specifications. It is intended as a
platform for developing and testing servlets.

What is UDDI
Universal Description, Discovery, and Integration (UDDI) is an XML-based standard for describing, publishing, and finding Web
services. UDDI is a specification for a distributed registry of Web services.

What is UMTS
Developed by Nortel Networks, Universal Mobile Telecommunications Service (UMTS) is a standard that will provide cellular
users a consistent set of technologies no matter where they are located worldwide. UMTS utilizes W-CDMA technology.

What is VLR
The Visitor Location Register (VLR) is a database that contains temporary information about subscribers.

What is WAE
The Wireless Application Environment (WAE) provides a application framework for small devices. WAE leverages other
technologies such as WAP, WTP, and WSP.

What is WAP
Wireless Application Protocol (WAP) is a protocol for transmitting data between servers and clients (usually small wireless
devices like mobile phones). WAP is analogous to HTTP in the World Wide Web. Many mobile phones include WAP browser software
to allow users access to Internet WAP sites.

What is WAP Gateway
A WAP Gateway acts as a bridge allowing WAP devices to communicate with other networks (namely the Internet).

What is W-CDMA
Wideband Code-Division Multiple Access (W-CDMA), also known as IMT-2000, is a 3rd generation wireless technology. Supports
speeds up to 384Kbps on a wide-area network, or 2Mbps locally.

What is WDP
Wireless Datagram Protocol (WDP) works as the transport layer of WAP. WDP processes datagrams from upper layers to formats
required by different physical datapaths, bearers, that may be for example GSM SMS or CDMA Packet Data. WDP is adapted to the
bearers available in the device so upper layers don't need to care about the physical level.

What is WMA
The Wireless Messaging API (WMA) is a set of classes for sending and receiving Short Message Service messages. See also SMS.

What is WML
The Wireless Markup Language (WML) is a simple language used to create applications for small wireless devices like mobile
phones. WML is analogous to HTML in the World Wide Web.

What is WMLScript
WMLScript is a subset of the JavaScript scripting language designed as part of the WAP standard to provide a convenient
mechanism to access mobile phone's peripheral functions.

What is WSP
Wireless Session Protocol (WSP) implements session services of WAP. Sessions can be connection-oriented and connectionless
and they may be suspended and resumed at will.

What is WTLS
Wireless Transport Layer Security protocal (WTLS) does all cryptography oriented features of WAP. WTLS handles
encryption/decryption, user authentication and data integrity. WTLS is based on the fixed network Transport Layer Security
protocal (TLS), formerly known as Secure Sockets Layer (SSL).

What is WTP
Wireless Transaction Protocol (WTP) is WAP's transaction protocol that works between the session protocol WSP and security
protocol WTLS. WTP chops data packets into lower level datagrams and concatenates received datagrams into useful data. WTP
also keeps track of received and sent packets and does re-transmissions and acknowledgment sending when needed.

Networking Interview Questions

1. What are 10Base2, 10Base5 and 10BaseT Ethernet LANs
10Base2—An Ethernet term meaning a maximum transfer rate of 10 Megabits per second that uses baseband
signaling, with a contiguous cable segment length of 100
meters and a maximum of 2 segments.
10Base5—An Ethernet term meaning a maximum transfer rate of 10 Megabits per second that uses baseband
signaling, with 5 continuous segments not exceeding 100
meters per segment.
10BaseT—An Ethernet term meaning a maximum transfer rate of 10 Megabits per second that uses baseband
signaling and twisted pair cabling.

2. Explain the difference between an unspecified passive open and a fully specified passive open
An unspecified passive open has the server waiting for a connection request from a client. A fully specified passive
open has the server waiting for a connection from a
specific client.

3. Explain the function of Transmission Control Block
A TCB is a complex data structure that contains a considerable amount of information about each connection.

4. Explain a Management Information Base (MIB)
A Management Information Base is part of every SNMP-managed device. Each SNMP agent has the MIB database that
contains information about the device's status, its
performance, connections, and configuration. The MIB is queried by SNMP.

5. Explain anonymous FTP and why would you use it
Anonymous FTP enables users to connect to a host without using a valid login and password. Usually, anonymous FTP
uses a login called anonymous or guest, with the
password usually requesting the user's ID for tracking purposes only. Anonymous FTP is used to enable a large number
of users to access files on the host without having
to go to the trouble of setting up logins for them all. Anonymous FTP systems usually have strict controls over the areas
an anonymous user can access.

6. Explain a pseudo tty
A pseudo tty or false terminal enables external machines to connect through Telnet or rlogin. Without a pseudo tty, no
connection can take place.

7. Explain REX
What advantage does REX offer other similar utilities

8. What does the Mount protocol do
The Mount protocol returns a file handle and the name of the file system in which a requested file resides. The message
is sent to the client from the server after reception
of a client's request.

9. Explain External Data Representation
External Data Representation is a method of encoding data within an RPC message, used to ensure that the data is not
system-dependent.

10. Explain the Network Time Protocol ?

11. BOOTP helps a diskless workstation boot. How does it get a message to the network looking for its IP address and the location of its operating system boot files
BOOTP sends a UDP message with a subnetwork broadcast address and waits for a reply from a server that gives it the IP address. The same message might contain the name of the machine that has the boot files on it. If the boot image location is not specified, the workstation sends another UDP message to query the server.


12. Explain a DNS resource record
A resource record is an entry in a name server's database. There are several types of resource records used, including name-to-address resolution information. Resource records are maintained as ASCII files.

13. What protocol is used by DNS name servers
DNS uses UDP for communication between servers. It is a better choice than TCP because of the improved speed a connectionless protocol offers. Of course, transmission reliability suffers with UDP.

14. Explain the difference between interior and exterior neighbor gateways
Interior gateways connect LANs of one organization, whereas exterior gateways connect the organization to the outside world.

15. Explain the HELLO protocol used for
The HELLO protocol uses time instead of distance to determine optimal routing. It is an alternative to the Routing Information Protocol.

16. What are the advantages and disadvantages of the three types of routing tables
The three types of routing tables are fixed, dynamic, and fixed central. The fixed table must be manually modified every time there is a change. A dynamic table changes its information based on network traffic, reducing the amount of manual maintenance. A fixed central table lets a manager modify only one table, which is then read by other devices. The fixed central table reduces the need to update each machine's table, as with the fixed table. Usually a dynamic table causes the fewest problems for a network
administrator, although the table's contents can change without the administrator being aware of the change.

17. Explain a TCP connection table

18. Explain source route
It is a sequence of IP addresses identifying the route a datagram must follow. A source route may
optionally be included in an IP datagram header.

19. Explain RIP (Routing Information Protocol)
It is a simple protocol used to exchange information between the routers.

20. Explain SLIP (Serial Line Interface Protocol)
It is a very simple protocol used for transmission of IP datagrams across a serial line.

21. Explain Proxy ARP
It is using a router to answer ARP requests. This will be done when the originating host believes that a destination is local, when in fact is lies beyond router.

22. Explain OSPF
It is an Internet routing protocol that scales well, can route traffic along multiple paths, and uses knowledge of an Internet's topology to make accurate routing decisions.

23. Explain Kerberos
It is an authentication service developed at the Massachusetts Institute of Technology. Kerberos uses encryption to prevent intruders from discovering passwords and gaining unauthorized access to files.

24. Explain a Multi-homed Host
It is a host that has a multiple network interfaces and that requires multiple IP addresses is called as a Multi-homed Host.

25. Explain NVT (Network Virtual Terminal)
It is a set of rules defining a very simple virtual terminal interaction. The NVT is used in the start of a Telnet session.

26. Explain Gateway-to-Gateway protocol
It is a protocol formerly used to exchange routing information between Internet core routers.

27. Explain BGP (Border Gateway Protocol)
It is a protocol used to advertise the set of networks that can be reached with in an autonomous system. BGP enables this information to be shared with the autonomous system. This is newer than EGP (Exterior Gateway Protocol).

28. Explain autonomous system
It is a collection of routers under the control of a single administrative authority and that uses a common Interior Gateway Protocol.

29. Explain EGP (Exterior Gateway Protocol)
It is the protocol the routers in neighboring autonomous systems use to identify the set of networks that can be reached
within or via each autonomous system.

30. Explain IGP (Interior Gateway Protocol)
It is any routing protocol used within an autonomous system.

31. Explain Mail Gateway
It is a system that performs a protocol translation between different electronic mail delivery protocols.

32. Explain wide-mouth frog
Wide-mouth frog is the simplest known key distribution center (KDC) authentication protocol.

33. What are Digrams and Trigrams
The most common two letter combinations are called as digrams. e.g. th, in, er, re and an. The most common three letter combinations are called as trigrams. e.g. the, ing, and, and ion.

34. Explain silly window syndrome
It is a problem that can ruin TCP performance. This problem occurs when data are passed to the sending TCP entity in large blocks, but an interactive application on the receiving side reads 1 byte at a time.

35. Explain region
When hierarchical routing is used, the routers are divided into what we call regions, with each router knowing all the details about how to route packets to destinations within its own region, but knowing nothing about the internal structure of other regions.

36. Explain multicast routing
Sending a message to a group is called multicasting, and its routing algorithm is called multicast routing.

37. Explain traffic shaping
One of the main causes of congestion is that traffic is often busy. If hosts could be made to transmit at a uniform rate, congestion would be less common. Another open loop method to help manage congestion is forcing the packet to be transmitted at a more predictable rate. This is called traffic shaping.

38. Explain packet filter
Packet filter is a standard router equipped with some extra functionality. The extra functionality allows every incoming or outgoing packet to be inspected. Packets meeting some criterion are forwarded normally. Those that fail the test are dropped.

39. Explain virtual path
Along any transmission path from a given source to a given destination, a group of virtual circuits can be grouped together into what is called path.

40. Explain virtual channel
Virtual channel is normally a connection from one source to one destination, although multicast connections are also permitted. The other name for virtual channel is virtual circuit.

41. Explain logical link control
One of two sublayers of the data link layer of OSI reference model, as defined by the IEEE 802 standard. This sublayer is responsible for maintaining the link between computers when they are sending data across the physical network connection.

42. Why should you care about the OSI Reference Model
It provides a framework for discussing network operations and design.

43. Explain the difference between routable and non- routable protocols
Routable protocols can work with a router and can be used to build large networks. Non-Routable protocols are designed to work on small, local networks and cannot be used with a router
44. Explain MAU
In token Ring , hub is called Multistation Access Unit(MAU).

45. Explain 5-4-3 rule
In a Ethernet network, between any two points on the network, there can be no more than five network segments or four repeaters, and of those five segments only three of segments can be populated.

46. Explain the difference between TFTP and FTP application layer protocols
The Trivial File Transfer Protocol (TFTP) allows a local host to obtain files from a remote host but does not provide reliability or security. It uses the fundamental packet delivery services offered by UDP.
The File Transfer Protocol (FTP) is the standard mechanism provided by TCP / IP for copying a file from one host to another. It uses the services offered by TCP and so is reliable and secure. It establishes two connections (virtual circuits) between the hosts, one for data transfer and another for control information.

47. Explain the range of addresses in the classes of internet addresses
Class A 0.0.0.0 - 127.255.255.255
Class B 128.0.0.0 - 191.255.255.255
Class C 192.0.0.0 - 223.255.255.255
Class D 224.0.0.0 - 239.255.255.255
Class E 240.0.0.0 - 247.255.255.255

48. Explain the minimum and maximum length of the header in the TCP segment and IP datagram
The header should have a minimum length of 20 bytes and can have a maximum length of 60 bytes.

49. Explain difference between ARP and RARP
The address resolution protocol (ARP) is used to associate the 32 bit IP address with the 48 bit physical address, used by a host or a router to find the physical address of another host on its network by sending a ARP query packet that includes the IP address of the receiver. The reverse address resolution protocol (RARP) allows a host to discover its Internet address when it knows only its physical address.

50. Explain ICMP
ICMP is Internet Control Message Protocol, a network layer protocol of the TCP/IP suite used by hosts and gateways to send notification of datagram problems back to the sender. It uses the echo test / reply to test whether a destination is reachable and responding. It also handles both control and error messages.

51. What are the data units at different layers of the TCP / IP protocol suite
The data unit created at the application layer is called a message, at the transport layer the data unit created is called either a segment or an user datagram, at the network layer the data unit created is called the datagram, at the data link layer the datagram is encapsulated in to a frame and
finally transmitted as signals along the transmission media.

52. Explain Project 802
It is a project started by IEEE to set standards that enable intercommunication between equipment from a variety of manufacturers. It is a way for specifying functions of the physical layer, the data link layer and to some extent the network layer to allow for interconnectivity of major LAN protocols.
It consists of the following:
802.1 is an internetworking standard for compatibility of different LANs and MANs across protocols.
802.2 Logical link control (LLC) is the upper sublayer of the data link layer which is non-architecture-specific, that is remains the same for all IEEE-defined LANs.
Media access control (MAC) is the lower sublayer of the data link layer that contains some distinct modules each carrying proprietary information specific to the LAN product being used. The modules are Ethernet LAN (802.3), Token ring LAN (802.4), Token bus LAN (802.5).
802.6 is distributed queue dual bus (DQDB) designed to be used in MANs.

53. Explain Bandwidth
Every line has an upper limit and a lower limit on the frequency of signals it can carry. This limited range is called the bandwidth.

54. Difference between bit rate and baud rate.
Bit rate is the number of bits transmitted during one second whereas baud rate refers to the number of signal units per second that are required to represent those bits. baud rate = bit rate / N where N is no-of-bits represented by each signal shift.

55. Explain MAC address
The address for a device as it is identified at the Media Access Control (MAC) layer in the network architecture. MAC address is usually stored in ROM on the network adapter card and is unique.

56. Explain attenuation
The degeneration of a signal over distance on a network cable is called attenuation.

57. Explain cladding
A layer of a glass surrounding the center fiber of glass inside a fiber-optic cable.

58. Explain RAID
A method for providing fault tolerance by using multiple hard disk drives.

59. Explain NETBIOS and NETBEUI
NETBIOS is a programming interface that allows I/O requests to be sent to and received from a remote computer and it hides the networking hardware from applications. NETBEUI is NetBIOS extended user interface. A transport protocol designed by microsoft and IBM for the use on small subnets.

60. Explain redirector
Redirector is software that intercepts file or prints I/O requests and translates them into network requests. This comes under presentation layer.

61. Explain Beaconing
The process that allows a network to self-repair networks problems. The stations on the network notify the other stations on the ring when they are not receiving the transmissions. Beaconing is used in Token ring and FDDI networks.

62. Explain terminal emulation, in which layer it comes
Telnet is also called as terminal emulation. It belongs to application layer.

63. Explain frame relay, in which layer it comes
Frame relay is a packet switching technology. It will operate in the data link layer.

64. What do you meant by "triple X" in Networks
The function of PAD (Packet Assembler Disassembler) is described in a document known as X.3. The standard protocol has been defined between the terminal and the PAD, called X.28; another standard protocol exists between hte PAD and the network, called X.29. Together, these three recommendations are often called "triple X"

65. Explain SAP
Series of interface points that allow other computers to communicate with the other layers of network protocol stack.

66. Explain subnet
A generic term for section of a large networks usually separated by a bridge or router.

67. Explain Brouter
Hybrid devices that combine the features of both bridges and routers.

68. How Gateway is different from Routers
A gateway operates at the upper levels of the OSI model and translates information between two completely different network architectures or data formats.

69. What are the different type of networking / internetworking devices
Repeater: Also called a regenerator, it is an electronic device that operates only at physical layer. It receives the signal in the network before it becomes weak, regenerates the original bit pattern and puts the refreshed copy back in to the link.
Bridges: These operate both in the physical and data link layers of LANs of same type. They divide a larger network in to smaller segments. They contain logic that allow them to keep the traffic for each segment separate and thus are repeaters that relay a frame only the side of the segment containing the intended recipent and control congestion.
Routers: They relay packets among multiple interconnected networks (i.e. LANs of different type). They operate in the physical, data link and network layers. They contain software that enable them to determine which of the several possible paths is the best for a particular transmission.
Gateways:
They relay packets among networks that have different protocols (e.g. between a LAN and a WAN). They accept a packet formatted for one protocol and convert it to a packet formatted for another protocol before forwarding it. They operate in all seven layers of the OSI model.

70. Explain mesh network
A network in which there are multiple network links between computers to provide multiple paths for data to travel.

71. Explain passive topology
When the computers on the network simply listen and receive the signal, they are referred to as passive because they don’t amplify the signal in any way. Example for passive topology - linear bus.

72. What are the important topologies for networks
BUS topology:
In this each computer is directly connected to primary network cable in a single line.
Advantages:
Inexpensive, easy to install, simple to understand, easy to extend.
STAR topology:
In this all computers are connected using a central hub.
Advantages:
Can be inexpensive, easy to install and reconfigure and easy to trouble shoot physical problems.
RING topology:
In this all computers are connected in loop.
Advantages:
All computers have equal access to network media, installation can be simple, and signal does not degrade as much as
in other topologies because each computer
regenerates it.

73. What are major types of networks and explain
Server-based network
Peer-to-peer network
Peer-to-peer network, computers can act as both servers sharing resources and as clients using the resources.
Server-based networks provide centralized control of network resources and rely on server computers to provide security and network administration

74. Explain Protocol Data Unit
The data unit in the LLC level is called the protocol data unit (PDU). The PDU contains of four fields a destination service access point (DSAP), a source service access point (SSAP), a control field and an information field. DSAP, SSAP are addresses used by the LLC to identify the protocol stacks on the receiving and sending machines that are generating and using the data. The control field specifies whether the PDU frame is a information frame (I - frame) or a supervisory frame (S - frame) or a
unnumbered frame (U - frame).

75. Explain difference between baseband and broadband transmission
In a baseband transmission, the entire bandwidth of the cable is consumed by a single signal. In broadband transmission, signals are sent on multiple frequencies, allowing multiple signals to be sent simultaneously.

76. What are the possible ways of data exchange
(i) Simplex (ii) Half-duplex (iii) Full-duplex.

77. What are the types of Transmission media
Signals are usually transmitted over some transmission media that are broadly classified in to two categories.
Guided Media:
These are those that provide a conduit from one device to another that include twisted-pair, coaxial cable and fiber-optic cable. A signal traveling along any of these media is directed and is contained by the physical limits of the medium. Twisted-pair and coaxial cable use metallic that accept
and transport signals in the form of electrical current. Optical fiber is a glass or plastic cable that accepts and transports signals in the form of light.
Unguided Media:
This is the wireless media that transport electromagnetic waves without using a physical conductor. Signals are broadcast either through air. This is done through radio communication, satellite communication and cellular telephony.

78. Explain point-to-point protocol
A communications protocol used to connect computers to remote networking services including Internet service providers.

79. What are the two types of transmission technology available
(i) Broadcast and (ii) point-to-point

80. Difference between the communication and transmission.
Transmission is a physical movement of information and concern issues like bit polarity, synchronization, clock etc. Communication means the meaning full exchange of information between two communication media.