Microsoft Interview Questions

Hi all!

I recently attended an interview at Microsoft IDC.  I have done my best to recollect most of the interview questions. Hope they help

Round 1: Written Test

Time: 75 Minutes

Question 1:

Define a macro that takes the structure name and member name & returns the offset of the member . One must not create any instance of the struct.

Struct T
{
int a;
double b;
inc c;
}

Example:

assume int size as 4 and double as 8

OFFSET(T,a) gives 0
OFFSET(T,b) gives 4
OFFSET(T,c) gives 12

…..

Question 2:

Find the bugs in the following program which tries to delete a node from a singly linked list. Correct the bugs (logical) and optimize the program as much as possible.

struct _NODE
{
_NODE *next;
}

void deletenode(_NODE *head,_NODE n)
{
_NODE *prev,*curr;
prev=head;
curr=head;
while(curr)
{
if(curr==n)
{
delete curr;
prev->next=curr->next;
}
prev=curr;
curr=curr->next;
}
}

Question 3:

An array A contains a series of n numbers both positive and negative. Write a program to find the set of contiguous numbers that give the maximum sum. Also print the lowest and highest index of the series.

Example:

For the array: -1 -2 4 7 -3 1, the Maximal sum is 11:   from 2 to 3

  • Write solid code and optimize it.
  • Complexity must be  O(n^2)

Question 4:

Assume a scenario where a company has several data centers at different places in India like Hyderabad Pune etc. It has its main server at some place. Now when file is requested following operation:

  • Client from Pune requests a file from the main server
  • Server verifies the client
  • Main server then forwards the file to the local server.
  • Next time when a file is requested from Pune the request is forwarded to the local pune server and client is served from there.
    • Write the test cases for it (as much as you can. Anything above 25 will do)
    • Analyze the situation and identify all possible breakdown conditions
    • How do you rectify the breakdowns?
    • How do you carry out authentication?
    • Algorithamize your solutions and optimize the same.
Figure
Figure

Example:

If the local pune server fails the main server must be able to acknowledge the failure and must be able to serve the user seamlessly without any interruptions

Question 5:

Assume that you want to port your favorite mobile application to a mobile platform. What all features would you include? Tell about the various scenarios possible and the different models that can be used. Draw a screen shot and flow diagram for all possible scenarios that you could come up with. Optimize all solutions.

Technical Interviews

The Technical interviews lasted for around 2 hours each and the questions were fired by developing on the answers of the preceding questions. I’ve pulled as much as I could from my memory.

For almost all of the questions, I was asked to write code and optimize it.

ROUND 2: INTERVIEW 1: Technical

  1. Write solid secure code to generate the power set of a given set of elements:

Eg: If input A={1,2,3}, result= {(1),(2),(3),(1,2),(1,3),(2,3),(1,2,3),(NULL)}

  1. Write a linear time algorithm to find all combinations of given sets.

Eg: If input = {1,2} ,{3,4} and {5,6},

Output:

{{1 3 5},{2 3 5},{1 4 5 },{2 4 5},{1 3 6},{2 3 6},{1 4 6},{2 4 6}}

Optimize the algorithm to the maximum possible extent. Prove mathematically that it is optimal.

  1. How do you create a random number generator? (Note: Not Pseudorandom numbers)
  2. If you are asked to design the next version of Bing, say Bing 2.0, how do you start?
    1. What are the features that will be added/modified/removed
    2. How can you make it better than the other search engines
    3. How do you implement spell check in a search engine: eg: If you search “Maximm”, the search engine shows “Did you mean Maximum?”. How do you implement this feature? How can you use the feature for proper nouns?
    4. The Interviewer then started digging deep down with questions on the nuts and bolts of the data structures and data-statistics tools that are used for search engine design. (This took a looong time J )
    5. How will you design a spell checker for MS Word? How is it different from that of Bing? Write Code
    6. Write a program to delete the nth node from a doubly linked list. Optimize it and verify optimization mathematically.

ROUND 3: INTERVIEW 2: Technical

  • Merge two linked lists. Write as many test cases as possible (Preferably around 20)
  • Analyze the logic patterns of inputs in the merging problem. How can we take advantage of the patterns?
  • Which is your most favorite project? Explain.Code.Optimize.
    • Write Test cases based on it.
    • The Interviewer started with Operating System concepts and started chaining an answer to the successive questions. It went on for a while: DeadLocks->Algorithms for DeadLock prevention(WriteCode)->Operating System security->Security domains->Semaphores(WriteCode)->InterProcess Communication->ProducerConsumer Problem(WriteCode)->Syncronization problem(WriteCode)->Testing methods

ROUND 4: INTERVIEW 3: Technical

  1. How do you setup a networking infrastructure (hardware) which incorporates multiple servers, all offering different services, like email, business processing, etc. such that ,if the clients can use just 1 login- info to access a multitude of services.
  • Write test cases
  • How to solve Synchronization problem(Write code )
  • What are the Error recovery mechanisms
  1. Swap the even-Odd positions in a doubly linked list. Swap the nodes, not just the values in them.

Example:

Figure
Figure
  1. I design a program called “copy.exe” which accepts 2 command line arguments ‘source’ and ‘destination’. What are the test cases that are to be considered? Analyze the situation completely.

ROUND 5: INTERVIEW 4: Technical

He asked me what my area of interest is, to which I replies ‘Information Security’. The following 2 hours were completely about info-security.

  1. How to encrypt a message that is to be sent from A to B, when B doesn’t know the key. The Messenger carries the message from A to B. He can travel from A to B and back to A. He carries only the message and not the key. Find a scheme to make sure that the messenger won’t be able to read the msg that he carries, and that the msg reaches its destination safely.
  2. Debug the following: He gave me sheets with codes printed on them and asked me to debug the same. After debugging all errors, I was asked to code a fair copy of the same.
  • Reversing a linked list
  • Inserting  a node into a linked list
  • Sorting a doubly linked list
  1. Write a program to delete a node from a linked list
  2. Optimize the programs that you write.
  3. How to use chaos theory in encrypting messages: Faigenbaum Numbers, U-Sequence, Deterministic unpredictability, White noise.

The Interview was an amazing experience. It was of a kind that I’ve never experienced before. The Questions were so different that we lost track of time.

Thanks for your time,

Vignesh Murugesan,Amrita School of Engineering.

My Twitter ID: http://twitter.com/vignesh_wiz

Facebook Page: http://facebook.com/vignesh.murugesan.me

Leave a comment