Dell Sample Technical Placement Paper

Embed Size (px)

Citation preview

  • 7/28/2019 Dell Sample Technical Placement Paper

    1/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Dell Technical Latest Sample Placement Paper1. How can you avoid including a header more than once?

    ANS: One easy technique to avoid multiple inclusions of the same

    header is to use the #ifndef and #define

    Preprocessor directives. When you create a header for your program,

    you can #define a symbolic name that is unique to that header. You can

    use the conditional preprocessor directive named

    #ifndef to check whether that symbolic name has already been

    assigned. If it is assigned, you should not include the header, because it

    has already been preprocessed. If it is not defined, you should define itto avoid any further inclusions of the header. The following header

    illustrates this technique:

    #ifndef _FILENAME_H

    #define _FILENAME_H

    #define VER_NUM 1.00.00

    #define REL_DATE 08/01/94

    #if _ _WINDOWS_ _

    #define OS_VER WINDOWS#else

    #define OS_VER DOS

    #endif

    #endif

    When the preprocessor encounters this header, it first checks to see

    whether _FILENAME_H has been defined. If it hasnt been defined, the

    header has not been included yet, and the

    _FILENAME_H symbolic name is defined. Then, the rest of the header isparsed until the last #endif is encountered, signaling the end of the

    conditional #ifndef _FILENAME_H statement. Substitute the actual

    name of the header file for FILENAME in the preceding example to

    make it applicable for your programs.

  • 7/28/2019 Dell Sample Technical Placement Paper

    2/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    2.What are the advantages of the functions?

    ANS: - Debugging is easier

    - It is easier to understand the logic involved in the program- Testing is easier

    - Recursive call is possible

    - Irrelevant details in the user point of view are hidden in functions

    - Functions are helpful in generalizing the program.

    3.What is an accessor?

    ANS: An accessor is a class operation that does not modify the state of

    an object. The accessor functions need to be declared as const

    operations.

    4.What is the difference between NULL and NUL?

    ANS: NULL is a macro defined in for the null pointer.

    NUL is the name of the first character in the ASCII character set. It

    corresponds to a zero value. Theres no standard macro NUL in C, but

    some people like to define it.

    The digit 0 corresponds to a value of 80, decimal. Dont confuse the

    digit 0 with the value of (NUL)! NULL can be defined as ((void)0), NULas .

    5.Differentiate between a template class and class template.

    ANS: Template class:

    A generic definition or a parameterized class not instantiated until the

    client provides the needed information. Its jargon for plain templates.

    Class template:

    A class template specifies how individual classes can be constructed

    much like the way a class specifies how individual objects can be

    constructed. Its jargon for plain classes.

    6.Are pointers integers?

    ANS: No, pointers are not integers. A pointer is an address. It is merely

    a positive number and not an integer.

  • 7/28/2019 Dell Sample Technical Placement Paper

    3/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    7. Can you add pointers together? Why would you?

    ANS: No, you cant add pointers together. If you live at 1332 Lakeview

    Drive, and your neighbor lives at 1364 Lakeview, whats 13321364?Its a number, but it doesnt mean anything. If you try to perform this

    type of calculation with pointers in a C program, your compiler will

    complain.

    The only time the addition of pointers might come up is if you try to

    add a pointer and the difference of two pointers.

    8.When does a name clash occur?

    ANS: A name clash occurs when a name is defined in more than one

    place. For example. Two different class libraries could give two differentclasses the same name. If you try to use many class libraries at the

    same time, there is a fair chance that you will be unable to compile or

    link the program because of name clashes.

    9.How do you redirect a standard stream?

    ANS: Most operating systems, including DOS, provide a means to

    redirect program input and output to and from different devices. This

    means that rather than your program output (stdout) going to thescreen; it can be redirected to a file or printer port. Similarly, your

    programs input (stdin) can come from a file rather than the keyboard.

    In DOS, this task is accomplished using the redirection characters, < and

    >. For example, if you wanted a program named PRINTIT.EXE to receive

    its input (stdin) from a file named STRINGS.TXT, you would enter the

    following command at the DOS prompt:

    C :> PRINTIT

  • 7/28/2019 Dell Sample Technical Placement Paper

    4/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    C :> REDIR > PRN

    Alternatively, you might want to redirect the programs output to a file,

    as the following example shows:

    C :> REDIR > REDIR.OUT

    In this example, all output that would have normally appeared on-

    screen will be written to the file

    REDIR.OUT.

    Redirection of standard streams does not always have to occur at the

    operating system. You can redirect a standard stream from within your

    program by using the standard C library function named freopen (). For

    example, if you wanted to redirect the stdout standard stream withinyour program to a file named OUTPUT.TXT, you would implement the

    freopen() function as shown here:

    ... freopen(output.txt, w, stdout);

    Now, every output statement (printf (), puts (), putch (), and so on) in

    your program will appear in the file OUTPUT.TXT.

    10.Define namespace.

    ANS: It is a feature in C++ to minimize name collisions in the global

    name space. This namespace keyword assigns a distinct name to alibrary that allows other libraries to use the same identifier names

    without creating any name collisions. Furthermore, the compiler uses

    the namespace signature for differentiating the definitions.

    11.What is the use of using declaration?

    ANS: A using declaration makes it possible to use a name from a

    namespace without the scope operator.

    12.What is the easiest searching method to use?

    ANS: Just as qsort () was the easiest sorting method, because it is part

    of the standard library, bsearch () is the easiest searching method to

    use. If the given array is in the sorted order bsearch () is the best

    method.

  • 7/28/2019 Dell Sample Technical Placement Paper

    5/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Following is the prototype for bsearch():

    void *bsearch(const void *key, const void *buf, size_t num, size_t size,

    int (*comp)( const void *, const void*));

    Another simple searching method is a linear search. A linear search is

    not as fast as bsearch () for searching among a large number of items,

    but it is adequate for many purposes. A linear search might be the only

    method available, if the data isnt sorted or cant be accessed

    randomly. A linear search starts at the beginning and sequentially

    compares the key to each element in the data set.

    13.Is it better to use a pointer to navigate an array of values, or is it

    better to use a subscripted array name?ANS: Its easier for a C compiler to generate good code for pointers

    than for subscripts.

    14.List out some of the OODBMS available.

    ANS: GEMSTONE/OPAL of Gemstone systems.

    ONTOS of Ontos.

    Objectivity of Objectivity Inc.

    Versant of Versant object technology.

    Object store of Object Design.

    ARDENT of ARDENT software.

    POET of POET software.

    15.Can math operations be performed on a void pointer?

    ANS: No. Pointer addition and subtraction are based on advancing the

    pointer by a number of elements. By definition, if you have a void

    pointer, you dont know what its pointing to, so you dont know the

    size of what its pointing to. If you want pointer arithmetic to work onraw addresses, use character pointers.

    16.List out some of the object-oriented methodologies.

    ANS: Object Oriented Development (OOD) (Booch 1991, 1994).

    Object Oriented Analysis and Design (OOA/D) (Coad and Yourdon

  • 7/28/2019 Dell Sample Technical Placement Paper

    6/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    1991).

    Object Modeling Techniques (OMT) (Rumbaugh 1991).

    Object Oriented Software Engineering (Objectory) (Jacobson 1992).

    Object Oriented Analysis (OOA) (Shlaer and Mellor 1992).

    The Fusion Method (Coleman 1991).

    17.Can the size of an array be declared at runtime?

    ANS: No. In an array declaration, the size must be known at compile

    time. You cant specify a size thats known only at runtime. For

    example, if i is a variable, you cant write code like this: char array*i+; /

    not valid C */

    Some languages provide this latitude. C doesnt. If it did, the stackwould be more complicated, function calls would be more expensive,

    and programs would run a lot slower. If you know that you have an

    array but you wont know until runtime how big it will be, declare a

    pointer to it and use malloc() or calloc() to allocate the array from the

    heap.

    18.What is a method?

    ANS: Method is a way of doing something, especially a systematic way;

    implies an orderly logical arrangement (usually in steps).

    19.What is indirection?

    ANS: If you declare a variable, its name is a direct reference to its value.

    If you have a pointer to a variable or any other object in memory, you

    have an indirect reference to its value.

    20.What is an incomplete type?

    ANS: Incomplete types refer to pointers in which there is non-

    availability of the implementation of the referenced location or it pointsto some location whose value is not available for modification.

    Example: int *i=0x400 // i points to address 400

    *i=0; //set the value of memory location pointed by i.

    Incomplete types are otherwise called uninitialized pointers.

  • 7/28/2019 Dell Sample Technical Placement Paper

    7/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    21.What is modular programming?

    ANS: If a program is large, it is subdivided into a number of smaller

    programs that are called modules or subprograms. If a complexproblem is solved using more modules, this approach is known as

    modular programming.

    22.What is a dangling pointer?

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

    23.How can you determine the maximum value that a numeric variable

    can hold? How reliable are floating-point comparisons?

    ANS: Floating-point numbers are the black art of computer

    programming. One reason why this is so is that there is no optimal way

    to represent an arbitrary number. The Institute of Electrical and

    Electronic Engineers (IEEE) has developed a standard for the

    representation of floating-point numbers, but you cannot guaranteethat every machine you use will conform to the standard.

    Even if your machine does conform to the standard, there are deeper

    issues. It can be shown mathematically that there are an infinite

    number of real numbers between any two numbers. For the computer

    to distinguish between two numbers, the bits that represent them must

    differ. To represent an infinite number of different bit patterns would

    take an infinite number of bits. Because the computer must represent a

    large range of numbers in a small number of bits (usually32 to 64 bits), it has to make approximate representations of most

    numbers. Because floating-point numbers are so tricky to deal with, its

    generally bad practice to compare a floating-point number for equality

    with anything. Inequalities are much safer.

  • 7/28/2019 Dell Sample Technical Placement Paper

    8/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    24.Difference between calloc and malloc?

    ANS: malloc: allocate n bytes

    calloc: allocate m times n bytes initialized to 0.25.How can you determine the maximum value that a numeric variable

    can hold?

    ANS: For integral types, on a machine that uses twos complement

    arithmetic (which is just about any machine youre likely to use), a

    signed type can hold numbers from 2(number of bits 1) to

    +2(number of bits 1) 1. An unsigned type can hold values from 0 to

    +2(number of bits) 1. For instance, a 16-bit signed integer can hold

    numbers from 2^15 (32768) to +2^15 1 (32767).26.How can you determine the maximum value that a numeric variable

    can hold? Which expression always return true? Which always return

    false?

    ANS: expression if (a=0) always return false

    expression if (a=1) always return true

    27.How many levels deep can include files be nested?

    ANS: Even though there is no limit to the number of levels of nested

    include files you can have, your compiler might run out of stack space

    while trying to include an inordinately high number of files. This

    number varies according to your hardware configuration and possibly

    your compiler.

    28.How can I make sure that my program is the only one accessing a

    file?

    ANS: By using the sopen () function you can open a file in shared mode

    and explicitly deny reading and writing permissions to any otherprogram but yours. This task is accomplished by using the SH_DENYWR

    shared flag to denote that your program is going to deny any writing or

    reading attempts by other programs.

    For example, the following snippet of code shows a file being opened in

  • 7/28/2019 Dell Sample Technical Placement Paper

    9/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    shared mode, denying access to all other files:

    /* Note that the sopen() function is not ANSI compliant...*/ fileHandle =

    sopen(C:DATASETUP.DAT, O_RDWR, SH_DENYWR);

    By issuing this statement, all other programs are denied access to the

    SETUP.DAT file. If another program were to try to open SETUP.DAT for

    reading or writing, it would receive an EACCES error code, denoting

    that access is denied to the file.

    29.What are the major data structures used in the following areas:

    RDBMS, Network data model & Hierarchical data model?

    ANS: 1. RDBMS Array (i.e. Array of structures)

    2. Network data model Graph3. Hierarchical data model Trees.

    30.How can I sort a linked list?

    ANS: Both the merge sort and the radix sort are good sorting algorithms

    to use for linked lists.

    31.What does each entry in the Link List called?

    ANS: Each entry in a linked list is called a node. Think of a node as an

    entry that has three sub entries. One sub entry contains the data, which

    may be one attribute or many attributes. Another points to the

    previous node, and the last points to the next node. When you enter a

    new item on a linked list, you allocate the new node and then set the

    pointers to previous and next nodes.

    32.Is it better to use malloc () or calloc ()?

    ANS: Both the malloc () and the calloc () functions are used to allocate

    dynamic memory. Each operates slightly different from the other.

    malloc() takes a size and returns a pointer to a chunk of memory atleast that big:

    void *malloc( size_t size );

    calloc() takes a number of elements, and the size of each, and returns a

    pointer to a chunk of memory at least big enough to hold them all:

  • 7/28/2019 Dell Sample Technical Placement Paper

    10/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    void *calloc( size_t numElements, size_t sizeOfElement );

    Theres one major difference and one minor difference between the

    two functions. The major difference is that malloc () doesnt initialize

    the allocated memory. The first time malloc () gives you a particular

    chunk of memory, the memory might be full of zeros. If memory has

    been allocated, freed, and reallocated, it probably has whatever junk

    was left in it. That means, unfortunately, that a program might run in

    simple cases (when memory is never reallocated) but break when used

    harder (and when memory is reused). Calloc () fills the allocated

    memory with all zero bits. That means that anything there youre going

    to use as a char or an int of any length, signed or unsigned, isguaranteed to be zero. Anything youre going to use as a pointer is set

    to all zero bits. Thats usually a null pointer, but its not guaranteed.

    Anything youre going to use

    as a float or double is set to all zero bits; thats a floating-point zero on

    some types of machines, but not on all.

    The minor difference between the two is that calloc () returns an array

    of objects; malloc () returns one object. Some people use calloc () to

    make clear that they want an array.33.What is significance of?

    ANS: The symbol tells the computer that you are declaring a

    pointer. Actually it depends on context.

    In a statement like int ptr; the tells that you are declaring a pointer.

    In a statement like int i = *ptr; it tells that you want to assign value

    pointed to by ptr to variable i.

    The symbol is also called as Indirection Operator/ Dereferencing

    Operator. Why do we Use a Multidimensional Array?

    A multidimensional array can be useful to organize subgroups of data

    within an array. In addition to organizing data stored in elements of an

    array, a multidimensional array can store memory addresses of data in

    a pointer array and an array of pointers.

  • 7/28/2019 Dell Sample Technical Placement Paper

    11/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Multidimensional arrays are used to store information in a matrix form.

    E.g. a railway timetable, schedule cannot be stored as a single

    dimensional array. One can use a 3-D array for storing height, width

    and length of each room on each floor of a building.

    34.What is an lvalue?

    ANS: An lvalue is an expression to which a value can be assigned. The

    lvalue expression is located on the left side of an assignment statement,

    whereas an rvalue is located on the right side of an assignment

    statement. Each assignment statement must have an lvalue and an

    rvalue. The lvalue expression must reference a storable variable in

    memory. It cannot be a constant.35.What is the difference between ARRAY and STACK?

    ANS: STACK follows LIFO. Thus the item that is first entered would be

    the last removed.

    In array the items can be entered or removed in any order. Basically

    each member access is done using index. No strict order is to be

    followed here to remove a particular element.

    36.What is the difference between a string and an array?

    ANS: An array is an array of anything. A string is a specific kind of an

    array with a well-known convention to determine its length.

    There are two kinds of programming languages: those in which a string

    is just an array of characters, and those in which its a special type. In C,

    a string is just an array of characters (type char), with one wrinkle: a C

    string always ends with a NUL character. The value of an array is the

    same as the address of (or a pointer to) the first element; so,

    frequently, a C string and a pointer to char are used to mean the samething. An array can be any length. If its passed to a function, theres no

    way the function can tell how long the array is supposed to be, unless

    some convention is used. The convention for strings is

    NUL termination; the last character is an ASCII NUL () character.

  • 7/28/2019 Dell Sample Technical Placement Paper

    12/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    37.What is an argument? Differentiate between formal arguments and

    actual arguments?

    ANS: An argument is an entity used to pass the data from calling

    function to the called function. Formal arguments are the arguments

    available in the function definition. They are preceded by their own

    data types. Actual arguments are available in the function call.

    38.What are advantages and disadvantages of external storage class?

    ANS: Advantages of external storage class

    1) Persistent storage of a variable retains the latest value

    2) The value is globally available

    Disadvantages of external storage class1) The storage for an external variable exists even when the variable is

    not needed

    2) The side effect may produce surprising output

    3) Modification of the program is difficult

    4) Generality of a program is affected.

    39.What is a void pointer?

    ANS: A void pointer is a C convention for a raw address. The compiler

    has no idea what type of object a void Pointer really points to. If you

    write

    int *ip;

    ip points to an int. If you write void *p;

    p doesnt point to a void!

    In C and C++, any time you need a void pointer, you can use another

    pointer type. For example, if you have a char*, you can pass it to a

    function that expects a void. You dont even need to cast it. In C (butnot in C++), you can use a void* any time you need any kind of pointer,

    without casting. (In C++, you need to cast it).

    A void pointer is used for working with raw memory or for passing a

    pointer to an unspecified type.

    Some C code operates on raw memory. When C was first invented,

  • 7/28/2019 Dell Sample Technical Placement Paper

    13/13

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    Visit www.latestoffcampus.com for placement papers, interview tips & job updates. Toget

    freeupdates tomail http://groups.google.com/group/latestoffcampus/subscribeLive updates on

    Facebook @ www.facebook.com/LatestOffCampus

    character pointers (char *) were used for that. Then people started

    getting confused about when a character pointer was a string, when it

    was a character array, and when it was raw memory.

    40.When should a type cast not be used?

    ANS: A type cast should not be used to override a const or volatile

    declaration. Overriding these type modifiers can cause the program to

    fail to run correctly.

    A type cast should not be used to turn a pointer to one type of

    structure or data type into another. In the rare events in which this

    action is beneficial, using a union to hold the values makes the

    programmers intentions clearer.