Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Placement Aptitude (Quant, Logical, Verbal)  Module 17 – Grammar and usage

Error spotting and sentence correction

Find the error in error-spotting items and choose the right sentence improvement, with a fixed order of seven checks and the traps tests set.

  • Intermediate
  • 35 minutes
  • Examples run with Node.js 24.21.0, Python 3.14.8 and Pyodide 314.0.7
  • By MySmartCoPilot
Free core, Pro depth: 13 of 35 minutes free
Free: Seven checks, in order · Four families beyond the first checks · Spelling checks miss confusable words · 3 more sections. With a pass: 2 in-depth parts and 3 interview answers, about 22 minutes.

What you will learn

  • Find the grammatical error in error-spotting items quickly
  • Choose the right improvement for an underlined part
  • Fix parallelism, modifier, comparison and redundancy errors

Before you start

Error spotting splits a sentence into three parts and asks which one holds a grammatical error, with “No error” as the last option. Sentence correction, also called sentence improvement, underlines part of a sentence and offers replacements, often with “No improvement” among them. Both reward a fixed routine more than an ear for English: read the whole sentence once, run the same seven checks in the same order, from subject–verb agreement to word choice, and mark the first part that fails. “No error” is right only when all seven pass. The Staff Selection Commission names Spot the Error and Improvement of Sentences in the English part of its Combined Graduate Level examination, AMCAT’s English module lists error identification and sentence improvement, and TCS iON’s verbal section assesses grammar and its usage.

Seven checks, in order

Seven numbered checks from agreement to word choice, each with an example; the first that fails marks the error, all passing means No error.Seven checks, in this orderStop at the first check that fails: that part has the error.1Subject–verb agreementThe list of items are long → is2Tense and time wordsI have met him yesterday → met3Pronoun case and referencebetween you and I → me4Articles and prepositionsdiscussed about it → discussed it5ModifiersWalking in, the bell rang: who walked?6Parallelism and comparisonsreading, to paint and singing → painting7Word choice and redundancyrepeat it again → repeat itAll seven pass: No error

The order of checks for error spotting

Text description of the diagram

The figure is titled "Seven checks, in this order", with the rule "Stop at the first check that fails: that part has the error." Seven numbered boxes run down the page, joined by an arrow on the left, each with an example of the error it catches:

  1. Subject–verb agreement: "The list of items are long" should be "is".
  2. Tense and time words: "I have met him yesterday" should be "met".
  3. Pronoun case and reference: "between you and I" should be "me".
  4. Articles and prepositions: "discussed about it" should be "discussed it".
  5. Modifiers: in "Walking in, the bell rang", nothing says who walked.
  6. Parallelism and comparisons: in "reading, to paint and singing", "to paint" should be "painting".
  7. Word choice and redundancy: "repeat it again" should be "repeat it".

The arrow ends at a last box: "All seven pass: No error".

In error spotting, the first four checks look at single words. Find the verb and its real subject: in The list of items is long the verb agrees with list, not items, while Oxford gives a number of a plural verb and each a singular one. Look for time words: a finished time such as yesterday or ago takes the past simple, and Cambridge marks I’m here since four o’clock wrong because time up to now needs the present perfect. Check each pronoun’s case: after a verb or a preposition it takes the object form, and Oxford calls between you and I wrong. Then read the small words: discuss takes no about, and you are married to someone.

The last three need the whole sentence in view, so they come last. A fixed order means no check is skipped when an item looks easy, and you mark a part only when you can name the rule it breaks.

Four families beyond the first checks

Family Look for Wrong Right
Modifier an opening phrase whose doer is not the subject Walking to class, the rain started. Walking to class, I got caught in the rain.
Parallelism items of a list in different forms to read, write and speaking to read, write and speak
Comparison two things that are not alike Kerala’s coast is longer than Goa. Kerala’s coast is longer than Goa’s.
Redundancy a word that repeats a meaning already there return back, repeat again return, repeat

Cambridge notes that a phrase with no subject of its own is used when its subject is the main clause’s, which is why the first wrong sentence says that the rain was walking. Pairs such as either … or join items of the same grammatical type, and so do lists. Oxford defines return as “to come or go back”, so back adds nothing.

Spelling checks miss confusable words

Ten sentences: a spelling check against the part of speech Python · confusables.py
# Ten sentences, nine of them with a confusable word. A spelling check passes all ten, because every word is spelled
# right. The part-of-speech check reads the word before the slot (and the word after it) to decide whether the slot
# needs a verb, a noun or an adjective, then compares that with the everyday part of speech of the word written.
PAIRS = {  # word: (its everyday part of speech, its partner)
    "affect": ("verb", "effect"), "effect": ("noun", "affect"),
    "advise": ("verb", "advice"), "advice": ("noun", "advise"),
    "lose": ("verb", "loose"), "loose": ("adjective", "lose"),
    "stationary": ("adjective", "stationery"), "stationery": ("noun", "stationary"),
    "principal": ("adjective or noun", "principle"), "principle": ("noun", "principal"),
    "complement": ("noun or verb", "compliment"), "compliment": ("noun or verb", "complement"),
}
MEANINGS = {"principal": "the most important; the head of a college", "principle": "a rule or belief",
            "complement": "something that completes", "compliment": "praise"}
VERB_BEFORE = {"to", "will", "would", "can", "could", "must", "should", "may", "might", "please", "don't", "not"}
ADJECTIVE_BEFORE = {"is", "are", "was", "were", "be", "been", "remain", "stay"}
NOUN_BEFORE = {"a", "an", "the", "some", "any", "no", "my", "your", "our", "their", "new", "bad", "useful", "of"}
NOUNS = {"reason", "card", "hall", "match", "batch", "rain", "candidates", "office"}
WORDS = set("""heavy rain had a bad affect effect on the final new timetable will every batch please advice advise
candidates to arrive early she gave me some useful about interview don't loose lose your admit card bus was
stationary stationery when lights changed office ordered for hall principle principal reason delay of honesty matters
more than marks teacher paid complement compliment my essay""".split())

SENTENCES = [
    "Heavy rain had a bad affect on the final.",
    "The new timetable will affect every batch.",
    "Please advice the candidates to arrive early.",
    "She gave me some useful advise about the interview.",
    "Don't loose your admit card.",
    "The bus was stationery when the lights changed.",
    "The office ordered new stationary for the hall.",
    "The principle reason for the delay was the rain.",
    "The principal of honesty matters more than marks.",
    "The teacher paid me a complement on my essay.",
]
MEANT = {9: "principle", 10: "compliment"}  # what the writer meant, where only the meaning can decide


def slot(before, after):
    """The part of speech the slot needs, from the words around it, and where that shows."""
    if before in VERB_BEFORE:
        return "verb", f"after '{before}'"
    if before in ADJECTIVE_BEFORE:
        return "adjective", f"after '{before}'"
    if before in NOUN_BEFORE:
        return ("adjective", f"before the noun '{after}'") if after in NOUNS else ("noun", f"after '{before}'")
    return None, ""


def a(word):
    return f"an {word}" if word[0] in "aeiou" else f"a {word}"


words_of = [s.lower().rstrip(".").split() for s in SENTENCES]
unknown = sum(1 for ws in words_of for w in ws if w not in WORDS)
print(f"Spelling check: {len(SENTENCES)} sentences, {unknown} words not in the word list.")
print()
by_pos = by_meaning = 0
for n, (sentence, ws) in enumerate(zip(SENTENCES, words_of), 1):
    i = next(k for k, w in enumerate(ws) if w in PAIRS)
    word, before, after = ws[i], ws[i - 1] if i else "", ws[i + 1] if i + 1 < len(ws) else ""
    pos, partner = PAIRS[word]
    need, where = slot(before, after)
    word_fits, partner_fits = need in pos, need in PAIRS[partner][0]
    print(f"{n:>2}. {sentence}")
    if word_fits and not partner_fits:
        print(f"    {where} the slot needs {a(need)}: '{word}' fits")
    elif partner_fits and not word_fits:
        by_pos += 1
        print(f"    {where} the slot needs {a(need)}: '{word}' is {a(pos)} → {partner}")
    else:
        by_meaning += 1
        right = MEANT[n]
        print(f"    {a(need)} fits both '{word}' and '{partner}': the meaning decides ({right}: {MEANINGS[right]})")
print()
errors = by_pos + by_meaning
print(f"Spelling check: 0 of the {errors} errors found.")
print(f"Part of speech: {by_pos} of the {errors} found, each with its fix; the other {by_meaning} need the meaning.")
print("The one correct sentence was left alone.")

Output

Spelling check: 10 sentences, 0 words not in the word list.

 1. Heavy rain had a bad affect on the final.
    after 'bad' the slot needs a noun: 'affect' is a verb → effect
 2. The new timetable will affect every batch.
    after 'will' the slot needs a verb: 'affect' fits
 3. Please advice the candidates to arrive early.
    after 'please' the slot needs a verb: 'advice' is a noun → advise
 4. She gave me some useful advise about the interview.
    after 'useful' the slot needs a noun: 'advise' is a verb → advice
 5. Don't loose your admit card.
    after 'don't' the slot needs a verb: 'loose' is an adjective → lose
 6. The bus was stationery when the lights changed.
    after 'was' the slot needs an adjective: 'stationery' is a noun → stationary
 7. The office ordered new stationary for the hall.
    after 'new' the slot needs a noun: 'stationary' is an adjective → stationery
 8. The principle reason for the delay was the rain.
    before the noun 'reason' the slot needs an adjective: 'principle' is a noun → principal
 9. The principal of honesty matters more than marks.
    a noun fits both 'principal' and 'principle': the meaning decides (principle: a rule or belief)
10. The teacher paid me a complement on my essay.
    a noun fits both 'complement' and 'compliment': the meaning decides (compliment: praise)

Spelling check: 0 of the 9 errors found.
Part of speech: 7 of the 9 found, each with its fix; the other 2 need the meaning.
The one correct sentence was left alone.

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 confusables.py

Every word is spelled correctly, so a spelling check passes all ten. Deciding the part of speech the slot needs finds seven of the nine errors: affect is the verb and effect the noun, advise the verb and advice the noun, lose a verb and loose an adjective, stationary an adjective and stationery a noun. The other two need the meaning: principal and principle can both be nouns, and so can complement and compliment, the word for praise.

Sentence correction: compare the options

In sentence correction, read the options first and note what changes from one to the next: a verb form, a pronoun, the word order. That difference is the question. Rule out any option that fixes one thing and breaks another, prefer the one that keeps the meaning in the fewest words, and choose “No improvement” only after the seven checks pass.

Five solved examples

  1. Agreement. (A) The prices of vegetables / (B) has gone up / (C) after the floods. / (D) No error. B: the subject is prices, so have gone up.
  2. Tense. (A) He has joined the company / (B) three years ago / (C) as a trainee. / (D) No error. A: ago fixes a finished time, so He joined.
  3. No error. (A) Neither of the buses / (B) stops / (C) near our college. / (D) No error. D: after neither of, Oxford gives the singular verb as the formal choice.
  4. A modifier. Having finished the test early, the invigilator allowed me to leave. (a) Having finished the test early, I was allowed to leave. (b) Having finished the test early, the invigilator let me leave. (c) The invigilator, having finished the test early, allowed me to leave. (d) No improvement. (a): the person who finished must be the subject.
  5. Parallelism. The job needs someone who can code, test and is documenting the work. (a) who can code, test and document the work (b) who can code, testing and documenting the work (c) who codes, tests and is documenting the work (d) No improvement. (a): three verbs after can, all in the base form.

Your turn

The exercise picks a confusable word by its part of speech; the ten questions after it are untimed.

Exercise · Easy · Python

Pick the confusable word the slot needs

PARTS gives the everyday parts of speech of twelve easily confused words. Write pick(pair, needed): pair is a tuple of two confusable words and needed is the part of speech a slot in a sentence needs ("verb", "noun" or "adjective"). Return the word of the pair that can be that part of speech.

When both words can fill the slot, or neither can, the part of speech cannot decide, so return None: the meaning has to. For example, pick(("affect", "effect"), "noun") is "effect", as in a bad effect, and pick(("complement", "compliment"), "noun") is None, because both are nouns.

Starter code · confusables.py

PARTS = {
    "affect": {"verb"}, "effect": {"noun"},
    "advise": {"verb"}, "advice": {"noun"},
    "lose": {"verb"}, "loose": {"adjective"},
    "stationary": {"adjective"}, "stationery": {"noun"},
    "principal": {"adjective", "noun"}, "principle": {"noun"},
    "complement": {"noun", "verb"}, "compliment": {"noun", "verb"},
}


def pick(pair, needed):
    """The word of the pair that can be the part of speech `needed`, or None when the part of speech cannot decide."""
    # Replace this line with your code.
    return ""
The sample tests · test_confusables.py
from confusables import pick


def test_verb_slot():
    """The rule will affect every batch."""
    assert pick(("affect", "effect"), "verb") == "affect"


def test_noun_slot():
    """Rain had a bad effect on the match."""
    assert pick(("affect", "effect"), "noun") == "effect"


def test_order_of_the_pair_does_not_matter():
    """Please advise the candidates."""
    assert pick(("advice", "advise"), "verb") == "advise"


def test_adjective_slot():
    """The bus was stationary."""
    assert pick(("stationery", "stationary"), "adjective") == "stationary"


def test_lose_and_loose():
    """Don't lose your card; the screw is loose."""
    assert pick(("lose", "loose"), "verb") == "lose"
    assert pick(("lose", "loose"), "adjective") == "loose"


def test_adjective_before_a_noun():
    """The principal reason."""
    assert pick(("principal", "principle"), "adjective") == "principal"


def test_both_nouns_cannot_decide():
    """A principal or a principle: the meaning decides."""
    assert pick(("principal", "principle"), "noun") is None


def test_both_verbs_cannot_decide():
    """Complement and compliment are both verbs and nouns."""
    assert pick(("complement", "compliment"), "verb") is None
A hint

Make a list of the words of the pair whose entry in PARTS contains needed. If that list has exactly one word, return it; otherwise return None.

The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.

Ten questions, untimed

10 questions about this lesson. Every answer and why it is right is on the page, behind “Show the answer”. Your score stays in this browser.

  1. Question 1 of 10 Find the part with the error: (A) One of my friends / (B) are coming / (C) to the interview with me. / (D) No error

    Choose one answer.

    Show the answer to question 1

    Answer: B

    The subject is "one", not "friends", so the verb is singular: "One of my friends is coming". Finding the real subject is the first check.

  2. Question 2 of 10 Find the part with the error: (A) I am working here / (B) for three years / (C) and still enjoy it. / (D) No error

    Choose one answer.

    Show the answer to question 2

    Answer: A

    "For three years" measures time up to now, which needs the present perfect: "I have been working here for three years". The present continuous cannot carry a period that started in the past.

  3. Question 3 of 10 Find the part with the error: (A) Hardly had we reached the station / (B) than the train / (C) left. / (D) No error

    Choose one answer.

    Show the answer to question 3

    Answer: B

    "Hardly" and "scarcely" pair with "when"; only "no sooner" pairs with "than". The sentence should read "Hardly had we reached the station when the train left."

  4. Question 4 of 10 Find the part with the error: (A) The teacher gave / (B) my brother and me / (C) a book each. / (D) No error

    Choose one answer.

    Show the answer to question 4

    Answer: D (No error)

    "Me" is the object of "gave", so it is right. Drop "my brother" to test it: "The teacher gave me a book" works, "gave I a book" does not. No error is the answer only after every check passes, as here.

  5. Question 5 of 10 Find the part with the error: (A) We need to discuss / (B) about the budget / (C) before Friday. / (D) No error

    Choose one answer.

    Show the answer to question 5

    Answer: B

    "Discuss" takes a direct object, so "about" has to go: "We need to discuss the budget". Oxford notes that "discuss about" is still considered incorrect in exams.

  6. Question 6 of 10 Find the part with the error: (A) This year's results / (B) are better / (C) than last year. / (D) No error

    Choose one answer.

    Show the answer to question 6

    Answer: C

    Results are compared with a year. Compare like with like: "than last year's" or "than those of last year".

  7. Question 7 of 10 Choose the right improvement: "She returned back the books to the library."

    Choose one answer.

    Show the answer to question 7

    Answer: She returned the books to the library.

    "Return" already means to come or go back, so "back" repeats it. The second and third options keep the repetition.

  8. Question 8 of 10 Choose the right improvement: "Running to catch the bus, my bag fell in the mud."

    Choose one answer.

    Show the answer to question 8

    Answer: As I was running to catch the bus, my bag fell in the mud.

    The bag was not running. Give the opening its own subject ("As I was running") or make "I" the subject of the main clause. The other options still have the wrong runner.

  9. Question 9 of 10 Fill the gap: "The new canteen timings will ___ the night-shift staff."

    Choose one answer.

    Show the answer to question 9

    Answer: affect

    After "will" the slot needs a verb that means "influence", which is "affect". "Effect" is the noun for a result (its rare formal verb means "to make something happen", which does not fit here).

  10. Question 10 of 10 Fill the gap: "The office is buying new ___ for the exam."

    Choose one answer.

    Show the answer to question 10

    Answer: stationery

    After "new" the slot needs a noun: "stationery", the pens, paper and envelopes. It is uncountable, so it takes no plural. "Stationary" is the adjective for not moving.

Twenty error-spotting items with full working, checked as a set Pro: opens with a Pro, Premium or Ultimate pass

A bank of practice items helps only if its answers are spread fairly and every family of error appears in it. This part gives twenty original items with full working, then checks the bank as a set with a program.

In this part:

  • Twenty items, each worked through to its rule
  • The bank checked as a set, with numbers

1 runnable example (Python) · about 3 minutes

Opening this part with your pass…

This part opens with any MySmartCoPilot pass.

  • Pro pass · 1 week₹79$2.99
  • 30 days₹179$5.99
  • 1 year₹1,699$45

One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.

It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).

What guessing No error is worth, items with two right answers, and a timed set Pro: opens with a Pro, Premium or Ultimate pass

Marks, not grammar, decide when to guess, and a few items in circulation have more than one defensible answer. This part prices each way of guessing under the Combined Graduate Level examination’s marking, sets out the forms that dictionaries accept but some items mark wrong, and ends with ten items in nine minutes.

In this part:

  • What a guess is worth, in marks per item
  • Forms both dictionaries accept: a trade-off table for test day
  • Ten items in nine minutes
  • Each answer, with its working

1 runnable example (Python) · about 4 minutes

Opening this part with your pass…

This part opens with any MySmartCoPilot pass.

  • Pro pass · 1 week₹79$2.99
  • 30 days₹179$5.99
  • 1 year₹1,699$45

One payment; a pass never renews. The price shown is the total you pay: no fees or charges are added at checkout.

It also opens every other in-depth part in Learn and every Pro tool. Sales are final, except where the law gives you a right to withdraw, for example in the EU and the UK (refund policy).

Interview questions

  1. Fresher · Warm-up

    Why run the checks of an error-spotting item in a fixed order instead of choosing the part that sounds wrong?

    Because the ear is least reliable on the sentences tests set: ones that sound normal in everyday speech but break a rule, such as "The list of items are long" or "between you and I". A fixed order makes you look at every place an error can hide, quick checks first (agreement, tense, pronouns, then articles and prepositions) and slower ones after (modifiers, parallel lists and comparisons, word choice). It also stops you from marking a part before you can name the rule it breaks, and it makes "No error" a conclusion reached after all seven checks instead of a guess made when nothing sounds odd. With practice the checks become quick enough for a timed section.

  2. Fresher

    A friend marks No error whenever an error-spotting item looks clean, saying it is right often enough to pay. With +3 for a right answer and −1 for a wrong one, when is that true, and what would you advise instead?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  3. Fresher

    "Having submitted the form, the portal showed an error." A classmate says the sentence is fine because everyone understands it. Explain what is wrong, give two correct versions, and say how you would spot the same fault quickly in a sentence-correction item.

    Model answer, Pro. First step and follow-ups

  4. Fresher

    An item marks part B wrong in "Neither of the two clerks / were present / at the counter." A student argues there is no error. Who is right, what does a dictionary say, and how should you answer such items in a test?

    Model answer, Pro. First step and follow-ups

Key takeaways

  • Read the whole sentence, then run seven checks in a fixed order and mark the first part that fails.
  • “No error” is a conclusion you reach after all seven checks, never a first guess.
  • Modifiers, parallelism, comparisons and redundancy need the whole sentence; spelling checks miss confusable words.
  • In sentence correction, the difference between the options tells you what is being tested.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.