Bird
Raised Fist0
C++programming~20 mins

Constants and literals in C++ - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Master of Constants and Literals
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of const and literal usage
What is the output of this C++ code snippet?
C++
#include <iostream>
int main() {
    const int x = 5;
    constexpr int y = 10;
    int z = x + y;
    std::cout << z << std::endl;
    return 0;
}
AUndefined behavior
B510
CCompilation error
D15
Attempts:
2 left
💡 Hint
Remember that const and constexpr values can be used in expressions.
❓ Predict Output
intermediate
2:00remaining
Integer literal suffix effect
What is the output of this C++ code?
C++
#include <iostream>
int main() {
    auto a = 10u;
    auto b = 5;
    std::cout << (a - b) << std::endl;
    return 0;
}
ACompilation error
BUnsigned integer wrap-around value
C-5
D5
Attempts:
2 left
💡 Hint
Check the types of a and b and how subtraction works.
❓ Predict Output
advanced
2:00remaining
Floating-point literal precision
What is the output of this C++ code snippet?
C++
#include <iostream>
#include <iomanip>
int main() {
    float f = 1.23456789f;
    double d = 1.23456789;
    std::cout << std::setprecision(9) << f << " " << d << std::endl;
    return 0;
}
A1.23456788 1.23456789
BCompilation error
C1.23456789 1.23456788
D1.23456789 1.23456789
Attempts:
2 left
💡 Hint
Float has less precision than double.
❓ Predict Output
advanced
2:00remaining
Character literal and integer conversion
What is the output of this C++ code?
C++
#include <iostream>
int main() {
    char c = 'A';
    int i = c + 1;
    std::cout << i << std::endl;
    return 0;
}
AA1
BCompilation error
C66
D65
Attempts:
2 left
💡 Hint
Character literals are stored as integer ASCII codes.
🧠 Conceptual
expert
2:00remaining
Constant expression evaluation
Which of the following declarations is NOT a valid constant expression in C++?
Aconstexpr int z = rand();
Bconst int y = 10 * 2;
Cconstexpr int x = 5 + 3;
Dconstexpr int w = 7 - 4;
Attempts:
2 left
💡 Hint
Constant expressions must be evaluable at compile time.

Practice

(1/5)
1. Which of the following best describes a constant in C++?
easy
A. A fixed value that cannot be changed after initialization
B. A variable that can change its value anytime
C. A function that returns a fixed value
D. A pointer to a variable

Solution

  1. Step 1: Understand the meaning of constant

    A constant in C++ is a value that once set cannot be changed during program execution.
  2. Step 2: Compare options with definition

    A fixed value that cannot be changed after initialization matches this definition exactly, while others describe variables or functions.
  3. Final Answer:

    A fixed value that cannot be changed after initialization -> Option A
  4. Quick Check:

    Constant = fixed value [OK]
Hint: Constants never change value after being set [OK]
Common Mistakes:
  • Confusing constants with variables
  • Thinking constants are functions
  • Assuming pointers are constants
2. Which of the following is the correct way to declare a constant integer named MAX_SIZE with value 100 in C++?
easy
A. int MAX_SIZE = 100;
B. constant int MAX_SIZE = 100;
C. int const MAX_SIZE;
D. const int MAX_SIZE = 100;

Solution

  1. Step 1: Recall syntax for constant declaration

    In C++, the keyword const before the type declares a constant.
  2. Step 2: Check each option

    const int MAX_SIZE = 100; uses const int MAX_SIZE = 100; which is correct. int MAX_SIZE = 100; misses const, C is incomplete without initialization, D uses invalid keyword.
  3. Final Answer:

    const int MAX_SIZE = 100; -> Option D
  4. Quick Check:

    Use const before type for constants [OK]
Hint: Use 'const' keyword before type to declare constants [OK]
Common Mistakes:
  • Omitting 'const' keyword
  • Using 'constant' instead of 'const'
  • Not initializing the constant
3. What is the output of the following C++ code?
const int x = 5;
int y = 10;
std::cout << x + y << std::endl;
medium
A. Runtime error
B. 15
C. Syntax error
D. 510

Solution

  1. Step 1: Understand the code variables

    Variable x is a constant with value 5, y is 10.
  2. Step 2: Calculate the expression output

    The expression x + y equals 5 + 10 = 15, which is printed.
  3. Final Answer:

    15 -> Option B
  4. Quick Check:

    5 + 10 = 15 [OK]
Hint: Add constant and variable values normally [OK]
Common Mistakes:
  • Thinking constants cause errors
  • Concatenating numbers as strings
  • Expecting runtime errors
4. Identify the error in the following C++ code:
const int a = 10;
a = 20;
std::cout << a << std::endl;
medium
A. Incorrect use of std::cout
B. Missing semicolon after declaration
C. Cannot assign a new value to a constant variable
D. Variable 'a' not declared

Solution

  1. Step 1: Analyze constant assignment

    The variable a is declared as constant with value 10.
  2. Step 2: Check reassignment

    Trying to assign 20 to a is illegal because constants cannot change value.
  3. Final Answer:

    Cannot assign a new value to a constant variable -> Option C
  4. Quick Check:

    Constants cannot be reassigned [OK]
Hint: Constants cannot be changed after initialization [OK]
Common Mistakes:
  • Trying to reassign constants
  • Ignoring compiler error messages
  • Confusing constants with variables
5. You want to define a constant literal for the value of pi (3.14159) that cannot be changed and can be used throughout your program. Which of the following is the best way to do this in C++?
hard
A. const double pi = 3.14159;
B. #define pi 3.14159
C. float pi = 3.14159;
D. double const pi;

Solution

  1. Step 1: Understand constant literal requirements

    The value should be fixed, unchangeable, and precise (double is better than float).
  2. Step 2: Evaluate options

    const double pi = 3.14159; declares a constant double with initialization, which is best practice. float pi = 3.14159; is not constant, C uses macro which is less safe, D misses initialization.
  3. Final Answer:

    const double pi = 3.14159; -> Option A
  4. Quick Check:

    Use 'const double' with initialization for constants [OK]
Hint: Use 'const double' with value for precise constants [OK]
Common Mistakes:
  • Using non-const variables for constants
  • Using #define instead of const
  • Not initializing constants
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