Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Constructor function in Blockchain / Solidity - Interactive Code Practice

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

Complete the code to declare a constructor in Solidity.

Blockchain / Solidity
contract MyContract {
    [1]() {
        // constructor code
    }
}
Drag options to blanks, or click blank then click option'
Aconstructor
Bfunction
Cinit
Dsetup
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'function' instead of 'constructor' to declare the constructor.
Naming the constructor like a regular function.
2fill in blank
medium

Complete the code to initialize the state variable in the constructor.

Blockchain / Solidity
contract MyContract {
    uint public value;
    constructor(uint _value) {
        value = [1];
    }
}
Drag options to blanks, or click blank then click option'
Avalue
B_val
C_value
Dval
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not declared as a parameter.
Assigning the state variable to itself.
3fill in blank
hard

Fix the error in the constructor declaration for Solidity version 0.8+.

Blockchain / Solidity
contract MyContract {
    uint public value;
    [1](uint _value) {
        value = _value;
    }
}
Drag options to blanks, or click blank then click option'
Aconstructor
Bfunction MyContract
Cfunction constructor
DMyContract
Attempts:
3 left
💡 Hint
Common Mistakes
Using the contract name as constructor function name.
Including the 'function' keyword with constructor.
4fill in blank
hard

Fill both blanks to create a constructor that sets two state variables.

Blockchain / Solidity
contract MyContract {
    string public name;
    uint public age;
    constructor(string memory [1], uint [2]) {
        name = _name;
        age = _age;
    }
}
Drag options to blanks, or click blank then click option'
A_name
Bname
C_age
Dage
Attempts:
3 left
💡 Hint
Common Mistakes
Using state variable names as parameter names causing confusion.
Not matching parameter names with those used in the constructor body.
5fill in blank
hard

Fill all three blanks to create a constructor that initializes three state variables.

Blockchain / Solidity
contract MyContract {
    string public title;
    address public owner;
    uint public amount;
    constructor(string memory [1], address [2], uint [3]) {
        title = _title;
        owner = _owner;
        amount = _amount;
    }
}
Drag options to blanks, or click blank then click option'
A_title
B_owner
C_amount
Downer
Attempts:
3 left
💡 Hint
Common Mistakes
Using state variable names instead of parameter names in the constructor signature.
Mismatching parameter names and assignments.

Practice

(1/5)
1.

What is the main purpose of a constructor function in a blockchain smart contract?

easy
A. To execute code every time a function is called
B. To destroy the contract and remove it from the blockchain
C. To set initial values when the contract is deployed
D. To transfer tokens between users

Solution

  1. Step 1: Understand the role of constructor

    A constructor runs only once when the contract is deployed to set initial values.
  2. Step 2: Compare with other functions

    Other functions run multiple times; constructor is special for initialization only.
  3. Final Answer:

    To set initial values when the contract is deployed -> Option C
  4. Quick Check:

    Constructor sets initial values = B [OK]
Hint: Constructor runs once at deployment to set starting values [OK]
Common Mistakes:
  • Thinking constructor runs on every function call
  • Confusing constructor with regular functions
  • Believing constructor can be called multiple times
2.

Which of the following is the correct syntax to declare a constructor in Solidity?

contract MyContract {
    ? {
        // initialization code
    }
}
easy
A. function constructor() public
B. constructor() public
C. def constructor()
D. init() public

Solution

  1. Step 1: Recall Solidity constructor syntax

    In Solidity, the constructor is declared with the keyword constructor() without the function keyword.
  2. Step 2: Check options for correct syntax

    constructor() public matches the correct syntax: constructor() public. function constructor() public wrongly uses function constructor(), which is outdated. def constructor() uses Python syntax. init() public uses a wrong name.
  3. Final Answer:

    constructor() public -> Option B
  4. Quick Check:

    Solidity constructor uses 'constructor()' keyword = C [OK]
Hint: Use 'constructor()' keyword without 'function' in Solidity [OK]
Common Mistakes:
  • Using 'function constructor()' which is deprecated
  • Using other function names like 'init()'
  • Mixing syntax from other languages
3.

What will be the output of the following Solidity contract after deployment?

contract Simple {
    uint public value;
    constructor(uint _value) {
        value = _value;
    }
}

Assuming the contract is deployed with _value = 42, what is the value of value?

medium
A. 42
B. Compilation error
C. Undefined
D. 0

Solution

  1. Step 1: Understand constructor parameter usage

    The constructor takes _value and assigns it to the state variable value.
  2. Step 2: Check deployment argument effect

    Since the contract is deployed with _value = 42, value will be set to 42.
  3. Final Answer:

    42 -> Option A
  4. Quick Check:

    Constructor sets value to 42 at deployment = D [OK]
Hint: Constructor sets state variables from deployment arguments [OK]
Common Mistakes:
  • Assuming default zero value instead of passed value
  • Thinking constructor runs after deployment
  • Confusing variable names
4.

Identify the error in this Solidity contract constructor:

contract Test {
    uint public x;
    constructor() {
        x = 10
    }
}
medium
A. Constructor cannot assign values to variables
B. Constructor name should be Test
C. State variable x is not declared correctly
D. Missing semicolon after x = 10

Solution

  1. Step 1: Check Solidity syntax rules

    Each statement must end with a semicolon ;. The line x = 10 is missing a semicolon.
  2. Step 2: Verify constructor naming

    Since Solidity 0.4.22+, constructors use the constructor() keyword, so naming is correct.
  3. Final Answer:

    Missing semicolon after x = 10 -> Option D
  4. Quick Check:

    Statements need semicolons in Solidity = A [OK]
Hint: Always end Solidity statements with semicolon [OK]
Common Mistakes:
  • Using old constructor naming style
  • Forgetting semicolons
  • Thinking constructor can't assign variables
5.

You want to create a smart contract that stores an owner address set only once during deployment and cannot be changed later. Which constructor code snippet correctly achieves this?

contract OwnerContract {
    address public owner;
    ?
}
hard
A. constructor() { owner = msg.sender; }
B. function OwnerContract(address _owner) { owner = _owner; }
C. constructor(address _owner) { owner = _owner; }
D. constructor() { owner = address(0); }

Solution

  1. Step 1: Understand owner initialization best practice

    Setting owner = msg.sender in the constructor assigns the deployer's address as owner once.
  2. Step 2: Evaluate options

    constructor(address _owner) { owner = _owner; } requires passing owner address manually, which is possible but less secure. function OwnerContract(address _owner) { owner = _owner; } uses old constructor syntax. constructor() { owner = address(0); } sets owner to zero address, which is invalid. constructor() { owner = msg.sender; } correctly sets owner to deployer address.
  3. Final Answer:

    constructor() { owner = msg.sender; } -> Option A
  4. Quick Check:

    Use msg.sender in constructor to set owner = A [OK]
Hint: Use msg.sender in constructor to set owner securely [OK]
Common Mistakes:
  • Using old constructor syntax
  • Setting owner to zero address
  • Passing owner address manually risking errors
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