** Company: ** Adobe Systems

Company Name : Adobe

Type : Fresher, Job Interview

Exam/Interview Date : 06-Sep-2010

No of Rounds : Technical Round-1, Technical Round-2

Two Rounds: Not tough Question.But time management required.

Engineering Round: (15 question)

1 Finding height of binary tree

2. Number of times multiplication is required:

int computeXn(int x int n)

{

if(n%2=0)

{

return x*x;

}

else if(n%2=0)

{

int y computeXn(x n/2);

return y*y;

}

else if(n%2=1)

{

int y computeXn(x n/2);

return y*y*x;

}

}

Calculating power of a tree for 5^12.

3. Polynomial A+Bx+Cx^2+….+Nx^(n-1) this representation is more suitable for which data structure. Then P and Q are two such polynomial and how to add that two using that data structure. WAP for that.

4. Specification of variables in one language: letter follow by letter or digit.

Options:

1. (LUD)*

2. L.(LUD)* => this one right.

3. L.(L.D)+

4. L.(L.D)*

5. How Generic Swap of two elements can be implemented? that supports all type line int char float double etc..

6. Two rectangle is given with following data structure

rectangle {

int left_X;

int Left_X;

int right_X;

int Right_Y;

}

Two are in X-axis wise. How to find that they are intersected or not? WAP for that…

7. Free( P) How it decide how much space should be freed in c?

8. Head(aann)=a Tail(aann)=ann cont(aa,bb)=aabb; For which of the following : cont(head(s),head(tail(tail(s)))=’ac’

i. aaac

ii. abbc

iii. accc

iv. abdc

C Round: (10 question)

1. Diff between typedef and #define?

2. getbis function gives n bits from the position p of an binary no A.

3. You have to sort large data. But your memory does not have so much space. how you can sort that.

4. a[2][3][4] pointer representation

5. You have two threads T1 and T2 they are reader and writer respectively.

With some specification:

ADDNEW.Process

PROCESS.SET

PROCESS.RESET

ENTER CS

EXIT CS

LOOP

EXIT LOOP

WAIT# PROCESS

6. sprintf() function used how and what means?

7. An array given Arr[] which is in decreasing order. How many swapping required in

for (int index=0;index

{

for(int j=n-index;j

{

if(a[j]>a[j+1])

{

swap(a[j],a[j+1]);

}

}

}

8. Finding Output:

int arr[]={10,20,30,40}

int varible_ptr=arr[0];

for(int index=0;index<4;index++)
{
printf(” arr[%d] = %d”, index, *(varible_ptr+index));
varible_ptr+=sizeof(int);
}
Ans:
output:
arr[0]=10
arr[1]=30…