Bird
Raised Fist0
Blockchain / Solidityprogramming~20 mins

Function declaration and syntax in Blockchain / Solidity - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Master of Function Syntax in Blockchain
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple Solidity function
What is the output of this Solidity function when called with input 5?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract Test {
    function multiplyByTwo(uint x) public pure returns (uint) {
        return x * 2;
    }
}
A10
B5
C0
DCompilation error
Attempts:
2 left
💡 Hint
The function returns the input multiplied by 2.
❓ Predict Output
intermediate
2:00remaining
Return value of a function with multiple returns
What does this Solidity function return when called?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract Test {
    function getValues() public pure returns (uint, bool) {
        return (42, true);
    }
}
A(42, true)
B42
Ctrue
DCompilation error
Attempts:
2 left
💡 Hint
The function returns two values as a tuple.
❓ Predict Output
advanced
2:00remaining
Output of a function with state variable update
What is the value of the state variable after calling this function once?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract Counter {
    uint public count = 0;
    function increment() public {
        count += 1;
    }
}
ACompilation error
B0
C1
DUndefined
Attempts:
2 left
💡 Hint
The function increases the count by 1.
❓ Predict Output
advanced
2:00remaining
Error type from incorrect function syntax
What error does this Solidity code produce?
Blockchain / Solidity
pragma solidity ^0.8.0;
contract Test {
    function wrongSyntax() public returns (uint) {
        return 5;
    }
}
ATypeError: Return type mismatch
BRuntime error
CNo error, compiles fine
DSyntaxError: Missing semicolon
Attempts:
2 left
💡 Hint
Check the end of the return statement.
🧠 Conceptual
expert
2:00remaining
Function visibility and access control
Which function visibility keyword allows a function to be called only from within the contract or derived contracts?
Apublic
Binternal
Cexternal
Dprivate
Attempts:
2 left
💡 Hint
Think about which keyword restricts access to the contract and its children.

Practice

(1/5)
1. What is the correct way to declare a function named transferFunds in a blockchain smart contract?
easy
A. transferFunds function() { }
B. function transferFunds() { }
C. func transferFunds() { }
D. def transferFunds() { }

Solution

  1. Step 1: Identify the common function declaration keyword

    In many blockchain languages like Solidity, functions start with the keyword function.
  2. Step 2: Check the syntax structure

    The correct syntax is function functionName() { }, so function transferFunds() { } is correct.
  3. Final Answer:

    function transferFunds() { } -> Option B
  4. Quick Check:

    Function declaration uses 'function' keyword [OK]
Hint: Look for 'function' keyword before name [OK]
Common Mistakes:
  • Using 'def' instead of 'function'
  • Placing 'function' after the name
  • Using 'func' which is not standard here
2. Which of the following is the correct syntax to declare a function with one parameter named amount?
easy
A. function send(amount) { }
B. function send amount { }
C. function send(amount) => { }
D. function send[amount] { }

Solution

  1. Step 1: Recognize parameter syntax in function declaration

    Parameters are placed inside parentheses separated by commas if multiple.
  2. Step 2: Validate each option's syntax

    function send(amount) { } uses parentheses correctly: function send(amount) { }. Others misuse brackets, arrows, or omit parentheses.
  3. Final Answer:

    function send(amount) { } -> Option A
  4. Quick Check:

    Parameters go inside parentheses [OK]
Hint: Parameters always go inside parentheses () [OK]
Common Mistakes:
  • Omitting parentheses around parameters
  • Using square brackets instead of parentheses
  • Using arrow syntax incorrectly
3. What will be the output of this function call in a blockchain smart contract?
function multiply(x, y) { return x * y; }
multiply(3, 4);
medium
A. 7
B. Error
C. 34
D. 12

Solution

  1. Step 1: Understand the function logic

    The function multiplies two inputs x and y and returns the product.
  2. Step 2: Calculate the result for inputs 3 and 4

    3 multiplied by 4 equals 12.
  3. Final Answer:

    12 -> Option D
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Multiply inputs as given to get output [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating numbers as strings
  • Assuming syntax error without checking code
4. Identify the error in this function declaration:
function deposit(amount) {
balance += amount
}
medium
A. Missing semicolon after statement
B. Function name is invalid
C. No return statement in function
D. Missing parentheses around parameter

Solution

  1. Step 1: Check syntax inside the function body

    Statements inside functions usually require semicolons to end lines.
  2. Step 2: Identify missing semicolon

    The line balance += amount lacks a semicolon at the end.
  3. Final Answer:

    Missing semicolon after statement -> Option A
  4. Quick Check:

    Statements need semicolons [OK]
Hint: Check for missing semicolons inside function body [OK]
Common Mistakes:
  • Ignoring semicolon requirements
  • Thinking return is mandatory
  • Assuming function name is wrong
5. You want to create a function calculateFee that takes a transaction amount and returns 2% fee only if the amount is above 1000. Which is the correct function?
hard
A. function calculateFee(amount) { if amount > 1000 then return amount * 0.02 else return 0; }
B. function calculateFee(amount) { return amount * 0.02 if amount > 1000 else 0; }
C. function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } }
D. function calculateFee(amount) { if (amount > 1000) return amount * 0.02; }

Solution

  1. Step 1: Understand conditional return logic

    The function must check if amount is greater than 1000 and return 2% fee; otherwise, return 0.
  2. Step 2: Validate syntax correctness

    function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } } uses proper if-else syntax with braces and returns both cases correctly. Others have syntax errors or missing else return.
  3. Final Answer:

    function calculateFee(amount) { if (amount > 1000) { return amount * 0.02; } else { return 0; } } -> Option C
  4. Quick Check:

    Use if-else with braces for conditional returns [OK]
Hint: Use full if-else with braces for clear returns [OK]
Common Mistakes:
  • Missing else return causes undefined output
  • Incorrect if syntax without parentheses or braces
  • Using Python-style if-else in blockchain code
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