Bird
Raised Fist0
Cprogramming~20 mins

Function calling - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Calling Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested function calls
What is the output of this C program when run?
C
#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int multiply(int x, int y) {
    return x * y;
}

int main() {
    int result = multiply(add(2, 3), add(4, 1));
    printf("%d\n", result);
    return 0;
}
A15
B20
C25
D10
Attempts:
2 left
💡 Hint
Remember to evaluate the inner add() calls before multiply().
❓ Predict Output
intermediate
2:00remaining
Function call with pointer argument
What will be printed by this C program?
C
#include <stdio.h>

void update(int *p) {
    *p = *p + 10;
}

int main() {
    int val = 5;
    update(&val);
    printf("%d\n", val);
    return 0;
}
A15
B10
C5
D0
Attempts:
2 left
💡 Hint
The function changes the value at the pointer's address.
❓ Predict Output
advanced
2:00remaining
Output of recursive function call
What is the output of this C program?
C
#include <stdio.h>

int factorial(int n) {
    if (n == 0) return 1;
    else return n * factorial(n - 1);
}

int main() {
    printf("%d\n", factorial(4));
    return 0;
}
A120
B10
C16
D24
Attempts:
2 left
💡 Hint
Factorial of 4 is 4*3*2*1.
❓ Predict Output
advanced
2:00remaining
Output with function pointer call
What does this C program print?
C
#include <stdio.h>

int square(int x) {
    return x * x;
}

int main() {
    int (*func_ptr)(int) = square;
    int val = 3;
    printf("%d\n", func_ptr(val));
    return 0;
}
A9
B6
C3
D0
Attempts:
2 left
💡 Hint
Function pointers can be called like normal functions.
❓ Predict Output
expert
2:00remaining
Output of function call with side effects and order
What is the output of this C program?
C
#include <stdio.h>

int f(int *x) {
    (*x)++;
    return *x;
}

int main() {
    int a = 5;
    int result = f(&a) + f(&a);
    printf("%d\n", result);
    return 0;
}
A12
B13
C11
D10
Attempts:
2 left
💡 Hint
The order of evaluation of function arguments is unspecified in C.

Practice

(1/5)
1. What does it mean to call a function in C?
easy
A. Execute the code inside the function by using its name and parentheses
B. Define the function with its code block
C. Declare the function prototype
D. Write comments about the function

Solution

  1. Step 1: Understand function calling

    Calling a function means running the code inside it by using its name followed by parentheses.
  2. Step 2: Differentiate from defining or declaring

    Defining or declaring a function is writing it, not running it. Calling is executing it.
  3. Final Answer:

    Execute the code inside the function by using its name and parentheses -> Option A
  4. Quick Check:

    Function call = run code by name() [OK]
Hint: Calling means running code by writing functionName() [OK]
Common Mistakes:
  • Confusing calling with defining the function
  • Thinking calling means declaring the function prototype
  • Believing calling is writing comments
2. Which of the following is the correct syntax to call a function named printMessage in C?
easy
A. printMessage();
B. call printMessage;
C. printMessage;
D. function printMessage();

Solution

  1. Step 1: Recall function call syntax

    In C, calling a function requires its name followed by parentheses and a semicolon.
  2. Step 2: Check each option

    printMessage(); uses correct syntax: function name + parentheses + semicolon. Others are invalid syntax.
  3. Final Answer:

    printMessage(); -> Option A
  4. Quick Check:

    Function call syntax = name() [OK]
Hint: Function call always ends with (); [OK]
Common Mistakes:
  • Omitting parentheses when calling
  • Using keywords like 'call' which don't exist in C
  • Missing semicolon at the end
3. What will be the output of this C program?
void greet() {
    printf("Hello!\n");
}

int main() {
    greet();
    return 0;
}
medium
A. Compilation error
B. Hello!
C. No output
D. greet()

Solution

  1. Step 1: Understand function greet()

    The function greet() prints "Hello!" followed by a newline.
  2. Step 2: Check main() function call

    Main calls greet(), so the program prints "Hello!" on the screen.
  3. Final Answer:

    Hello! -> Option B
  4. Quick Check:

    Calling greet() prints Hello! [OK]
Hint: Calling greet() prints its message exactly [OK]
Common Mistakes:
  • Thinking function name prints output
  • Assuming no output without explicit main print
  • Confusing function call with declaration
4. Identify the error in this code snippet:
void sayHi() {
    printf("Hi!\n");
}

int main() {
    sayHi;
    return 0;
}
medium
A. printf statement is incorrect
B. Missing semicolon after sayHi
C. Function sayHi is not declared
D. Missing parentheses when calling sayHi

Solution

  1. Step 1: Check function call syntax

    In main(), sayHi is written without parentheses, so it is not a function call.
  2. Step 2: Correct function call

    To call sayHi, it must be written as sayHi(); with parentheses.
  3. Final Answer:

    Missing parentheses when calling sayHi -> Option D
  4. Quick Check:

    Function call needs () [OK]
Hint: Always use () to call a function [OK]
Common Mistakes:
  • Omitting parentheses when calling functions
  • Confusing function name with variable
  • Assuming semicolon alone calls function
5. Given the function below, how would you call multiply to multiply 4 and 5 and print the result?
int multiply(int a, int b) {
    return a * b;
}

int main() {
    // Your code here
    return 0;
}
hard
A. int result = multiply(4, 5);
B. multiply(4, 5);
C. printf("%d", multiply(4, 5));
D. print(multiply(4, 5));

Solution

  1. Step 1: Understand multiply function

    It returns the product of two integers.
  2. Step 2: Call multiply and print result

    To show output, call multiply(4, 5) inside printf with %d format.
  3. Final Answer:

    printf("%d", multiply(4, 5)); -> Option C
  4. Quick Check:

    Use printf to display function return [OK]
Hint: Use printf to show returned value from function [OK]
Common Mistakes:
  • Calling multiply without printing result
  • Using print() instead of printf() in C
  • Assigning result but not printing
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