What is the primary purpose of using functions in C programming?
Answer: A
Functions allow code reusability, modularity, and easier maintenance. They break down complex problems into smaller, manageable pieces.
Q.2Easy
Which keyword is used to define a function in C?
Answer: C
In C, functions are defined by specifying the return type followed by the function name and parameters. No specific 'function' keyword is used.
Q.3Medium
What is the default return type of a function in C if not specified?
Answer: B
In older C standards (before C99), if no return type is specified, the default is 'int'. However, this is deprecated in modern C standards.
Q.4Easy
Which of the following is a correct function declaration?
Answer: A
Function declaration syntax is: return_type function_name(parameter_list);
Q.5Easy
What will be the output of the following code?
int func(int x) { return x * 2; }
int main() { printf("%d", func(5)); }
Answer: B
func(5) returns 5 * 2 = 10, which is then printed.
Advertisement
Q.6Easy
How many times can a function be called in a C program?
Answer: C
A function can be called as many times as needed within a program, limited only by memory and stack constraints.
Q.7Medium
What is the difference between function declaration and function definition?
Answer: A
Declaration (prototype) tells the compiler about the function signature; definition provides the actual function body and implementation.
Q.8Medium
What happens if a function does not have a return statement?
Answer: C
If a function with a non-void return type lacks a return statement, it returns undefined/garbage value. For void functions, no return is needed.
Q.9Medium
Which of the following function calls is valid?
int calculate(int a, float b, char c);
Answer: A
All three parameters must be provided in correct order and compatible types.
Q.10Medium
What is a recursive function?
Answer: A
A recursive function is one that calls itself. It must have a base case to avoid infinite recursion.
Q.11Medium
What is the issue with the following code?
int factorial(int n) { return n * factorial(n-1); }
Answer: B
The recursive function lacks a base case (like if n==0 return 1) to terminate recursion, causing infinite recursion and stack overflow.
Q.12Medium
In C, are function parameters passed by value or by reference by default?
Answer: A
C passes parameters by value by default. To achieve pass-by-reference effect, pointers must be used explicitly.
Q.13Medium
What will be the output?
void modify(int x) { x = x + 10; }
int main() { int a = 5; modify(a); printf("%d", a); }
Answer: A
Since parameters are passed by value, changes to 'x' inside modify() don't affect 'a' in main(). Output is 5.
Q.14Hard
How can you modify a variable inside a function and reflect the change in the calling function?
Answer: D
All three methods work: return value, pass pointers, or use global variables. Each has different use cases and implications.
Q.15Hard
What is the output of this code?
int* getPointer(int *p) { return p; }
int main() { int a = 10; int *ptr = getPointer(&a); printf("%d", *ptr); }
Answer: A
The function receives the address of 'a', returns it, and dereferencing gives 10. However, returning pointers to local variables is risky in other contexts.
Q.16Hard
What are static local variables in functions used for?
Answer: A
Static local variables retain their value between function calls, initialized only once, and are stored in data segment.
Q.17Hard
What will be the output?
int counter() { static int count = 0; return ++count; }
int main() { printf("%d ", counter()); printf("%d ", counter()); printf("%d", counter()); }
Answer: B
Static variable 'count' retains its value. First call: 0+1=1, second: 1+1=2, third: 2+1=3.
Q.18Hard
Which of the following is TRUE about inline functions in C99 standard?
Answer: B
The 'inline' keyword is a hint to the compiler to replace function calls with the function body, reducing overhead but increasing code size.
Q.19Hard
What is function overloading in the context of C?
Answer: B
C does not support function overloading. To achieve similar functionality, use different names or variadic functions (using ...) or union of function pointers.
Q.20Easy
What is the return type of the strlen() function in C?
Answer: B
strlen() returns size_t, which is an unsigned integer type used to represent sizes and counts in C.