Company: HCL Technologies
1)struct dlink{
int nodeid;
struct dlink *next;
struct dline *prev;
} dlink_t;
A pointer to the head of tha linked list is
maintained
as a global variable whose definition is
dlink_t *head;
The function remove_element(dlink_t*rp), needs to
remove the node pointed to by rp and adjust the head
The first node’s prev and the last node’s text 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
function remove_element
a)it works when head is the same as rp;
b)it does not work whe rp is the last element on the
list
c)it sets the head of the list correctly
d)it works in all cases
ans:( b)
2.#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
searches 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 contains the
character c
c)works when c is a non NULL character array
d)works only when the character c is found in the
string
3.main()
{
printf(“%dn”,f(7));
}
f(x)
{
if(x<=4)
return x;
return f(--x);
}
a)4
b)5
c)6
d)7
4.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",p);
}
a) 1 and 1 is printed
b) 1 and 4
c) 4 and 4
d) causes an exception
5.which is correct?
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);
}
6. 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)55 and 55
e)35 and 35
ans : ( c )
7.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
8.consider the following fragments of c code in two
files which will be linked together and executed
a.c
int i;
main()
{
i=30;
f1();
printf("%d",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
d)a & b
9. void
funca(int *k)
{
*k+=20;
}
void
funcb(int *k)
{
int m=*x,*n=&m;
*n+=10;
}
main()
{
int var=25,;
*varp=&var;
funca(varp)
*varp+=10;
funcb(varp);
printf("%d%d,var,*varp);
}
(a) 20,55(b) 35,35(c) 25,25(d)55,55
ans : (d )
10. #include
class x{
public :
int a;
x();
};
x::x() { a=10;cout<< a ;}
class b:public x {
public :
b(); x();
};
b::b() { a=20;cout<