PapersAdda

Microsoft Placement Papers 2026

32 min read
Company Placement Papers
Advertisement Placement

Microsoft Placement Papers 2026 - Complete Preparation Guide

Last Updated: March 2026


🏢 Company Overview

Microsoft Corporation is an American multinational technology corporation headquartered in Redmond, Washington. Founded by Bill Gates and Paul Allen on April 4, 1975, Microsoft is one of the world's largest technology companies. It develops, manufactures, licenses, supports, and sells computer software, consumer electronics, personal computers, and related services.

Key Highlights:

  • Founded: April 4, 1975
  • Headquarters: Redmond, Washington, USA
  • Employees: 220,000+ globally
  • Revenue: $245+ billion (2025)
  • India Presence: Major centers in Hyderabad, Bangalore, Noida, Mumbai, Pune
  • Key Products: Windows, Office 365, Azure, Xbox, Surface, LinkedIn

🎯 Eligibility Criteria (2026 Batch)

CriteriaRequirements
DegreeB.E/B.Tech, M.E/M.Tech, MCA, M.Sc (CS)
Batch2025, 2026
Academic Criteria70% or 7.0 CGPA throughout (10th, 12th, Graduation)
BacklogsNo active backlogs at time of assessment
Gap AllowedMaximum 1 year with valid justification
BranchCSE, IT, ECE, EEE (core CS strongly preferred)

💰 CTC Breakdown for Freshers 2026

ComponentSoftware Engineer
Base Salary₹12,00,000 - ₹15,00,000
Joining Bonus₹2,00,000 - ₹3,00,000
Relocation₹1,00,000 - ₹1,50,000
Stock (RSUs)$30,000 - $50,000 (vested over 4 years)
BenefitsHealth insurance, wellness, education
Total First Year₹35 - ₹50 LPA

Designation: Software Engineer / Software Development Engineer (SDE)

Note: Higher packages for exceptional candidates and tier-1 colleges (IITs, NITs, BITS)


📋 Exam Pattern 2026

Microsoft has a comprehensive multi-stage recruitment process with strong emphasis on coding and problem-solving abilities.

Online Assessment Structure:

RoundNo. of QuestionsTime (Minutes)Details
Online Coding Test3-4 coding problems90Data Structures & Algorithms
Written Aptitude20-25 questions30Quant, Logical, Verbal
Technical Phone Screen1-2 coding45-60Problem-solving
Virtual Onsite Round 12 coding problems60Data Structures
Virtual Onsite Round 21-2 coding + Design60Algorithms + LLD
Virtual Onsite Round 31 coding + Projects60Problem-solving + Culture Fit
AA (As Appropriate) RoundBehavioral + System60Hiring Manager

Total Duration: 5-7 rounds

Selection Process:

  1. Resume Shortlisting
  2. Online Assessment (Coding + Aptitude)
  3. Technical Phone Screen (for some candidates)
  4. Virtual Onsite (4-5 rounds)
    • Coding (DSA focus)
    • Low-Level Design (LLD)
    • Behavioral/Culture Fit
  5. Hiring Committee Review
  6. Offer

🧮 Aptitude Questions with Solutions (15 Questions)

Question 1: Number Series

Find the missing number: 2, 5, 10, 17, 26, ?

Solution: Pattern: n² + 1 where n starts from 1

  • 1² + 1 = 2
  • 2² + 1 = 5
  • 3² + 1 = 10
  • 4² + 1 = 17
  • 5² + 1 = 26
  • 6² + 1 = 37

Question 2: Work & Time

10 men can complete a work in 12 days working 6 hours/day. How many men are needed to complete the same work in 8 days working 8 hours/day?

Solution: M₁ × D₁ × H₁ = M₂ × D₂ × H₂ 10 × 12 × 6 = M₂ × 8 × 8 720 = 64 × M₂ M₂ = 11.25 ≈ 12 men


Question 3: Profit & Loss

A shopkeeper sells an article at 25% profit. If he had bought it at 10% less and sold it for ₹7 less, he would have gained 30%. Find the cost price.

Solution: Let CP = x Original SP = 1.25x

New CP = 0.90x New SP = 1.25x - 7

Given: New SP = 1.30 × 0.90x = 1.17x

1.25x - 7 = 1.17x 0.08x = 7 x = ₹87.50


Question 4: Speed & Distance

A train traveling at 72 km/hr crosses a pole in 15 seconds. Find the length of the train.

Solution: Speed = 72 × (5/18) = 20 m/s Length = Speed × Time = 20 × 15 = 300 meters


Question 5: Mixtures

A vessel contains 60L of milk. 6L is drawn and replaced with water. This process is repeated twice. Find remaining milk.

Solution: Using formula: Final = Initial × (1 - x/n)^times = 60 × (1 - 6/60)³ = 60 × (9/10)³ = 60 × 0.729 = 43.74 liters


Question 6: Simple Interest vs Compound Interest

The difference between CI and SI on a sum for 2 years at 4% per annum is ₹1. Find the sum.

Solution: Difference = P(r/100)² 1 = P × (4/100)² 1 = P × 0.0016 P = ₹625


Question 7: Partnership

A starts a business with ₹7000. After 4 months, B joins with ₹8000. After 6 more months, C joins with ₹9000. Annual profit is ₹20700. Find C's share.

Solution: Investment periods: A: 7000 × 12 = 84000 B: 8000 × 8 = 64000 C: 9000 × 2 = 18000

Ratio = 84000 : 64000 : 18000 = 84 : 64 : 18 = 42 : 32 : 9

Total parts = 83 C's share = (9/83) × 20700 = ₹2244.58


Question 8: Probability

Three coins are tossed. Find probability of getting at least 2 heads.

Solution: Possible outcomes: 2³ = 8 Favorable (at least 2 heads): HHT, HTH, THH, HHH = 4

Probability = 4/8 = 1/2


Question 9: Permutations

In how many ways can the letters of 'MICROSOFT' be arranged so that vowels always come together?

Solution: Letters: M, I, C, R, O, S, O, F, T Vowels: I, O, O

Treat vowels as one unit: (IOO) + M, C, R, S, F, T = 7 units But O repeats twice in vowels and also check consonants.

Consonants: M, C, R, S, F, T (no repeats) Units: (IOO), M, C, R, S, F, T = 7 units

Ways to arrange 7 units = 7! = 5040 Ways to arrange vowels within: 3!/2! = 3 (IOO, OIO, OOI)

Total = 5040 × 3 = 15120


Question 10: Averages

The average weight of 8 persons increases by 2.5 kg when a new person replaces one weighing 65 kg. Find the new person's weight.

Solution: Total increase = 8 × 2.5 = 20 kg New person's weight = 65 + 20 = 85 kg


Question 11: Calendar

January 1, 2024 was Monday. What day is January 1, 2025?

Solution: 2024 is a leap year (366 days) 366 mod 7 = 2 odd days

Monday + 2 days = Wednesday


Question 12: Ratio & Proportion

If A:B = 3:4 and B:C = 5:6, find A:C.

Solution: A:B = 3:4 = 15:20 B:C = 5:6 = 20:24

A:C = 15:24 = 5:8


Question 13: Percentage

If 20% of A = 30% of B = 40% of C, then A:B:C = ?

Solution: 0.20A = 0.30B = 0.40C = k (let) A = 5k, B = 10k/3, C = 5k/2

Ratio = 5 : 10/3 : 5/2 Multiply by 6: 30 : 20 : 15 = 6:4:3


Question 14: Boats & Streams

A boat's speed in still water is 10 km/hr. It travels 24 km upstream and returns in 5 hours. Find the speed of the stream.

Solution: Let stream speed = x km/hr Upstream = 10 - x Downstream = 10 + x

Time equation: 24/(10-x) + 24/(10+x) = 5

24(10+x) + 24(10-x) = 5(100-x²) 480 = 500 - 5x² 5x² = 20 x² = 4 x = 2 km/hr


Question 15: Data Interpretation

In a class of 50 students, 35 passed Math, 40 passed Science, and 30 passed both. How many failed both subjects?

Solution: Using inclusion-exclusion: Passed at least one = 35 + 40 - 30 = 45

Failed both = 50 - 45 = 5 students


💻 Technical/CS Questions with Solutions (10 Questions)

Question 1: Explain Trie Data Structure.

Properties:

  • Each node represents a character
  • Root is empty
  • Path from root to node represents a string prefix
  • Nodes marked as end-of-word

Operations:

  • Insert: O(m) where m = word length
  • Search: O(m)
  • Delete: O(m)

Applications:

  • Autocomplete
  • Spell checking
  • IP routing
  • Word games

Question 2: What is the difference between Recursion and Iteration?

RecursionIteration
Function calls itselfUses loops
Uses stack spaceUses constant space
Can cause stack overflowNo stack overflow risk
Elegant for tree/graph problemsBetter for simple loops
Overhead of function callsFaster due to no call overhead

Tail Recursion: Special case where recursive call is the last operation. Can be optimized by compilers.


Question 3: Explain Segment Trees.

Properties:

  • Height: O(log n)
  • Space: O(4n)
  • Build time: O(n)

Operations:

  • Query: O(log n)
  • Update: O(log n)

Applications:

  • Range sum/min/max queries
  • Range updates (lazy propagation)

Question 4: What is Garbage Collection?

Algorithms:

  • Mark and Sweep: Mark reachable objects, sweep unmarked
  • Reference Counting: Count references, free when zero
  • Generational GC: Divide heap by object age
  • Stop-and-Copy: Copy live objects to new space

.NET Garbage Collector:

  • Generational (0, 1, 2)
  • Large Object Heap (LOH)
  • Finalization queue

Question 5: Explain Dependency Injection.

Types:

  1. Constructor Injection: Dependencies via constructor
  2. Setter Injection: Dependencies via setters
  3. Interface Injection: Dependencies via interface

Benefits:

  • Loose coupling
  • Easier testing (mocking)
  • Better code reusability

Microsoft DI: Built into .NET Core/5+


Question 6: What is Azure Cloud?

Key Services:

  • Compute: VMs, App Service, Functions, AKS
  • Storage: Blob, File, Queue, Table
  • Database: SQL Database, Cosmos DB
  • AI/ML: Cognitive Services, Machine Learning
  • DevOps: Azure DevOps, GitHub Actions

Deployment Models:

  • IaaS, PaaS, SaaS

Question 7: Explain .NET Architecture.

  • Cross-platform runtime
  • Unified platform for web, desktop, mobile, cloud

Components:

  • CLR (Common Language Runtime): Execution engine
  • BCL (Base Class Library): Core libraries
  • JIT Compiler: Converts IL to machine code
  • Garbage Collector: Automatic memory management

Languages: C#, F#, VB.NET


Question 8: What is SOLID Principles?

  1. S - Single Responsibility: One class, one responsibility
  2. O - Open/Closed: Open for extension, closed for modification
  3. L - Liskov Substitution: Derived classes must be substitutable
  4. I - Interface Segregation: Many specific interfaces better than one general
  5. D - Dependency Inversion: Depend on abstractions, not concretions

Question 9: Explain OAuth 2.0 and OpenID Connect.

  • Access tokens for API access
  • Flows: Authorization Code, Implicit, Client Credentials, Device Code

OpenID Connect (OIDC): Authentication layer on top of OAuth 2.0

  • ID tokens for user identity
  • Standard claims (name, email, etc.)

Microsoft Identity Platform: Implements both for Azure AD


Question 10: What is Design Patterns? Explain commonly used ones.

Creational:

  • Singleton: One instance only
  • Factory: Create objects without specifying exact class
  • Builder: Construct complex objects step by step

Structural:

  • Adapter: Interface compatibility
  • Decorator: Add behavior dynamically
  • Facade: Simplified interface to complex subsystem

Behavioral:

  • Observer: Subscribe/notify pattern
  • Strategy: Family of interchangeable algorithms
  • Command: Encapsulate request as object

📖 Verbal/English Questions with Solutions (10 Questions)

Question 1: Synonyms

Choose the word closest to "UBIQUITOUS": a) Rare b) Omnipresent c) Unique d) Scarce


Question 2: Antonyms

Choose the opposite of "VENERABLE": a) Respected b) Disreputable c) Honorable d) Esteemed


Question 3: Error Detection

"Neither the manager nor the employees was informed about the changes."


Question 4: Fill in the Blanks

The software update will be _______ to all users next week. a) rolled out b) rolled in c) rolled over d) rolled under


Question 5: Sentence Improvement

"She is one of the best employees who has worked here."


Question 6: Para Jumble

Arrange: A) Empowers every person B) Microsoft's mission is to C) And every organization D) On the planet to achieve more


Question 7: Reading Comprehension

Passage about cloud computing adoption in enterprises...

Question: What is the main barrier to cloud adoption mentioned? Answer: Security concerns and compliance requirements for regulated industries.


Question 8: One Word Substitution

A person who is skilled in many areas: a) Specialist b) Generalist c) Polymath d) Amateur


Question 9: Idioms

"To think outside the box" means: a) To be confused b) To think creatively and unconventionally c) To work in an office d) To be organized


Question 10: Voice Change

Convert to active: "The bug was fixed by the development team."


💡 Coding Questions with Python Solutions (5 Questions)

Question 1: Serialize and Deserialize Binary Tree

Design an algorithm to serialize and deserialize a binary tree.

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

class Codec:
    def serialize(self, root):
        """Encodes a tree to a single string."""
        def helper(node):
            if not node:
                result.append('null')
                return
            result.append(str(node.val))
            helper(node.left)
            helper(node.right)
        
        result = []
        helper(root)
        return ','.join(result)
    
    def deserialize(self, data):
        """Decodes your encoded data to tree."""
        def helper():
            val = next(values)
            if val == 'null':
                return None
            node = TreeNode(int(val))
            node.left = helper()
            node.right = helper()
            return node
        
        values = iter(data.split(','))
        return helper()

# Test
codec = Codec()
root = TreeNode(1, TreeNode(2), TreeNode(3, TreeNode(4), TreeNode(5)))
serialized = codec.serialize(root)
print(f"Serialized: {serialized}")
deserialized = codec.deserialize(serialized)

Time Complexity: O(n) for both | Space Complexity: O(n)


Question 2: Word Break

Given a string and a dictionary, determine if the string can be segmented into space-separated dictionary words.

def word_break(s, word_dict):
    word_set = set(word_dict)
    n = len(s)
    dp = [False] * (n + 1)
    dp[0] = True
    
    for i in range(1, n + 1):
        for j in range(i):
            if dp[j] and s[j:i] in word_set:
                dp[i] = True
                break
    
    return dp[n]

# Alternative: Backtracking with memoization
def word_break_memo(s, word_dict):
    memo = {}
    word_set = set(word_dict)
    
    def can_break(start):
        if start == len(s):
            return True
        if start in memo:
            return memo[start]
        
        for end in range(start + 1, len(s) + 1):
            if s[start:end] in word_set and can_break(end):
                memo[start] = True
                return True
        
        memo[start] = False
        return False
    
    return can_break(0)

# Test
s = "leetcode"
word_dict = ["leet", "code"]
print(f"Can break: {word_break(s, word_dict)}")  # Output: True

Time Complexity: O(n³) | Space Complexity: O(n)


Question 3: Find Median from Data Stream

Design a data structure that supports adding integers and finding the median.

import heapq

class MedianFinder:
    def __init__(self):
        # Max heap for lower half (use negative for max heap)
        self.low = []
        # Min heap for upper half
        self.high = []
    
    def addNum(self, num: int) -> None:
        # Add to max heap (low)
        heapq.heappush(self.low, -num)
        
        # Balance: max of low should be <= min of high
        if self.low and self.high and (-self.low[0]) > self.high[0]:
            val = -heapq.heappop(self.low)
            heapq.heappush(self.high, val)
        
        # Size balance
        if len(self.low) > len(self.high) + 1:
            val = -heapq.heappop(self.low)
            heapq.heappush(self.high, val)
        elif len(self.high) > len(self.low):
            val = heapq.heappop(self.high)
            heapq.heappush(self.low, -val)
    
    def findMedian(self) -> float:
        if len(self.low) > len(self.high):
            return float(-self.low[0])
        return (-self.low[0] + self.high[0]) / 2.0

# Test
mf = MedianFinder()
mf.addNum(1)
mf.addNum(2)
print(f"Median: {mf.findMedian()}")  # Output: 1.5
mf.addNum(3)
print(f"Median: {mf.findMedian()}")  # Output: 2

Time Complexity: O(log n) for addNum, O(1) for findMedian | Space Complexity: O(n)


Question 4: Meeting Rooms II

Given intervals of meeting times, find minimum number of conference rooms required.

import heapq

def min_meeting_rooms(intervals):
    if not intervals:
        return 0
    
    # Sort by start time
    intervals.sort(key=lambda x: x[0])
    
    # Min heap to track end times
    rooms = []
    heapq.heappush(rooms, intervals[0][1])
    
    for i in range(1, len(intervals)):
        # If current meeting starts after earliest ending meeting
        if intervals[i][0] >= rooms[0]:
            heapq.heappop(rooms)
        
        # Add current meeting's end time
        heapq.heappush(rooms, intervals[i][1])
    
    return len(rooms)

# Alternative: Chronological Ordering
def min_meeting_rooms_chrono(intervals):
    if not intervals:
        return 0
    
    starts = sorted([i[0] for i in intervals])
    ends = sorted([i[1] for i in intervals])
    
    rooms = 0
    end_ptr = 0
    
    for start in starts:
        if start >= ends[end_ptr]:
            end_ptr += 1
        else:
            rooms += 1
    
    return rooms

# Test
intervals = [[0, 30], [5, 10], [15, 20]]
print(f"Min rooms needed: {min_meeting_rooms(intervals)}")  # Output: 2

Time Complexity: O(n log n) | Space Complexity: O(n)


Question 5: Design HashMap

Design a HashMap without using built-in hash table libraries.

class ListNode:
    def __init__(self, key=-1, val=-1, next=None):
        self.key = key
        self.val = val
        self.next = next

class MyHashMap:
    def __init__(self):
        self.size = 1000
        self.map = [None] * self.size
    
    def _hash(self, key):
        return key % self.size
    
    def put(self, key: int, value: int) -> None:
        index = self._hash(key)
        if not self.map[index]:
            self.map[index] = ListNode()
        
        curr = self.map[index]
        while curr.next:
            if curr.next.key == key:
                curr.next.val = value
                return
            curr = curr.next
        curr.next = ListNode(key, value)
    
    def get(self, key: int) -> int:
        index = self._hash(key)
        curr = self.map[index]
        
        while curr and curr.next:
            if curr.next.key == key:
                return curr.next.val
            curr = curr.next
        return -1
    
    def remove(self, key: int) -> None:
        index = self._hash(key)
        curr = self.map[index]
        
        while curr and curr.next:
            if curr.next.key == key:
                curr.next = curr.next.next
                return
            curr = curr.next

# Test
hash_map = MyHashMap()
hash_map.put(1, 1)
hash_map.put(2, 2)
print(hash_map.get(1))      # Output: 1
print(hash_map.get(3))      # Output: -1
hash_map.put(2, 1)
print(hash_map.get(2))      # Output: 1
hash_map.remove(2)
print(hash_map.get(2))      # Output: -1

Time Complexity: O(1) average, O(n) worst | Space Complexity: O(n)


🎤 Interview Tips for Microsoft

1. Deep DSA Knowledge

Microsoft interviews heavily focus on data structures and algorithms. Master trees, graphs, dynamic programming, and advanced data structures like tries and segment trees. Practice 250+ LeetCode problems with focus on medium-hard difficulty.

2. Know C# / .NET

While you can use any language, knowing C# and understanding .NET ecosystem gives you an edge. Understand CLR, garbage collection, async/await, and LINQ.

3. System Design (LLD Focus)

Freshers should be comfortable with Low-Level Design (LLD). Practice designing classes for problems like Chess Game, Parking Lot, Elevator System, and Library Management. Know SOLID principles.

4. Behavioral Preparation

Microsoft values collaboration and growth mindset. Prepare examples showing how you've learned from failures, collaborated across teams, and adapted to change. Research Microsoft's mission and values.

5. Understand Azure Basics

Even for SDE roles, basic knowledge of cloud computing and Azure services shows interest in the company's products. Know IaaS, PaaS, SaaS differences and basic Azure services.

6. Code Quality Matters

Write clean, readable code with proper variable names and comments. Microsoft engineers value code maintainability. Use meaningful function names and follow consistent style.

7. Test Your Code

Always discuss and write test cases. Consider edge cases: empty input, single element, duplicates, large inputs, negative numbers. This demonstrates thoroughness.


❓ Frequently Asked Questions (FAQs)

Q1: How difficult is the Microsoft interview compared to other FAANG companies?

A: Microsoft interviews are comparable in difficulty to other top tech companies. They focus heavily on problem-solving, code quality, and collaboration. The interview process is known to be thorough but fair, with interviewers genuinely trying to assess your potential rather than tricking you.

Q2: What programming language should I use for Microsoft interviews?

A: While you can use any language (C++, Java, Python), C# is naturally preferred. The key is to use a language you're most comfortable with. Focus on writing clean, efficient code regardless of the language.

Q3: What should freshers know about System Design at Microsoft?

A: Freshers are typically evaluated on Low-Level Design (LLD) - designing classes, interfaces, and relationships. You should understand OOP principles, design patterns, and be able to design modular, extensible systems. Distributed system design is usually for experienced candidates.

Q4: How important is knowledge of Microsoft technologies?

A: While not mandatory, familiarity with Microsoft stack (Azure, .NET, TypeScript) is viewed favorably. It shows genuine interest in the company. However, strong fundamentals in CS are more important than specific technology knowledge.

Q5: What is the re-interview policy at Microsoft?

A: Microsoft typically allows reapplication after 6-12 months, depending on feedback from your previous interview. If you were close to getting an offer, you might be fast-tracked in subsequent attempts. Use the gap to strengthen weak areas identified in feedback.


📚 Additional Resources

  • Official Careers: https://careers.microsoft.com
  • Microsoft Learn: https://docs.microsoft.com/learn
  • Recommended Practice:
    • LeetCode (250+ problems, focus on Microsoft tagged)
    • "Cracking the Coding Interview" by Gayle Laakmann McDowell
    • "Programming Pearls" by Jon Bentley
    • System Design Primer (GitHub)
    • Design Patterns by Gang of Four

Best of luck with your Microsoft placement! 🚀

This guide is prepared based on recent placement experiences and official Microsoft recruitment patterns. Always verify with the latest official notifications.

Advertisement Placement

Share this article: