Placement Papers - HCL - Programming Skills

Answer the questions based on the following program
STRUCT DOUBLELIST
{ DOUBLE CLINKED                                                                                                     
INT DET; LIST VOID
STRUCT PREVIOUS; (BE GIVEN AND A PROCEDURE TO DELETE)
STRUCT NEW; (AN ELEMENT WILL BE GIVEN)
}
DELETE(STRUCT NODE)
{NODE-PREV-NEXT NODE-NEXT;
NODE-NEXT-PREV NODE-PREV;
IF(NODE==HEAD)
NODE
}
1. In what case the prev was                                                                                          
(a) All cases
(b) It does not work for the last element
(c) It does not for the first element
(d) None of these
Answer the questions based on the following program
VOID FUNCTION(INT KK)
{KK+=20;
}
VOID FUNCTION (INT K)
INT MM,N=&M
KN = K
KN+-=10;
}
2. What is the output of the following program                                                             
main()
{ int var=25,varp;
varp=&var;
varp p = 10;
fnc(varp)
printf("%d%d,var,varp);
}
(a) 20,55
(b) 35,35
(c) 25,25
(d)55,55 
3.  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...
4.  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
5.  What is printed when this program is executed
main()
{
printf ("%d\n",f(7));
}
f(X)
{
if ( <= 4)
return x;
return f(--x);
}
a) 4
b) 5                                                                                                            
c) 6
d) 7
ans: a
6. 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\n",x,p);
}
a) 1 and 1 is printed
b) 1 and 4 is printed
c) 4 and 4 is printed
d) causes an exception
7. 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
8.  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
9.  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\n",func(5));
}
a) 12
b) 16
c) 15
d) 11
10. 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("%d\n",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
11. 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 %d\n",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
12. consider the following program:
# include
class x {
public:
int a;
x();
};
x::x() { a=10; cout
class b:public x {
public:
b();
};
b::b() { a=20; cout                                                         
main ()
{ b temp;
}
what will be the output of this prg?
a) 10
b) 20
c) 2010
d) 1020
ans: b

 

 


Disclaimer: These are questions/Answers posted by various candidates over years, TutionCentral(TC) does not assume any legal liability or responsibility for the accuracy, completeness or usefulness of the information. Information provided in the site is solely intended for general guidance purpose and assumes the reader of the page full responsibility of use.


 


SHARE THIS
Previous Post
Next Post