Company: HCL Technologies

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