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.