Monday, 14 July 2014

Microsoft Campus Selection Guide


Selection Procedure


Written Test


Number of Questions : 15 + 2 Coding
Time : 30 Minutes + 1 hour for Coding

Area Cover :
C, C++(Questions from "Test Your C++ skill"), OS(Pagging), COA(Caching)

Note : Given answer of the following questions may or may not correct.

Sample Questions:


1. 48 bit architecture , what is size of virtual address space? 2^48 bytes

2. 1 rabbit couple. Couple will start producing other couple only when their age is one month.Initially in first month one couple is there.
how many couples will be at the end of year.

Hint : fibonacci series


3. Some cpp codes and asked output. (i.e. Virtual Functions from "Test your C++ skill")

4. C codes and output.

5. Find bugs in given code.

6. Complexity of BFS if adjacency list is given.

7. What is used in Demand paging

a) sequential search b) binary search

8. If pointer to function is declared then how to call that function.

9. In a tree every node has 2 children or 0 children. if there are 'n' nodes with 2 children then
how many with 0 children? ans: n+1

10. If we add a constant weight to each edge in a graph will the shortest path “between any two
vertices” change ?

Ans: (May or may not change) //*this will be Depends, not NO, consider a graph whose one
path from A to B has 4 edges of 1 and other path with 2 and 3, now add 1 to all edges..now
shortest path becomes 2 and 3*

11. how many '0' in 100! ? ans: 24 (/5+⅘)100/5+20

12. For recursive fibonacci , what is its complexity ? ans : O(2 pow n)

13.
i=2,
printf("%d%d",++i,++i)

Ans : May be depend on compiler. Check it.

14.
int c[]={2,3,4,5,6},
int *p=c, int *q=c,
(1)for(i=1 to 5){printf("%d",*c); q++}
(2)for(i=1 to 5){printf("%d",*p); p++}


15. x=4|3<<4 ; x= ? ans : 52

16. x= 2, y= 4, z=10 ; if (x<y<z) {printf("abc")} else {printf("pqr")} ?  Ans : abc

17. x=1; mask = ~(x<<5 1)

18. What is
(1) mask & 48
(2) mask & 64
(3) mask & 121

Ans: 32 64 105

19. In an page fault system implementation , what is “good” way to access pages ?
(1) Linear search
(2) Arithmetic indirection
(3) Binary search .
(4) Vector Operation


Ans : 4)and (1)..it was a multiple correct type

20. which of the foll gives most efficient way to access elements sequentially?
(1) LL
(2) DLL
(3) vectors

21. what is the output ?

class A {public: void foo(){printf("a");}};
class B : public A { public: void foo(){printf("b")}};
class C : public B { public: void foo(){printf("c")}};

void foo(B &b){
b.foo();
}

main(){
C c;
foo(c);
}

output : b

22. What is the data structure that has O(log n)complexity on averaging for the operations:
search, insert, delete.

Ans : AVL Tree correct?

23. Find the output:

#include<stdio.h>
int fun(int num) {
while(num > 0) {
num=num*fun(num1);
}
return num;
}
void main() {
x = fun(8);
printf(“%d”,x);
}

Ans : 0

24. Find the output:

int fun(int num)
{
if(num<3)
return 3;
return num+fun(num2);
}
main()
{
int x=fun(12);
int y=fun(13);
printf(“%d %d”,x,y);
}

Ans : 43 51

25.
unsigned int i = 1<<10;
for(; i>=0; i)
printf(“%d\n”, i);

Ans: Infinite loop

26. how to call pointer to a function:
Ans:(*foo)(2) , foo(2) (both are correct)

27.
unsigned int a=1;
unsigned int b=~1;
int z=a*b;
printf(“%d”,z);

Ans: 2

28.
int n = 1000, c = 5;
do{
n/=c;
}while(c);
printf(“%d”, n);

Ans: Arithmetic error (divide by 0)

29.
class A{
public: A()
{
cout <<”AC ”;
}
~A()
{
cout <<”AD “;
}


class B: public A
{
public: B()
{ cout<<”BC “;
}
~B(){cout <<”BD “;}


main()
{
B *b1 = new B();
B b2;
}

Ans: AC BC AC BC BD AD

30.
int fun(int num){
if(num < 3) return 3;
return num + fun(num2);
}

main(){
printf(“%d %d\n”, fun(12), fun(13));
}

Ans: 43,51

31.
void swap(int *a, int *b)
(a) call by name
(b) call by value
(c) call by reference
(d) call by pointer

Ans: Call By Pointer becoz in C++ we have both CBR and CBP and in C++ for CBR we dont
use * in operation we refer object only just by their name in CBR

32.
int fun(int num){
int val = num<<3;
val += num;
return val;
}
main(){
printf(“%d %d %d\n”, fun(0), fun(1), fun(3));
}

Ans: 0 9 27

33.
int MAX=1000;
int a[MAX][MAX];
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
a[j]=i*j;Q.1.
code 1:
code 2:
int MAX=1000;
int a[MAX][MAX];
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
a[i]=i*j;
Which is correct?
a. code 1 is faster
b. code 2 is faster
c. both are same in RISC architecture
d. both are about same

Hint : Caching Mechanism; Refer COA/OS class note of ACE

34. What is the output:

unsigned int x = 1;
int y = ~0;
printf(“%u,%d”,x,)y;
if(x==y)
printf(“same”);
else
printf(“not same”);
a. compilation error.
b. 45….,1
same
c. 45….,1
not same
d. i don’t remember

Ans : B


Sample Coding Questions


Question-1


With a specific color denoted by single character eg. for blue ‘B’. If one position is clicked
(x,y), colour present at that position would be deleted. If the same colour is present in
neighbourhood (up/down/left/right) then it would also be deleted. After deletion blank spaces
will be replaced by the value present in the cell above that. In case no value present above the1.
Given a 2D matrix. Each cell was filled cell then blank entry will be replaced by 0.

Input
x:1 y:1
BGB
BGG
BBB

Output
B00
B0B
BBB

Question-2


Given a linkedlist swap the alternative nodes (assume list have even number of nodes.)
Input : 11>12>13>14
Output : 12>11>14>13

Question-3


Given 2 strings, check if they are anagrams of each other.

Question-4


Delete every nth node in a linkedlist.

Let the LL be, 1>2>3>4>5 and n = 2, then resultant list will be: 1>3>5

Question-5


print last 10 lines of given very large string

Question-6


prune all the nodes from a BST which are not in the range minValue and maxValue

Question-7


In a TicTacToi game two players are playing where player 0 is denoted as 0 and player 1 is denoted as 1. Given a linked list of moves made by the players determine who is the winner and in how many moves he required for winning.

Struct Move{
int p; //Player number
int x; //x and y pos in the tictactoi
int y;
struct Move *next;

The sample function to write is:
void playGame(struct Move *move, int N)

Question-8


Given an array if in a position let a[i][j] =1 then print all it’s row and column 1. You should not
consider a position 1 after you made it 1 in your past computation.
sample(input):
(i)00100
(ii)10 00000 01
output:
(i)11111
(ii)11 00100 11


Refer GeekForGeeks for solution of the above coding questions.

Courtesy : Inter IIT Placement Group.

All The Best

No comments :

Post a Comment

Copyright 2011 All Rights Reserved / Privacy Policy / Sitemap / Contact Us

Template by / Blogger Tricks / Powered by / Blogger