Bird
Raised Fist0
Compiler Designknowledge~20 mins

Type coercion and conversion in Compiler Design - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Type Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding implicit type coercion

Which of the following best describes implicit type coercion in programming languages?

AA runtime error that occurs when a variable is assigned a value of a different type
BManual conversion of data types by the programmer using specific functions or methods
CA syntax error caused by mixing incompatible data types in an expression
DAutomatic conversion of one data type to another by the compiler or interpreter without explicit instruction
Attempts:
2 left
💡 Hint

Think about when the language changes types behind the scenes without you telling it to.

📋 Factual
intermediate
2:00remaining
Type conversion functions

Which of the following is an example of an explicit type conversion (casting) operation?

AUsing a function like <code>int()</code> to convert a string to an integer
BAdding an integer and a float, where the integer is automatically converted to float
CAssigning a float value to an integer variable without any conversion
DConcatenating a string and a number without conversion
Attempts:
2 left
💡 Hint

Explicit conversion requires you to call a function or use a cast operator.

🔍 Analysis
advanced
2:00remaining
Result of mixed-type arithmetic

Consider a language where implicit coercion converts integers to floats in mixed arithmetic. What is the type and value of the expression 5 + 3.2?

AFloat with value 8
BFloat with value 8.2
CInteger with value 8.2
DInteger with value 8
Attempts:
2 left
💡 Hint

Think about how the integer 5 is treated when added to a float 3.2.

❓ Reasoning
advanced
2:00remaining
Type coercion pitfalls

Why can implicit type coercion sometimes lead to unexpected bugs in programs?

ABecause automatic conversions may change data meaning or precision without the programmer realizing
BBecause it forces programmers to write more code for conversions
CBecause it always causes syntax errors that stop the program
DBecause it prevents any type conversions from happening
Attempts:
2 left
💡 Hint

Consider what happens when the language changes types behind your back.

❓ Comparison
expert
2:00remaining
Difference between coercion and conversion

Which statement correctly distinguishes type coercion from type conversion?

ACoercion requires programmer commands, conversion happens automatically
BCoercion changes data structure, conversion changes variable names
CCoercion is implicit and automatic, while conversion is explicit and manual
DCoercion only applies to strings, conversion only applies to numbers
Attempts:
2 left
💡 Hint

Think about who initiates the change: the programmer or the language.

Practice

(1/5)
1. What is type coercion in compiler design?
easy
A. A process to optimize code execution speed
B. Manual conversion of one data type to another by the programmer
C. A syntax error caused by incompatible types
D. Automatic conversion of one data type to another by the system

Solution

  1. Step 1: Understand the definition of type coercion

    Type coercion means the system automatically changes one data type to another without programmer intervention.
  2. Step 2: Differentiate from type conversion

    Type conversion is manual, done by the programmer, unlike coercion which is automatic.
  3. Final Answer:

    Automatic conversion of one data type to another by the system -> Option D
  4. Quick Check:

    Type coercion = automatic conversion [OK]
Hint: Coercion is automatic, conversion is manual [OK]
Common Mistakes:
  • Confusing coercion with manual conversion
  • Thinking coercion causes errors
  • Assuming coercion is optional
2. Which of the following is a correct example of explicit type conversion?
easy
A. int_value = int('123')
B. result = 5 + '5'
C. value = 10.5 + 2
D. x = 'hello' + 5

Solution

  1. Step 1: Identify explicit type conversion syntax

    Explicit conversion uses functions like int(), float(), str() to manually change types.
  2. Step 2: Check each option

    int_value = int('123') uses int('123') which converts string '123' to integer 123 explicitly.
  3. Final Answer:

    int_value = int('123') -> Option A
  4. Quick Check:

    Explicit conversion uses functions like int() [OK]
Hint: Look for functions like int(), float(), str() for explicit conversion [OK]
Common Mistakes:
  • Confusing implicit coercion with explicit conversion
  • Assuming adding string and number works without conversion
  • Ignoring type conversion functions
3. What will be the output of this pseudo-code?
var a = '10';
var b = 5;
var c = a + b;
medium
A. 15
B. TypeError
C. '105'
D. '15'

Solution

  1. Step 1: Identify types of variables

    Variable a is a string '10', b is a number 5.
  2. Step 2: Understand type coercion in addition

    Adding string and number causes number to be coerced to string, so '10' + '5' = '105'.
  3. Final Answer:

    '105' -> Option C
  4. Quick Check:

    String + Number = String concatenation [OK]
Hint: Adding string + number converts number to string [OK]
Common Mistakes:
  • Assuming numeric addition happens
  • Expecting integer 15 as output
  • Ignoring type coercion rules
4. Identify the error in this pseudo-code involving type coercion:
var x = '20';
var y = x - 5;
var z = y + '5';
medium
A. Error in adding number to string in last line
B. No error, all operations valid
C. Error in subtracting number from string
D. Error in variable declaration syntax

Solution

  1. Step 1: Analyze subtraction operation

    Subtracting 5 from string '20' coerces '20' to number 20, so 20 - 5 = 15.
  2. Step 2: Analyze addition operation

    Adding number 15 and string '5' coerces 15 to string '15', so '15' + '5' = '155'.
  3. Final Answer:

    No error, all operations valid -> Option B
  4. Quick Check:

    Subtraction coerces string to number, addition coerces number to string [OK]
Hint: Subtraction forces numeric coercion, addition may cause string coercion [OK]
Common Mistakes:
  • Thinking subtraction with string causes error
  • Assuming addition with string and number is invalid
  • Confusing coercion direction
5. You have a list of mixed types: ["1", 2, "3", 4]. How can you convert all elements to integers using type coercion and conversion?
hard
A. Use a loop to apply explicit conversion function int() on each element
B. Add 0 to each element to force coercion to integer
C. Concatenate all elements as strings then convert to integer
D. Use a built-in function that automatically converts mixed lists

Solution

  1. Step 1: Understand the list elements

    The list contains strings and integers mixed together.
  2. Step 2: Apply explicit conversion

    Using a loop to apply int() on each element converts strings like '1' and '3' to integers 1 and 3, keeping integers unchanged.
  3. Final Answer:

    Use a loop to apply explicit conversion function int() on each element -> Option A
  4. Quick Check:

    Explicit conversion with int() on each element [OK]
Hint: Convert each element explicitly with int() in a loop [OK]
Common Mistakes:
  • Assuming adding 0 coerces strings to integers
  • Trying to convert entire list at once without loop
  • Expecting automatic conversion of mixed lists
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard