20 quick and easy cleaning tips that can really help in commercial cleaning
10 fisa functii recursive 1 23feb2012
1. void f(long n)
1. Pentru definiţia de mai jos a subprogramului f, ce {if (n!=0)
se afişează ca urmare a apelului f(121,1);? {if (n%2==0)cout<<n%10;
void f(long n, int i) f(n/10);
{if(n==0) cout<<i; if (n%2!=0)cout<<n%10;
if(n%3>0) f(n/3,i+1); }
} elsecout<<endl;
}
2. Pentru definiţia de mai jos a subprogramului f, ce
se afişează ca urmare a apelului f(125);? 8. Se consideră subprogramul f cu definiţia de mai jos.
void f(int n) Ce se va afişa în urma apelului f(12345);?
{ cout<<n%10; void f(long n)
if(n!=0) {if (n!=0)
{cout<<n%10; {if (n%2!=0)cout<<n%10;
f(n/100); f(n/10);
} if (n%2==0)cout<<n%10;
} }
elsecout<<endl;
3. Pentru definiţia de mai jos a subprogramului f, ce }
se afişează ca urmare a apelului f(26);?
void f (int x) 9. Se consideră subprogramul cu definiţia de mai jos.
{ if(x>0) Ce valoare se va afişa în urma executării instrucţiunii
{cout<<'x'; cout<<f(8); ?
f(x/3); int f (int n)
cout<<'y'; {int c;
} if (n!=0)
} {if (n%2==0)c=1+f(n/2);
elsec=f(n/2);
4. Pentru subprogramul f definit mai jos, ce se cout<<n%2;
afişează ca urmare a apelului f(15,2);? return c;
void f (int n, int x) }
{ if(x>n)cout<<'*'; elsereturn 0;
else }
{ f(n,x+4);
cout<<x%10; 10. Se consideră subprogramul cu definiţia de mai jos.
} Ce valoare are f(3,1)?
} int f(int n,int y)
{ if(n!=0)
5. Pentru definiţia de mai jos a subprogramului f, ce { y=y+1;
se afişează ca urmare a apelului f(10);? return y+f(n-1,y);
void f (int b) }
{if(3<=b) elsereturn 0;
{ f(b-2); }
cout<<'*';
} 11. Pentru funcţia f, definită mai jos, care este
elsecout<<b; valoarea f(1711)? Dar f(23169)?
} int f(int n)
{
6. Se consideră subprogramul cu definiţia de mai jos. if (n==0) return 0;
Ce valoare se va afişa în urma executării instrucţiunii else
cout<<f(12); ? if (n%2==0)return n%10+f(n/10);
int f (int n) else return f(n/10);
{int c; }
if (n!=0)
{if (n%2==1)c=1+f(n/2); 12. Pentrufuncţiile f1 şi f2 definitemai jos, stabiliţicare
elsec=f(n/2); este valoarea luif1(3). Dar f2(41382)?
cout<<n%2; long f1(int c)
return c; { if (c%2==1) return 1;
} else return 2;
else return 0; }
}
long f2(long n)
7. Se consideră subprogramul cu definiţia de mai jos. { if (n==0) return 0;
Ce se va afişa în urma apelului f(12345);? else return f1(n%10)+f2(n/10);
}
2. 13. Pentrufuncţiile f şi g definite maijos, scrieţi care void f(char c)
esterezultatul returnat la apelul g(11).Dar rezultatul { if (c>'A') f(c-1);
cout<<c;
returnat la apelul f(6)?
if (c>'A') f(c-1);
long g(long x)
}
{ if (x>9)return (x/10 + x%10);
elsereturn x;
} 21. Pentru subprogramul suma definitmai jos, scrieţi
valoarea expresieisuma(5,4).
long f(int c) int suma (int a,int b)
{ if (c<1)return 1; { if (a==0 && b==0) return 0;
elsereturn g(c+f(c-1)); else
} if (a==0) return 1+suma(a,b-1);
else return 1+suma(a-1,b);
14. Funcţia F are definiţia de mai jos. Ce valoareare }
F(3)?
int F(int n) 22. Funcţia f are definiţia de mai jos.
{if(n==0 || n==1) return 1; a) Ce valoarea are f(17)?
elsereturn 2*F(n-1)+2*F(n-2); b) Ce valoare are f(22)?
} int f(int n)
{if (n<=9) return 0;
15. Subprogramul f are definiţiade mai jos. Ce se va if (n%4==0) return 0;
afişa în urmaapelului f(12345);? return 1+f(n-3);
void f(long n) }
{if (n>9)
{cout<<n/100; 23. Funcţia f are definiţia de mai jos:
f(n/10); a) Ce valoare are f(16)?
} b) Scrieţi cea mai mare valoare de două cifre pe care
}
opoate avea n astfel încâtf(n)să fie egal cu 2.
int f(int n)
16. Funcţia f are definiţia de mai jos. Ce seva afişa în { if (n<=0) return -1;
urma apeluluif(12345,0);? if (n%2==0) return 0;
void f(long n, inti) if (n%3==0) return 0;
{if (i<n%10) return 1+f(n-10);
{ cout<<n%10; }
f(n/10,i+1);
} 24. Subprogramul afis este definit mai jos. Ce se
}
afişează ca urmare a apelului afis(8); ?
voidafis (int n)
17. Funcţia F are definiţia de mai jos. Ce valoareare {cout<<n;
F(18)? for (int i=n/2;i>=1;i--)
int F(int x) if(n%i==0)afis(i);
{if (x<=1) return x; }
else return x+F(x-2);
} 25. Subprogramul scrie este definit mai jos.Ce se
afişează ca urmare a apeluluiscrie(2,6); ?
18. Funcţia F are definiţia de mai jos. Ce valoareare void scrie (int x,int y)
F(5)? {cout<<x<<y;
int F(int x) if(x<y)
{if(x!=0) return x+F(x-1); {scrie(x+1,y-1);
elsereturn x; cout<<(x+y)/2;
} }
}
19. Se consideră subprogramul f definit mai jos.
a) Ce valoare are f(100)? 26. Subprogramul f este definit mai jos. Ce valoare
b) Scrieţi o valoare pentru x astfel încâtf(x)=1. are f(8,4)?
int f(int n) int f (intx,int y)
{ if(n==0) return 0; {if(x<y)return 1+f(x+1,y);
else return n%2+f(n/2); if(y<x)return 1+f(y+1,x);
} return 1;
}
20. Considerăm subprogramul recursiv definitmai jos.
Ce se vaafişa în urma apelului f('C');? 27. Ce se afişează ca urmare aapelului p(123);
dacăsubprogramul p are definiţia de mai jos?
3. void p (int x)
{cout<<x;
if(x!=0)
{p(x/10);
cout<<x%10;
}
}
28. Subprogramul f este definit mai jos.Ce se afişează
ca urmare a apeluluif(1,3);?
void f (int x,int y)
{int i;
for(i=x;i<=y;i++)
{cout<<i;
f(i+1,y);
}
}
29. Se consideră subprogramul recursiv f1definit mai
jos. Ce se va afişa în urmaapelului f1(5);?
void f1(int x)
{ if (x<=9)
{ cout<<x+1;
f1(x+2);
cout<<x+3;
}
}
30. Subprogramul afis este definit mai jos.Ce se va
afişa în urma apeluluiafis(17);?
void afis(int x)
{ if (x>3)
{ cout<<x-1;
afis(x/3);
cout<<x+1;
}
}