# Placement Papers - HCL

## Why HCL Placement Papers?

Learn and practice the placement papers of HCL and find out how much you score before you appear for your next interview and written test.

## Where can I get HCL Placement Papers with Answers?

IndiaBIX provides you lots of fully solved HCL Placement Papers with answers. You can easily solve all kind of placement test papers by practicing the exercises given below.

## How to solve HCL Placement Papers?

You can easily solve all kind of questions by practicing the following exercises.

### HCL TECHNOLOGIES PAPER - NOV 2003

Posted By : Prameelajagan Rating : +9, -2
Section II - C Programming
1. Which of the following about the following two declaration is true
i ) int *F()
ii) int (*F)()
Choice :
a) Both are identical
b) The first is a correct declaration and the second is wrong
c) The first declaraion is a function returning a pointer to an integer and the second is a pointer to function returning int
d) Both are different ways of declarin pointer to a function
Answer : c) The first de.

2. What are the values printed by the following program?
#define dprint(expr) printf(#expr "=%d
",expr)
main()
{
int x=7;
int y=3;
dprintf(x/y);
}
Choice:
a) #2 = 2 b) expr=2 c) x/y=2 d) none

3. Which of the following is true of the following program
main()
{
char *c;
int *p;
c =(char *)malloc(100);
ip=(int *)c;
free(ip);
}
ans: The code functions properly releasing all the memory allocated

4.output of the following.
main()
{
int i;
char *p;
i=0X89;
p=(char *)i;
p++;
printf("%x
",p);
}
ans:0X8A

5.which of the following is not a ANSI C language keyword?
ans:Function.

6. When an array is passed as parameter to a function, which of the
following statement is correct
choice:
a) The function can change values in the original array
b) In C parameters are passed by value. The funciton cannot change the
original value in the array
c) It results in compilation error when the function tries to access
the elements in the array
d) Results in a run time error when the funtion tries to access the
elements in the array

7. The type of the controlling expression of a switch statement
cannot be of the type
a) int b) char c) short d)float e) none

8.What is the value of the expression (3^6) + (a^a)?
a) 3 b) 5 c) 6 d) a+18 e) None

9. What is the value assigned to the variable X if b is 7 ?
X = b>8 ? b <<3 : b>4 ? b>>1:b;
a) 7 b) 28 c) 3 d) 14 e) None
ans: 3;

10. Which is the output produced by the following program
main()
{
int n=2;
printf("%d %d
", ++n, n*n);
}
a) 3,6 b) 3,4 c) 2,4 d) cannot determine

11. What is th output of the following program?
int x= 0x65;
main()
{
char x;
printf("%d
",x)
}
a) compilation error b) 'A' c) 65 d) unidentified

12. What is the output of the following program
main()
{
int a=10;
int b=6;

if(a=3)
b++;
printf("%d %d
",a,b++);
}
a) 10,6 b)10,7 c) 3,6 d) 3,7 e) none

13. What can be said of the following program?
main()
{
enum Months {JAN =1,FEB,MAR,APR};
Months X = JAN;
if(X==1)
{
printf("Jan is the first month");
}
}

a) Does not print anything
b) Prints : Jan is the first month
c) Generates compilation error
d) Results in runtime error

14. What is the output of the following program?
main()
{
char *src = "Hello World";
char dst;
strcpy(src,dst);
printf("%s",dst);
}
strcpy(char *dst,char *src)
{
while(*src) *dst++ = *src++;
}

a) "Hello World" b)"Hello" c)"World" d) NULL e) unidentified

15. What is the output of the following program?

main()
{
int l=6;
switch(l)
{ default : l+=2;
case 4: l=4;
case 5: l++;
break;
}
printf("%d",l);
}
a)8 b)6 c)5 d)4 e)none

16. What is the output of the following program?
main()
{
int x=20;
int y=10;
swap(x,y);
printf("%d %d",y,x+2);
}
swap(int x,int y)
{
int temp;
temp =x;
x=y;
y=temp;
}

a)10,20 b) 20,12 c) 22,10 d)10,22 e)none

17. What is the output of the following problem ?
#define INC(X) X++
main()
{
int X=4;
printf("%d",INC(X++));
}

a)4 b)5 c)6 d)compilation error e) runtime error

18. what can be said of the following

struct Node {
char *word;
int count;
struct Node left;
struct Node right;
}

a) Incorrect definition
b) structures cannot refer to other structure
c) Structures can refer to themselves. Hence the statement is OK
d) Structures can refer to maximum of one other structure

19. What is the size of the following union.
Assume that the size of int =2, size of float =4 and size of char =1.
Union Tag{
int a;
flaot b;
char c;
};

a)2 b)4 c)1 d) 7

20) What is the output of the following program? (. has been used to
indicate
a
space)
main()
{
char s[]="Hello,.world";
printf(%15.10s",s);
}

a)Hello,.World..
b)..Hello,.Wor
c)Hello,.Wor
d)None of the above

SECTION III - ANALYSIS PROGRAM SEGMENTS
---------------------------------------

1) Here is the structure declaration of a doubly linked list

int nodeid;

A pointer of the head of the linked list is maintained as a global
variable, whose definition is

The funtion remove_element(dlink_t *rp), needs to remove the node
pointed to

The first node's prev and the last node's next are NULL.

{
rp->prev->next = rp->next;
rp->next->prev = rp->prev;

Which of the following statement is true about the fution
remove_element

A) It work when head is the same as rp
B) It does not work when rp is the last element on the list
c) It sets the head of the list correctly
D) It works in all cases

2) Consider the following function written in c:

#define NULL 0

char *
index(sp,c)
register char *sp,c;
{
do {
if(*sp == c)
return (sp);
} while (*sp++);
return NULL;
}

The first argument sp, is a pointer to a C string. The second
argument, c, is a character. This function scarches for the character
c, in the string. If it is found a pointer to that location is
returned
else NULL is returned.
This function works
a) Always
b) Always, but fails when the first byte contais the character c
c) works when c is a non NULL character only
d) Works only when the character c is found in the string
ans: a

03) What is printed when this program is executed
main()
{
printf ("%d
",f(7));
}
f(X)
{
if (x<= 4)
return x;
return f(--x);
}

a) 4
b) 5
c) 6
d) 7
ans: a

04) On a machine where pointers are 4 bytes long, what happens when
the
following code is executed.
main()
{
int x=0,*p=0;
x++; p++;
printf ("%d and %d
",x,p);
}

a) 1 and 1 is printed
b) 1 and 4 is printed
c) 4 and 4 is printed
d) causes an exception

05) Which of the following is the correct code for strcpy, that is
used to copy the contents from src to dest?

a) strcpy (char *dst,char *src)
{
while (*src)
*dst++ = *src++;
}
b) strcpy (char *dst,char *src)
{
while(*dst++ = *src++)
}
c) strcpy (char *dst,char *src)
{
while(*src)
{ *dst = *src;
dst++; src++;
}
}
d) strcpy(char *dst, char *src)
{
while(*++dst = *++src);
}
ans:b

6) Consider the following program

main()
{
int i=20,*j=&i;
f1(j);
*j+=10;
f2(j);
printf("%d and %d",i,*j);
}
f1(k)
int *k;
{
*k +=15;
}

f2(x)
int *x;
{
int m=*x,*n=&m;
*n += 10;
}

The values printed by the program will be
a) 20 and 55
b) 20 and 45
c) 45 and 45
d) 45 and 55
e) 35 and 35

7) what is printed when the following program is compiled and
executed?
int
func (int x)
{
if (x<=0)
return(1);
return func(x -1) +x;
}
main()
{
printf("%d
",func(5));
}

a) 12
b) 16
c) 15
d) 11

08) COnsider the following of c code in two files which will be linked
together
and executed .

a.c
___
int i;
main()
{
i = 30;
f1();
printf("