Bird
Raised Fist0
C++programming~10 mins

Type casting in C++ - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to convert the integer 10 to a float.

C++
int a = 10;
float b = [1];
std::cout << b << std::endl;
Drag options to blanks, or click blank then click option'
Astatic_cast<float>(a)
B(int)a
Cfloat(a)
Da
Attempts:
3 left
💡 Hint
Common Mistakes
Using C-style cast like (int)a which does not convert to float.
Assigning integer directly without casting.
2fill in blank
medium

Complete the code to cast a double to an integer using C-style cast.

C++
double pi = 3.14159;
int x = [1];
std::cout << x << std::endl;
Drag options to blanks, or click blank then click option'
Astatic_cast<int>(pi)
B(int)pi
Cint(pi)
Dpi
Attempts:
3 left
💡 Hint
Common Mistakes
Using int(pi) which is a functional-style cast instead of C-style.
Assigning double directly to int without cast.
3fill in blank
hard

Fix the error in the code by correctly casting a void pointer to an int pointer.

C++
void* ptr = nullptr;
int* iptr = [1];
std::cout << iptr << std::endl;
Drag options to blanks, or click blank then click option'
Areinterpret_cast<int*>(ptr)
Bstatic_cast<int*>(ptr)
C(int*)ptr
Ddynamic_cast<int*>(ptr)
Attempts:
3 left
💡 Hint
Common Mistakes
Using dynamic_cast which only works with polymorphic types.
Using C-style cast which is less safe.
4fill in blank
hard

Fill both blanks to create a map from string lengths to strings, filtering only strings longer than 3 characters.

C++
std::map<int, std::string> length_map;
for (const auto& word : words) {
    if (word.[1] > 3) {
        length_map[static_cast<int>(word.[2])] = word;
    }
}
Drag options to blanks, or click blank then click option'
Aword.length()
Bsize()
Clength()
Dword.size()
Attempts:
3 left
💡 Hint
Common Mistakes
Using incorrect member functions or missing static_cast for int conversion.
Using word.length() inconsistently.
5fill in blank
hard

Fill all three blanks to create a vector of floats from a vector of ints by casting each element.

C++
std::vector<int> nums = {1, 2, 3, 4};
std::vector<float> floats;
for (auto [1] : nums) {
    floats.push_back([2]);
}

float first = floats[[3]];
Drag options to blanks, or click blank then click option'
Anum
Bstatic_cast<float>(num)
C0
Di
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong loop variable name.
Forgetting to cast inside push_back.
Using wrong index to access vector element.

Practice

(1/5)
1. What does static_cast<int>(3.14) do in C++?
easy
A. Leaves the value unchanged as 3.14
B. Converts the integer 3 to the floating-point number 3.14
C. Causes a runtime error
D. Converts the floating-point number 3.14 to the integer 3

Solution

  1. Step 1: Understand static_cast usage

    static_cast<int> converts a value to an integer type explicitly.
  2. Step 2: Apply static_cast to 3.14

    The floating-point number 3.14 is converted to integer by dropping the decimal part, resulting in 3.
  3. Final Answer:

    Converts the floating-point number 3.14 to the integer 3 -> Option D
  4. Quick Check:

    static_cast<int>(3.14) = 3 [OK]
Hint: static_cast truncates decimals when converting float to int [OK]
Common Mistakes:
  • Thinking it rounds the number instead of truncating
  • Confusing static_cast with dynamic_cast
  • Expecting a runtime error from static_cast
2. Which of the following is the correct syntax for casting a double variable d to int using static_cast?
easy
A. int i = (int)static_cast(d);
B. int i = static_cast<int>(d);
C. int i = static_cast(d, int);
D. int i = static_cast<int>d;

Solution

  1. Step 1: Recall static_cast syntax

    The correct syntax is static_cast<type>(expression).
  2. Step 2: Match syntax with options

    int i = static_cast<int>(d); matches the correct syntax: int i = static_cast<int>(d);.
  3. Final Answer:

    int i = static_cast<int>(d); -> Option B
  4. Quick Check:

    Correct static_cast syntax = int i = static_cast<int>(d); [OK]
Hint: Use angle brackets for type in static_cast [OK]
Common Mistakes:
  • Using parentheses instead of angle brackets for type
  • Placing type after variable instead of inside <>
  • Mixing C-style cast syntax with static_cast
3. What is the output of the following C++ code?
double x = 9.99;
int y = static_cast<int>(x);
std::cout << y << std::endl;
medium
A. 9.99
B. 10
C. 9
D. Compilation error

Solution

  1. Step 1: Understand static_cast behavior on double to int

    static_cast truncates the decimal part, so 9.99 becomes 9.
  2. Step 2: Predict output of std::cout

    The integer 9 is printed to the console.
  3. Final Answer:

    9 -> Option C
  4. Quick Check:

    static_cast<int>(9.99) = 9 [OK]
Hint: Casting double to int drops decimals, no rounding [OK]
Common Mistakes:
  • Expecting rounding to 10 instead of truncation
  • Confusing output type with original double
  • Thinking static_cast causes compile error here
4. Identify the error in this code snippet:
float f = 3.5f;
int i = static_cast<int> f;
std::cout << i;
medium
A. Missing parentheses after static_cast<int>
B. Cannot cast float to int using static_cast
C. Variable i is not declared
D. Missing semicolon after float declaration

Solution

  1. Step 1: Check static_cast syntax

    static_cast requires parentheses around the value to cast, like static_cast<int>(f).
  2. Step 2: Identify missing parentheses

    The code misses parentheses after static_cast<int>, causing syntax error.
  3. Final Answer:

    Missing parentheses after static_cast<int> -> Option A
  4. Quick Check:

    static_cast<int>(f) needs parentheses [OK]
Hint: Always use parentheses after static_cast type [OK]
Common Mistakes:
  • Omitting parentheses after static_cast
  • Thinking static_cast can't convert float to int
  • Ignoring compiler error messages
5. Given the code below, what will be the output?
int a = 65;
char c = static_cast<char>(a);
std::cout << c << std::endl;

Note: ASCII value 65 corresponds to 'A'.
hard
A. 'A'
B. Compilation error
C. 65
D. Undefined behavior

Solution

  1. Step 1: Understand static_cast from int to char

    static_cast converts the integer 65 to its corresponding ASCII character 'A'.
  2. Step 2: Predict output of std::cout

    Printing the char variable outputs the character 'A'.
  3. Final Answer:

    'A' -> Option A
  4. Quick Check:

    static_cast<char>(65) = 'A' [OK]
Hint: Casting int to char prints ASCII character [OK]
Common Mistakes:
  • Expecting numeric 65 to print instead of 'A'
  • Thinking casting int to char causes error
  • Confusing char with string output
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