The ones who are crazy enough to think they can change the world are the ones who do.- Steve Jobs
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.
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; }
Option: C
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.
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; }
Option: A
int num = 2 is static and it executes only for the first time of function execution. Thus outputted 2 3.
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++; } }
Option: C
Ofcourse its a runtime error because it has infinite while loop. Thus program never ends.
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; }
Option: B
Memory for a variable *ptr1 is allocated dynamically and returns the value 25 which is outputted.
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); } }
Option: C
Recursive function will always works as a stack FILO (Fist In Last Out).
We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.
© Copyright 2019