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

Functions Tricky Interview Questions and Answers

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

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

#include<stdio.h>
int main()
{
	int *ptr = fun();
	printf("%d", *ptr);
	return 0;
}
int fun()
{
	int num = 10;
	return num;
}

A. 10

B. Compilation error

C. Runtime error

D. None of the above

x

 

Option: C

Explanation

*ptr doesn't have any address to display its value because ptr itself contains a value 10 and not an address.

Answer


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

#include<stdio.h>
int main()
{
	char str1[] = {'H', 'A', 'I'}; 
	char str2[] = {'H', 'A', 'I'};
	if (strcmp(str1, str2))
	{
		printf("strings are not equal");
	}
	else
	{
		printf("strings are equal");		
	}
	return 0;
}

A. strings are not equal

B. Compilation Error

C. strings are equal

D. None of the above

x

 

Option: A

Explanation

strcmp() is an inbuilt c function, which returns zero when both strings are equal. Thus else part is executed and outputted strings are not equal

Answer


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

#include<stdio.h>
int main()
{
	void swap(); 
	int x = 5, y = 10;
	swap(&x, &y);
	printf("x = %d y = %d",x,y);
	return 0;
}
void swap(int *a, int *b)
{
	*a ^= *b, *b ^= *a, *a ^= *b;
}

A. x = 5 y = 10

B. x = 10 y = 10

C. x = 10 y = 5

D. x = 5 y = 5

x

 

Option: C

Explanation

swap( &x, &y ); clearly its a call by reference, which means any changes made to formal parameter will affect the actual parameter.
Thus by swapping the values of a and b inside the function will so affect the values stored in a variable x and y.

Answer


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

#include<stdio.h>
int main()
{
	int i;
	i = main();
	printf("%d", i);
int main()
{	
	int a;
	a = 5 * 5;
	return a;			
}
return 0;
}

A. Compilation error

B. Runtime error

C. address

D. 25

x

 

Option: B

Explanation

main(); function is called repeatedly and the program never ends until your system memory crash.

Answer


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

#include<stdio.h>
int swap(int *a, int *b)
{
	*a = *a + *b;
	*b = *a - *b;
	*a = *a - *b;
}
int main()
{
	int x = 5, y = 10; 
	swap(&x, &y);
	printf("%d %d\n", x, y);
	return 0;
}

A. Runtime error

B. 5 10

C. 10 5

D. Compilation error

x

 

Option: C

Explanation

Simply we passes address of x and y to the function swap( int *a, int *b ) and the value stored inside the address of x and y is accessed by the pointer variable *a and *b.

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