Here is a listing of C quiz on “Pointer to Functions” along with answers, explanations and/or solutions:
1. Which function is not called in the following C program?
-
#include
-
void first()
-
{
-
printf("first");
-
}
-
void second()
-
{
-
first();
-
}
-
void third()
-
{
-
second();
-
}
-
void main()
-
{
-
void (*ptr)();
-
ptr = third;
-
ptr();
-
}
a) Function first
b) Function second
c) Function third
d) None of the mentioned
Answer: d
Clarification: None.
2. How to call a function without using the function name to send parameters?
a) typedefs
b) Function pointer
c) Both typedefs and Function pointer
d) None of the mentioned
Answer: b
Clarification: None.
3. Which of the following is a correct syntax to pass a Function Pointer as an argument?
a) void pass(int (*fptr)(int, float, char)){}
b) void pass(*fptr(int, float, char)){}
c) void pass(int (*fptr)){}
d) void pass(*fptr){}
Answer: a
Clarification: None.
4. Which of the following is not possible in C?
a) Array of function pointer
b) Returning a function pointer
c) Comparison of function pointer
d) None of the mentioned
Answer: d
Clarification: None.
5. What will be the output of the following C code?
-
#include
-
void first()
-
{
-
printf("Hello World");
-
}
-
void main()
-
{
-
void *ptr() = first;
-
ptr++
-
ptr();
-
}
a) Illegal application of ++ to void data type
b) pointer function initialized like a variable
c) Illegal application of ++ to void data type & pointer function initialized like a variable
d) None of the mentioned
Answer: c
Clarification: None.
6. What will be the output of the following C code?
-
#include
-
int mul(int a, int b, int c)
-
{
-
return a * b * c;
-
}
-
void main()
-
{
-
int (*function_pointer)(int, int, int);
-
function_pointer = mul;
-
printf("The product of three numbers is:%d",
-
function_pointer(2, 3, 4));
-
}
a) The product of three numbers is:24
b) Run time error
c) Nothing
d) Varies
Answer: a
Clarification: None.
7. What will be the output of the following C code?
-
#include
-
int mul(int a, int b, int c)
-
{
-
return a * b * c;
-
}
-
void main()
-
{
-
int (function_pointer)(int, int, int);
-
function_pointer = mul;
-
printf("The product of three numbers is:%d",
-
function_pointer(2, 3, 4));
-
}
a) The product of three numbers is:24
b) Compile time error
c) Nothing
d) Varies
Answer: b
Clarification: None.
8. What will be the output of the following C code?
-
#include
-
void f(int (*x)(int));
-
int myfoo(int);
-
int (*fooptr)(int);
-
int ((*foo(int)))(int);
-
int main()
-
{
-
fooptr = foo(0);
-
fooptr(10);
-
}
-
int ((*foo(int i)))(int)
-
{
-
return myfoo;
-
}
-
int myfoo(int i)
-
{
-
printf("%dn", i + 1);
-
}
a) 10
b) 11
c) Compile time error
d) Undefined behaviour
Answer: b
Clarification: None.