Pointers - C Questions

Pointers Questions - 1 Pointers Questions - 2 Pointers Questions - 3 Pointers Questions - 4 Pointers Questions - 5 Pointers Questions - 6 Pointers Questions - 7 Pointers Questions - 8

Data Types - C Questions

Data Types Questions - 1 Data Types Questions - 2 Data Types Questions - 3 Data Types Questions - 4 Data Types Questions - 5

Operators - C Questions

Operators Questions - 1 Operators Questions - 2 Operators Questions - 3 Operators Questions - 4 Operators Questions - 5

Structures - C Questions

Structures Questions - 1 Structures Questions - 2 Structures Questions - 3 Structures Questions - 4 Structures Questions - 5

Files - C Questions

Files Questions - 1 Files Questions - 2 Files Questions - 3 Files Questions - 4 Files Questions - 5

printf - C Questions

printf Questions - 1 printf Questions - 2 printf Questions - 3 printf Questions - 4 printf Questions - 5

Variables - C Questions

Variables Questions - 1 Variables Questions - 2 Variables Questions - 3 Variables Questions - 4 Variables Questions - 5

Preprocessor Macros

Preprocessor Macros - 1 Preprocessor Macros - 2 Preprocessor Macros - 3 Preprocessor Macros - 4 Preprocessor Macros - 5

While Loop - C Questions

While Loop Questions - 1 While Loop Questions - 2 While Loop Questions - 3 While Loop Questions - 4 While Loop Questions - 5

for Loop - C Questions

for Loop Questions - 1 for Loop Questions - 2 for Loop Questions - 3 for Loop Questions - 4 for Loop Questions - 5

if else - C Questions

if else Questions - 1 if else Questions - 2 if else Questions - 3 if else Questions - 4 if else Questions - 5

Switch case - C Questions

Switch case Questions - 1 Switch case Questions - 2 Switch case Questions - 3 Switch case Questions - 4 Switch case Questions - 5

Array - C Questions

Array Questions - 1 Array Questions - 2 Array Questions - 3 Array Questions - 4 Array Questions - 5

Functions - C Questions

Functions Questions - 1 Functions Questions - 2 Functions Questions - 3 Functions Questions - 4 Functions Questions - 5

Memory Allocation

Memory Allocation - 1 Memory Allocation - 2
The ones who are crazy enough to think they can change the world are the ones who do.
- Steve Jobs

C Functions Interview Questions

In most of the MNC interview questions such as in ZOHO interview question, IVTL Infoview interview questions, Amazon interview questions, GOOGLE interview questions, Infosys interview questions and even in Voonik interview questions, We come across several Tricky C Questions about which 2:5 of the questions are from Functions in c. Solving that kind of tricky C questions is not an easy task for all C programmers. We need more practices to solve it with ease. So we provide 25+ interesting C questions in Functions to make your MNC interview very easy.

C Functions Questions

16. What will be the output of the C program?

#include<stdio.h>
void fun(int*, int);
void (*ptr[1])(int*, int);
int main()
{
	int a = 2;
	int b = 4;
	ptr[0] = fun;
	ptr[0](&a, b);
	printf("%d %d ", a, b);
	return 0;
}
void fun(int *p, int q)
{
	int tmp = *p;
	*p = q;
	q = tmp;
}

A. 2 2

B. 4 2

C. 4 4

D. 2 4

x

 

Option: C

Explanation

This program is an best example for call by reference and call by value.
ptr[0](&a, b); passing address of a variable is said to be call by reference and passing a value via variable is said to be call by value
here any changes made to *p will affect variable a because address of *p and a are same. But not in case of b and *q.

Answer


17. What will be the output of the C program?

#include<stdio.h>
int num = 5;
int main()
{
	fun();
	fun();
	return 0;
}
int fun()
{
	static int num = 2;
	printf("%d ",num);
	num++;
	return 0;
}

A. 2 3

B. 2 2

C. 5 5

D. 5 6

x

 

Option: A

Explanation

int num = 2 is static and it executes only for the first time of function execution. Thus outputted 2 3.

Answer


18. What will be the output of the C program?

#include<stdio.h>
void fun(char *);
int main()
{
	char *string = "function in c";
	fun(string);
	printf("%s", string);
	return 0;
}
void fun(char *a)
{
	while(*a)
{
	*a += 1;
	a++;
}
}

A. function in c

B. Compilation error

C. Runtime Error

D. Nothing prints

x

 

Option: C

Explanation

Ofcourse its a runtime error because it has infinite while loop. Thus program never ends.

Answer


19. What will be the output of the C program?

#include<stdio.h>
#include<stdlib.h>
int* fun();
int main()
{
	int *ptr = fun();
	printf("%d", *ptr);
	return 0;
}
int* fun()
{
	int *ptr1 = (int*) malloc(sizeof(int));
	*ptr1 = 25;
	return ptr1;
}

A. Compilation error

B. 25

C. address

D. Runtime error

x

 

Option: B

Explanation

Memory for a variable *ptr1 is allocated dynamically and returns the value 25 which is outputted.

Answer


20. What will be the output of the C program?

#include<stdio.h>
void fun(int);
int main()
{
	int a = 3;
	fun(a);
	return 0;
}
void fun(int n)
{				
	if (n > 0)
	{
		fun(--n);
		printf("%d ", n);
	}
}

A. 1 2 3

B. No Output

C. 0 1 2

D. 0

x

 

Option: C

Explanation

Recursive function will always works as a stack FILO (Fist In Last Out).

How it works

Here fun(--n) is a calling function inside fun(int n)
irrespective of recursive call, the value will be stored in the memory loction as shown below i.e) statement below fun( --n ) will execute for everytime when the function is called, irrespective of recursion above it.
while displaying output, it simply reverse its order as it stores the value in stack.

Answer


Report Us

We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.

Report

We to update you