Home Subjects C Programming Functions

C Programming
Functions

C language from basics to advanced placement prep

47 Q 10 Topics Take Mock Test
Advertisement
Difficulty: All Easy Medium Hard 31–40 of 47
Topics in C Programming
Q.31 Medium Functions
What will happen when this code executes?
void func() { func(); } int main() { func(); }
A Infinite recursion until stack overflow
B Compiler error
C Runtime error immediately
D Program exits gracefully
Correct Answer:  A. Infinite recursion until stack overflow
EXPLANATION

This is infinite recursion with no base case, causing stack overflow as the function keeps calling itself.

Test
Q.32 Medium Functions
Which of the following about function declaration and definition is TRUE?
A Declaration and definition must be in the same file
B A function can be declared multiple times but defined only once
C Definition is optional if declaration is provided
D Declaration is optional in C
Correct Answer:  B. A function can be declared multiple times but defined only once
EXPLANATION

Functions can have multiple forward declarations but only one definition. This allows function prototypes in header files.

Test
Q.33 Medium Functions
Which of the following correctly represents a callback function scenario?
A A function that calls itself recursively
B A function pointer passed as argument to another function
C A function that modifies global variables
D A function declared with extern keyword
Correct Answer:  B. A function pointer passed as argument to another function
EXPLANATION

A callback function is a function pointer passed to another function, which calls it at a later point in time.

Test
Q.34 Medium Functions
What happens if a function declared as returning int doesn't contain a return statement?
A Compiler error
B Returns 0 by default
C Returns undefined/garbage value
D Depends on the compiler implementation
Correct Answer:  C. Returns undefined/garbage value
EXPLANATION

Without an explicit return statement, the function returns whatever value is in the return register, which is undefined behavior.

Test
Q.35 Medium Functions
Which of the following is true about a static function in C?
A It cannot be called from other files
B It has only one instance throughout the program
C It is stored in static memory segment
D All of the above
Correct Answer:  A. It cannot be called from other files
EXPLANATION

A static function has file scope and cannot be accessed from other translation units, providing encapsulation.

Test
Q.36 Medium Functions
What is the correct way to declare a function that accepts variable number of arguments?
A void func(...);
B void func(int, ...);
C void func(int n, ...);
D Both B and C are correct
Correct Answer:  D. Both B and C are correct
EXPLANATION

Variadic functions require at least one named parameter before the ellipsis. Both options B and C follow the correct syntax.

Test
Q.37 Medium Functions
What will be printed by this code?
void func(int arr[10]) { printf("%lu", sizeof(arr)); }
int main() { int a[10]; func(a); }
A 40
B 10
C 8 (or 4 on 32-bit)
D Compiler error
Correct Answer:  C. 8 (or 4 on 32-bit)
EXPLANATION

When arrays are passed to functions, they decay to pointers. sizeof(arr) returns the size of the pointer, not the array.

Test
Q.38 Medium Functions
In C, when a function is called with fewer arguments than declared, what happens?
A Compiler error occurs
B Runtime error occurs
C Garbage values are passed for missing arguments
D It compiles and runs without error if using old-style declarations
Correct Answer:  D. It compiles and runs without error if using old-style declarations
EXPLANATION

Old-style K&R C declarations don't perform argument checking, allowing calls with fewer arguments. Modern prototyped functions generate compiler errors.

Test
Q.39 Medium Functions
Which of the following correctly declares a function pointer that points to a function returning int and taking two int parameters?
A int (*funcPtr)(int, int);
B int *funcPtr(int, int);
C funcPtr *int(int, int);
D int funcPtr*(int, int);
Correct Answer:  A. int (*funcPtr)(int, int);
EXPLANATION

The correct syntax for function pointer is return_type (*pointer_name)(parameter_types). Option A is correct.

Test
Q.40 Medium Functions
What will be the output?
void modify(int x) { x = x + 10; }
int main() { int a = 5; modify(a); printf("%d", a); }
A 5
B 15
C 10
D Error
Correct Answer:  A. 5
EXPLANATION

Since parameters are passed by value, changes to 'x' inside modify() don't affect 'a' in main(). Output is 5.

Test
IGET
IGET AI
Online · Exam prep assistant
Hi! 👋 I'm your iget AI assistant.

Ask me anything about exam prep, MCQ solutions, study tips, or strategies! 🎯
UPSC strategy SSC CGL syllabus Improve aptitude NEET Biology tips