DAY-4 Topics: Recursion, Storage Classes
DAY-4 Topics: Recursion, Storage Classes
void count(Int n)
{
static d=1;
print(n);
print(d);
d++;
if(n>1)
count(n-1);
print(d);
}
Ans: 3 1 2 2 1 3 4 4 4
main()
{
int x = 5, y = 10, count;
for (count = 1; count <= 2; ++count)
{
y += funcf(x) + funcg(x);
printf ("%d ", y);
}
}
funcf(int x)
{
int y;
y = funcg(x);
return (y);
}
funcg(int x)
{
staticint y = 10;
y += 1;
return (y+x);
}
Ans: 43, 80
fun(int n)
{
int i = 0
if (n > 1)
fun(n-1)
for (i = 0; i < n; i++)
Print ("* ")
}
Ans: 15
if ( n<= 1 )
{
*fp = 1;
return 1;
}
t = fun ( n-1, fp );
f = t + *fp;
*fp = t;
return f;
}
int main()
{
int x = 15;
printf("%d\n",fun(5, &x));
return 0;
}
Ans: 8
6. Find output of the following C code for fun(4, 3).
int fun(Int a, Int b)
{
if (b == 0)
return 0;
if (b % 2 == 0)
return fun(a+a, b/2) ;
return fun(a+a, b/2) + a;
}
Ans: 12
int fun1(int n)
{
if(n == 1)
return 0 ;
else
return 1 + fun1(n/2) ;
}
Ans: 3
Ans: 2,0,4,8
void reverse(int n)
{
if (n > 5)
exit(0);
printf("%d\n", n);
return reverse(n++);
}
int main()
{
reverse(1);
}
Ans: infinite recursion
11. What will be the output of the following code for fun(99)?
int fun(int n)
{
if (n > 100)
return n – 10;
return fun(fun(n+11));
}
Ans: 91
12. main()
{
int i=5;
printf("%d\n",i);
i--;
if(i)
main();
}
Ans: 1,1,1,1,1,-----infinite times
13. What will be the output of the following pseudocode for fun("pqr") ?
fun(char *a)
if (*a EQUALS NULL)
return
end if
fun(a+1)
fun(a+1)
print *a
Ans: rrqrrqp
14. main()
{
static int i=5;
printf("%d\n",i);
i--;
if(i)
main();
}
.
16. fun()
{
int var=100;
printf("The value of var in fun is %d\n",var);
}
main()
{
printf("The value of var in main is %d\n",var);
var=var+200;
fun();
}
20. main()
{
int exp=1,j=10;
switch(exp)
{
case 1:
{
int j=2;
printf("The value of j in case 1 is %d\n",j);
}
case 2:
{
printf("The value of j in case 2 is %d\n",j);
}}
}
21. main()
{
extern int var;
printf("The value of var is %d",var);
}
22. main()
{
extern int var;
printf("The value of var is %d",var);
}
int var=200;
23. main()
{
extern int var=200;
printf("The value of var is %d",var);
}
main()
{
int var=200;
printf("The value of var is %d",var);
function(var);
}
27.
one.c two.c
int var=200; int var=200;
function() function()
{ {
printf("Function in same translation unit"); printf("Function in other translation unit");
} }
main()
{
printf("The value of external var is %d\n",var);
function();
}
28. fib_term()
{
int a=0,b=1;
int c;
c=a+b;a=b;b=c;
return c;
}
main()
{
int count=0,i;
printf("First five terms of Fibonacci series are \n");
for(i=0;i<5;i++)
printf("%d",fib_term());
}
29. fib_term()
{
static int a=0,b=1;
int c;
c=a+b;a=b;b=c;
return c;
}
main()
{
int count=0,i;
printf("First five terms of Fibonacci series are \n");
for(i=0;i<5;i++)
printf("%d",fib_term());
}