Company: HCL Comnet Ltd

HCL (or) HCL Perot Systems (HPS) (or) HCL-CISCO

section 1
In this section there are mainly questions based on C language like
find the errors in the program and what is the output of the following program.
some question i remember are
1) int i=10;
printf(“%d %d %d”,i++,i++,i–);
there is one or two more question on increment operator
2) Two question on redirection operator(>>)
3) int i=10;
if(1,i++,++i)
printf(“The value for i is %d”,i);

4) one question on structure and u have to fine the error in the syntax
5) int a=10,b=33;
a=a^b;
b=a^b;
a=a^b;
printf(“%d %d”, a,b);
6) int *a;
int (*b)();
printf(“%d %d”,sizeof(a),sizeof(b);
7) # define SQR(a) (a*a)
void main()
{
printf(“%d”, SQR(5));
}

8) And in another question # define directive is declared in the main() function of the program and u have to predict the output of the program.?

9) what is the time complexity of bubble sort (Ans: O(n^2))
10) what is the preorder traversal of the folowing tree
some tree is given (this is not the actual tree given in the paper only idea)
A
/
B C
/
D E
/
F G
11) x=2,y=6,z=6
x=y==z;
printf(%d”,x)
12) What is the size of the address bus and data bus in 8086?
13) address of IVT in 8086?

Section II:
1) some 6 guys are there A,B,C,D,E,F(say) and u have to adjust in the row.
and some statements are there like A & D can’t be adjacent
E,A have one vacant area in between.. like that and there are 5 questions are based on that?
2) this one is tricky .. there are two groups . one is many brothers can mary one sister of other group. and second is many sister can mary one brother of other group
and some statements are there like V & U is father of S, X is the only grandmother of S …like that..
And there are 6 question based on that..
3) and rest of questions are purely aptitude & quant based.
like there are two questions on coding if MYSORE is code like MEMEME
then how TAMILNADU is coded?

HCL (or) HCL Perot Systems (HPS) (or) HCL-CISCO

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 “=%dn”,expr)
main()
{
int x=7;
int y=3;
dprintf(x/y);
}
Choice:
a) #2 = 2 b) expr=2 c) x/y=2 d) none
Answer: c)x/y=2
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(“%xn”,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
Answer: a) The fu…
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
Answer : d)float
8.What is the value of the expression (3^6) + (a^a)?
a) 3 b) 5 c) 6 d) a+18 e) None
Answer : 5
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 %dn”, ++n, n*n);
}
a) 3,6 b) 3,4 c) 2,4 d) cannot determine
Answer : b) 3,4
11. What is th output of the following program?
int x= 0×65;
main()
{
char x;
printf(“%dn”,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 %dn”,a,b++);
}
a) 10,6 b)10,7 c) 3,6 d) 3,7 e) none
Answer : d) 3,7
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

Answer: b) Prints : Jan..

14. What is the output of the following program?
main()
{
char *src = “Hello World”;
char dst[100];
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

Answer: d) NULL

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

Answer : c)5

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

Answer:d)10,22

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

Answer : d) compilation 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

Answer :c)

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

struct dlink {
int nodeid;
struct dlink *next;
struct dlink *prev;
} dlink_t;

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

The funtion remove_element(dlink_t *rp), needs to remove the node
pointed to
the rp and adjust the head.

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

remove_element(dlink_t *rp)
{
rp->prev->next = rp->next;
rp->next->prev = rp->prev;
if( head == rp)
head = rp->next;

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

Answer :B) It does…

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 (“%dn”,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 %dn”,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(“%dn”,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(” SECTION III – ANALYSIS PROGRAM SEGMENTS 1) Here is the structure declaration of a doubly linked list struct dlink { int nodeid; struct dlink *next; struct dlink *prev; } dlink_t; A pointer of the head of the linked list is maintained as a global variable, whose definition is dlink_t *head; The funtion remove_element(dlink_t *rp), needs to remove the node pointed to the rp and adjust the head. The first node’s prev and the last node’s next are NULL. remove_element(dlink_t *rp) { rp-prev-next = rp-next; rp-next-prev = rp-prev; if( head == rp) head = rp-next; 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 Answer :B) It does… 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 (“%dn”,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 %dn”,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(“%dn”,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(“%dn”,i) } b.c ___ static int f1() { i+=10; } which of the following is true ? a) a.c will fail in compilation phase because f1() is not declared b) b.c will fail in compilation because the variable i is not declared c) will print 30 d) will print 40 e) a & b ans: e) a & b 9) Consider the following prg void funca (int *k) { *k += 20 } void funcb (int *x) { int m=*x,*n = &m; *n+=10; } main() { int var = 25,*varp=&var; funca(varp); *varp += 10; funcb(varp); printf (“%d and %dn”,var,*varp); } The values printed when the above prg is complied and executed are: a) 20 and 55 b) 20 and 45 c) 45 and 55 d) 55 and 55 e) 35 and 35 ans: d 10) consider the following program: # include class x { public: int a; x(); }; x::x() { a=10; cout