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