Documente Academic
Documente Profesional
Documente Cultură
1. Funcţia F are definiţia alăturată. Câte valori egale cu 0 se afișează la apelul F(5)?
void F(int x)
{ cout<<x<<' '<<0<<' ';
if (x!=0)
{ cout<<0<<' ';
if (x%2==0) F(x-2);
else F(x+1);
}
}
a. 9 b. 10 c. 5 d. 6
2. Ce valoare va avea variabila globală a de tip întreg, în urma apelului f(2020), dacă înainte de
apel a=0 şi funcția f este definită alăturat?
int f(int n)
{
a++;
if (!n) return 1;
return f(n/100)+f(n/10);
}
a. 15 b. 0 c. 8 d. 2
3. Subprogramele f1, f2 și f3 sunt definite mai jos.
int f1(int n)
{ if(n==0) return 1;
return n*f1(n-1);
}
int f3(int n)
{ int f=1;
while (n!=0)
{ f=f*n; n=n-1; }
return f;
}
int f2(int n)
{
if(n>1) return n*(n-1)*f2(n-2);
return 1;
}
a. 3 b. 6 c. 9 d. 11
5. Subprogramul f este definit alăturat. Indicați de câte ori se execută subprogramul pentru
apelul f(10,20).
int f(int x, int y)
{ if (x<=1 || y<=1) return 0;
if (x>y) return 1+f(f(x-y,y),y-1);
return 1+f(x-1,f(x,y-x));
}
Ştiind că apelul f(x,2) va returna numărul de divizori proprii ai lui x, completaţi funcţia!
9. Ce va afişa pe ecran următorul program?
#include <iostream>
using namespace std;
int f(int x, int y)
{if (x==y) {cout<<x<<' '; return x;}
else
if (x<y) {cout<<x<<' '<<y<<' '; return f(f(x, y-1),y-1);}
else {cout<<x<<' '<<y<<' '; return f(f(x-1, y),x-1);}
}
int main()
{
cout<<f(2,5);
return 0;
}