Sunteți pe pagina 1din 4

Nume si prenume

Data
Test recursivitate
NR 1
1.void bac (int x, int d) 5.void bac(int n, int m)
{ if(d<=x/d) { if(n!=0 || m!=0)
{if(x%d==0) cout<<d<< ’ ’; if(n%2 == m%2)
bac(x, d+1); { cout<<n%10+m%10;
if(x%d==0) cout<<x/d<< ’ ’; } } bac(n/10, m/10);
Ce va afişa subprogramul în urma apelurilor }
bac(13, 1) şi bac(56, 1)? else { bac(n/10, m/10);
cout<<(n%10)*(m%10);
}
2.void f (int a, int b, int &c) }
{ Precizați ce se va afișa dacă se apelează
if(a<=b) subprogramul f(12345, 6798)?
{ cout<<a*10+b<<’ ’;
f(a+1,b-1,c);
c++; 6.int f(int a, int b)
} { if(a==b || b==1) return a;
else c=0; else if (a>b)
} if(a%b == 0) return f(a/b, b);
Precizați valorile ce se vor afișa dacă se apelează else return 1+ f(a-1,
subprogramul f(3, 9, n) și care este valoarea b);
variabilei n știind că înainte de apel are valoarea 0? else return 1+ f(a,b-a);
}
Precizați care este valoarea funcției în urma
3.void f(int x, int y) apelului f(25, 3)?
{ if(x!=0 && y!=0)
{ if (x%10==y%10) cout<<x%10;
f(x/10,y/10); 7.int f(int a, int b)
} {
} if (a==b) return a*b;
Precizați ce se va afișa dacă se apelează else if (a<b) return b+f(a,b-1);
subprogramul f(3249, 13548)? else return a+f(b,a-1);
}
Precizați care este valoarea funcției pentru apelul
4.void f(int n, int &m, int &p) f(10, 5);.
{ if(n<10)
{ m=n; p=1; }
else
{ f(n/10,m,p);
p=p*10;
m=m+n%10*p;
} }
Dacă a=2345, precizați valoarea variabilei b în
urma apelului f(a,b,p);
Nume si prenume
Data
Test recursivitate
NR 2

1.Funcţia F are definiţia alăturată. Câte valori egale 5.int f(int x)


cu 0 se afișează la apelul F(5)? {if(x==0) return 0;
void F(int x) if(x%10==5)
{ cout<<x<<’ ‘; return 1+f(x/10);
if(x!=0) { cout<<0<<’ ‘; else
if (x%2==0) return 2+f(x/10);}
F(x-2);
else a.Scrieți valoarea obţinută în urma apelului f(5).
F(x+1); b. Scrieţi cea mai mică valoare de 4 cifre pe care o
}} poate avea o variabilă n, astfel încât,
pentru apelul f(n) să se obţină valoarea 6.
2.

6.void f(int x)
{if(x!=0)
if(x%2==0) {cout<<x%10;
a) Ce valoare are f(6,12)? (3p.) f(x/10);
b) Dar f(20,6)? cout<<x%10; }
else
3.long f(int x) { f(x/10); cout<<x%10;}
{ Pentru subprogramul f cu definiția următoare,
if(x<=9) return 0; indicați valoarea care se va afișa în
else urma apelului f(12345).
if(x%4==0) return 1;
else return f(x-3)*30+4;} 7.
F uncţia f are definiţia alăturată. Ce valoare are
int f(int x)
f(17)? {
if(x==0) return 0;
if(x%3>0) return f(x-1);
4.void f(int n, int &x)
return x+f(x/3);
{ if(n>0) }
if(n%2==1) Pentru subprogramul f cu definiția următoare,
{x=x*10+n%10; indicați valoarea care se va afișa la apelul f(20).
f(n/10,x);}
else
{f(n/10,x);
x=x*10+n%10;
}}
Pentru subprogramul f cu definiția următoare,
indicați conținutul variabilei x după
apelul f(1078, x);
Nume si prenume
Data
Test recursivitate
NR 3
1.void bac (int x, int d) 5.
{ if(d<=x/d)
{if(x%d==0) cout<<d<< ’ ’; void f(int x)
bac(x, d+1); {if(x!=0)
if(x%d==0) cout<<x/d<< ’ ’; } } if(x%2==0) {cout<<x%10;
Ce va afişa subprogramul în urma apelurilor f(x/10);
bac(9,1) şi bac(36, 1)? cout<<x%10; }
else
{ f(x/10); cout<<x%10;}
2.void f (int a, int b, int &c) Pentru subprogramul f cu definiția următoare,
{ indicați valoarea care se va afișa în
if(a<=b) urma apelului f(6789).
{ cout<<a*10+b<<’ ’;
f(a+1,b-1,c);
c++; 6.int f(int a, int b)
} { if(a==b || b==1) return a;
else c=0; else if (a>b)
} if(a%b == 0) return f(a/b, b);
Precizați valorile ce se vor afișa dacă se apelează else return 1+ f(a-1,
subprogramul f(3, 9, n) și care este valoarea b);
variabilei n știind că înainte de apel are valoarea 0? else return 1+ f(a,b-a);
}
Precizați care este valoarea funcției în urma
3.void f(int x, int y) apelului f(25, 3)?
{ if(x!=0 && y!=0)
{ if (x%10==y%10) cout<<x%10;
f(x/10,y/10); 7.int f(int a, int b)
} {
} if (a==b) return a*b;
Precizați ce se va afișa dacă se apelează else if (a<b) return b+f(a,b-1);
subprogramul f(73645, 13548)? else return a+f(b,a-1);
}
Precizați care este valoarea funcției pentru apelul
4.void f(int n, int &m, int &p) f(10, 5);.
{ if(n<10)
{ m=n; p=1; }
else
{ f(n/10,m,p);
p=p*10;
m=m+n%10*p;
} }
Dacă a=5876, precizați valoarea variabilei b în
urma apelului f(a,b,p);
Nume si prenume
Data
Test recursivitate
NR 4

5.int f(int x)
1.Funcţia F are definiţia alăturată. Câte valori egale {if(x==0) return 0;
cu 0 se afișează la apelul F(7)? if(x%10==5)
void F(int x) return 1+f(x/10);
{ cout<<x<<’ ‘; else
if(x!=0) { cout<<0<<’ ‘; return 2+f(x/10);}
if (x%2==0)
F(x-2); a.Scrieți valoarea obţinută în urma apelului f(7).
else b. Scrieţi cea mai mică valoare de 4 cifre pe care o
F(x+1); poate avea o variabilă n, astfel încât,
}} pentru apelul f(n) să se obţină valoarea 6.

2.

6.
void bac(int n, int m)
{ if(n!=0 || m!=0)
if(n%2 == m%2)
a) Ce valoare are f(3,15)? (3p.) { cout<<n%10+m%10;
b) Dar f(20,6)? bac(n/10, m/10);
}
3.long f(int x) else { bac(n/10, m/10);
{ cout<<(n%10)*(m%10);
if(x<=9) return 0; }
else }
if(x%4==0) return 1; Precizați ce se va afișa dacă se apelează
else return f(x-3)*30+4;} subprogramul f(12345, 6798)?
F uncţia f are definiţia alăturată. Ce valoare are
f(19)?
7.
4.void f(int n, int &x)
int f(int x)
{ if(n>0) {
if(n%2==1) if(x==0) return 0;
if(x%3>0) return f(x-1);
{x=x*10+n%10;
return x+f(x/3);
f(n/10,x);} }
else Pentru subprogramul f cu definiția următoare,
{f(n/10,x); indicați valoarea care se va afișa la apelul f(12).
x=x*10+n%10;
}}
Pentru subprogramul f cu definiția următoare,
indicați conținutul variabilei x după
apelul f(2735, x);

S-ar putea să vă placă și