📖 Scenario: You are creating a simple calculator program in C that adds two numbers. To keep your code organized, you will declare and define a function that adds two integers.
🎯 Goal: Build a C program that declares a function add which takes two integers and returns their sum. Then call this function from main and print the result.
📋 What You'll Learn
Declare a function int add(int a, int b); before main
Define the function add after main
Call the function add inside main with arguments 5 and 7
Print the returned sum using printf
💡 Why This Matters
🌍 Real World
Functions help organize code into reusable blocks, making programs easier to read and maintain.
💼 Career
Understanding function declaration and definition is essential for writing modular and clean C programs in software development.
Progress0 / 4 steps
1
Declare the function
Write a function declaration for add that takes two int parameters named a and b, and returns an int. Place this declaration before the main function.
C
Hint
Function declaration tells the compiler about the function name, return type, and parameters before it is used.
2
Define the function
Write the function definition for add after the main function. It should take two int parameters a and b, and return their sum.
C
Hint
The function definition includes the code block that returns the sum of a and b.
3
Call the function in main
Inside the main function, call the add function with arguments 5 and 7. Store the result in an int variable named result.
C
Hint
Store the returned value from add(5, 7) in a variable result.
4
Print the result
Add a printf statement inside main to print the value of result with the message: "Sum is: %d\n".
C
Hint
Use printf("Sum is: %d\n", result); to display the sum.
Practice
(1/5)
1. What is the purpose of a function declaration in C?
easy
A. To allocate memory for variables inside the function
B. To execute the function's code
C. To tell the compiler about the function's name, return type, and parameters before its use
D. To print the function's output
Solution
Step 1: Understand function declaration role
A function declaration informs the compiler about the function's name, return type, and parameters so it can be used before its definition.
Step 2: Differentiate declaration from definition
Declaration does not contain the function's code; that is done in the definition.
Final Answer:
To tell the compiler about the function's name, return type, and parameters before its use -> Option C
Quick Check:
Function declaration = Inform compiler [OK]
Hint: Declaration tells compiler about function before use [OK]
Common Mistakes:
Confusing declaration with definition
Thinking declaration runs the function
Assuming declaration allocates memory
2. Which of the following is a correct function declaration in C?
easy
A. int add { int a, int b; };
B. int add(int a, int b) {}
C. add(int a, int b) int;
D. int add(int a, int b);
Solution
Step 1: Identify correct syntax for declaration
A function declaration includes the return type, function name, parameter list, and ends with a semicolon.
Step 2: Check each option
int add(int a, int b); matches correct syntax: return type 'int', name 'add', parameters '(int a, int b)', and semicolon. Others have syntax errors or missing semicolon.
Final Answer:
int add(int a, int b); -> Option D
Quick Check:
Declaration ends with semicolon [OK]
Hint: Declaration ends with semicolon and no body [OK]
Common Mistakes:
Missing semicolon at end
Including function body in declaration
Wrong parameter syntax
3. What will be the output of this C program?
#include <stdio.h>
int multiply(int x, int y);
int main() {
printf("%d", multiply(3, 4));
return 0;
}
int multiply(int x, int y) {
return x * y;
}
medium
A. 12
B. 7
C. 34
D. Compilation error
Solution
Step 1: Understand function declaration and call
The function 'multiply' is declared before main and defined after. main calls multiply(3, 4).
Step 2: Calculate function return value
multiply returns 3 * 4 = 12, which is printed by printf.
Final Answer:
12 -> Option A
Quick Check:
3 * 4 = 12 [OK]
Hint: Declaration allows call before definition [OK]
Common Mistakes:
Thinking declaration runs code
Confusing output with parameters
Expecting compilation error due to declaration
4. Identify the error in this function declaration and definition:
int sum(int a, int b)
{
return a + b
}
medium
A. Function name is invalid
B. Missing semicolon after return statement
C. Parameters must be declared outside parentheses
D. Return type should be void
Solution
Step 1: Check syntax inside function body
The return statement must end with a semicolon in C.
Step 2: Identify missing semicolon
Here, 'return a + b' lacks a semicolon, causing a syntax error.
Final Answer:
Missing semicolon after return statement -> Option B
Quick Check:
Statements end with semicolon [OK]
Hint: Return statements need semicolon [OK]
Common Mistakes:
Omitting semicolon after return
Misunderstanding parameter syntax
Changing return type unnecessarily
5. You want to declare and define a function that calculates the average of three integers and returns a float. Which of the following is the correct declaration and definition?
hard
A. float average(int a, int b, int c);
float average(int a, int b, int c) {
return (a + b + c) / 3.0;
}
B. int average(int a, int b, int c);
int average(int a, int b, int c) {
return (a + b + c) / 3.0;
}
C. float average(int a, int b, int c);
float average(int a, int b, int c) {
return (a + b + c) / 3;
}
D. float average(int a, int b, int c) {
return (a + b + c) / 3;
}
Solution
Step 1: Check function declaration matches definition
Declaration and definition must have same return type (float) and parameters (three ints).
Step 2: Ensure correct calculation for float average
To get float result, divide by 3.0 (float), not 3 (int).
Step 3: Verify other options
Integer division (/ 3) causes truncation. Declaring int return but dividing by 3.0 causes type mismatch. Missing declaration prevents prior use.
Final Answer:
float average(int a, int b, int c);
float average(int a, int b, int c) {
return (a + b + c) / 3.0;
} -> Option A
Quick Check:
Float division needs 3.0 [OK]
Hint: Use float division (3.0) and matching declaration [OK]
Common Mistakes:
Using integer division instead of float
Mismatching declaration and definition types
Omitting function declaration
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.