section C – analysing program segements
1)struct dlink{
int nodeid;
struct dlink *next;
struct dline *prev;
} dlink_t;
A pointer to the head of that 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 ans. A)Always
3.main() {
printf(“%dn”,f(7)); }
f(x) {
if(x<=4)
return x;
return f(--x); }
a)4 b)5 c)6 d)7 (ans.(4))
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))or d
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 ans: b
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)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< main() {
b temp; } what will be the output of the following program?
a)10 b)20 c)20 10 d)10 20
HCL Placement Paper Part III
section C – analysing program segements
1)struct dlink{
int nodeid;
struct dlink *next;
struct dline *prev;
} dlink_t;
A pointer to the head of that 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 ans. A)Always
3.main() {
printf(“%dn”,f(7)); }
f(x) {
if(x<=4)
return x;
return f(--x); }
a)4 b)5 c)6 d)7 (ans.(4))
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))or d
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 ans: b
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)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< main() {
b temp; } what will be the output of the following program?
a)10 b)20 c)20 10 d)10 20
Profile Answers by suji Questions by suji
Questions by suji answers by suji
Related Answered Questions
Related Open Questions