Sunteți pe pagina 1din 4

1.

Pentru definiţia de mai jos a


subprogramului f, ce se afişează ca urmare 6. Se consideră subprogramul alăturat:
a apelului Ce valoare are f(128,2)?
f(121,1);? int f(int a, int b){
void f(long n, int i) if (b<1) return ­1;
{ if(n!=0) else
if(n%3>0) if (a%b==0)
{ cout<<i; f(n/3,i+1); }} return 1+f(a/b,b);
Rezultat 12345 else
2. Pentru definiţia de mai jos a return 0; }
subprogramului f, ce se afişează ca urmare Rezultat 7
a apelului 7. Se consideră subprogramul f definit
f(12345);? alăturat. Ce se va afişa în urmaapelului
void f(long n) f(12345);?
{ cout<<n%10; void f(long int n)
if(n!=0) { if (n!=0)
{ f(n/100); cout<<n%10;}} {if (n%2 == 0)
Rezultat 5310135 cout<<n%10; 
3. Pentru definiţia alăturată a f(n/10);}}
subprogramului f, ce se afişează ca Rezultat 42
urmare a apelului f(26);? 8. Se consideră subprogramul f, descris
void f (int x) alăturat. Ce se va afişa în urma apelului
{ f(3);?
if(x>0) void f(int n)
if(x%4==0) { if (n!=0)
{ cout<<’x’; { if (n%2==0)
f(x­1); } cout<<n<<’ ’; 
else f(n­1);
{ f(x/3); cout<<n<<’ ’; }
cout<<’y’; }} else cout<<endl;}
Rezultat xyyy Rezultat 2
4. Pentru definiţia alăturată a          1 2 3
subprogramului f, ce se afişează ca urmare 9. Se consideră subprogramul f cu definiţia
a apelului alăturată. Ce valoare are f(1213111,1)?
f(15,2);? int f (long int n, int k){
void f (int n, int x) if (n!=0)
{ if(x>n) if(n%10==k)
cout<<0;  return 1+f(n/10,k);
else else return 0;
if(x%4<=1) f(n,x+1); else return 0;}
else Rezultat 3
{ f(n,x+3); 10. Se consideră subprogramul cu definiţia
cout<<1;}} alăturată. Ce valoare are f(3,1)?
Rezultat 01111
5. Pentru subprogramul f definit mai jos, int f(int n,int y)
ce se afişează ca urmare a apelului { if(n!=0)
f(3,17)? { y=y+1;
void f ( int a, int b) return y+f(n­1,y);}
{ if(a<=b) else return 0;}
{ f(a+1,b­2); cout<<’*’;} else  Rezultat 9
cout<<b;} 11. Care este valoarea expresiei f(23159)
7***** pentru funcţia f, cu definiţia alăturată?
int f(int n){
int c;
if (n==0) return 9;
else int F(int x){
{c=f(n/10); if (x<=1) return x;
if (n%10<c) return n%10; else
else return c;}} return x+F(x­2);} 
Rezultat 1
Rezultat 90
12. Pentru funcţiile f1 şi f2 definite
18. Funcţia F are definiţia alăturată. Ce
alăturat, stabiliţi care este valoarea lui
valoare are F(5)?
f2(41382)?
int F(int x)
long f1(int c)
{ if (c%2==1) return 1; {if(x!=0) return x+F(x­1);
else return 2;} else
long f2(long n) return x;}
{ if (n==0) return 0; Rezultat 15
else return f1(n%10)+f2(n/10);} 19. Se consideră subprogramul, f, definit
Rezultat 8 alăturat. Ce valoare are f(100)?
int f(int n)
13. Pentru funcţiile f şi g definite mai jos, { if(n==0) return 0;
stabiliţi care este rezultatul returnat la apelul else return n%2+f(n/2);}
f(6)? Rezultat 3
long g(long x) 20. Considerăm subprogramul recursiv
{ if (x>9)
definit alăturat. Ce se va afişa în urma
return (x/10 + x%10); apelului: f(’C’) 
else void f(char c)
return x { if (c>’A’) f(c­1);
}
cout<<c; 
long f(int c)
{ if (c<1)
if (c>’A’) f(c­1);}
return 1; Rezultat ABACABA
else 21. Pentru subprogramul suma definit
return g(c+f(c­1)); alăturat, scrieţi valoarea expresiei
} suma(5,4).
Rezultat 4 int suma (int a,int b)
14. Funcţia F are definiţia alăturată. Ce { if (a==0 && b==0) return 0;
valoareare F(3)? else if (a==0) return 1+suma(a,b­
int F(int n) 1);
{if(n==0 || n==1) return 1; else return 1+suma(a­1,b);
else }
return 2*F(n­1)+2*F(n­2);} Rezultat 9
Rezultat 10 22. Funcţia f are definiţia alăturată.
15. Subprogramul f are definiţia alăturată. a) Ce valoarea are f(17)? (3p.)
Ce se va afişa în urmaapelului f(12345)? b) Ce valoare are f(22)?
void f(long n) int f(int n)
{if (n>9) {if (n<=9) return 0;
{cout<<n/100; if (n%4==0) return 0;
f(n/10); return 1+f(n­3);
}} }
Rezultat 1231210 Rezultat a)3 b)2
16. Funcţia f are definiţia alăturată. Ce se va 23. Funcţia f are definiţia alăturată:
afişa în urma apelului f(12345,0);? a) Ce valoare are f(16)?
void f(long n, int i) b) Scrieţi cea mai mare valoare de două cifre
{if (i<n%10) pe care o poate avea n astfel încât f(n) să
{cout<<n%10;  fie egal cu 2.
f(n/10,i+1); int f(int n)
}} { if (n<=0) return ­1;
Rezultat 543 if (n%2==0) return 0;
17. Funcţia F are definiţia alăturată. Ce if (n%3==0) return 0;
valoare are F(18)? return 1+f(n­10);}
Rezultat a)0 b)95 30. Subprogramul afis este definit
alăturat. Ce se va afişa în urma apelului
afis(17)?
void afis(int x)
{ if (x>3)
{ cout<<x­1; 
24. Subprogramul afis este definit afis(x/3);
alăturat. Ce se afişează ca urmare a apelului cout<<x+1; }}
afis(8); Rezultat 16 4 6 18
void afis (int n) 31. Subprogramul re este definit alăturat.
{ cout<<n; Ce valoarea are re(1)? Dar re(14)?
for (int i=n/2;i>=1;i­­) int re(int i)
if(n%i==0)afis(i);} {
Rezultatul e 84211211 if (i<9) return 3+re(i+2);
25. Subprogramul scrie este definit else
alăturat. Ce se afişează ca urmare a apelului if (i==9) return ­2;
scrie(1,7); else return 1+re(i­1);}
void scrie (int x,int y) Rezultat pt re(1) e 10
{cout<<x<<y; | Rezultat pt re(14) e 3
if(x<y)
{scrie(x+1,y­1); 32. Se consideră definit subprogramul f .
cout<<(x+y)/2;}} Scrieţi două valori naturale, x1 şi x2,
Rezultat 17263544444 (x1<12 şi x2<12) pentru care
26. Subprogramul f este definit alăturat. Ce f(x1)=f(x2).
valoarea are f(8,4)? int f(int i)
int f (int x,int y) {
{ if(x<y)return 1+f(x+1,y); if (i>12) return 1;
if(y<x)return 1+f(y+1,x); else return 1+f(i+2);}
return 1; } Rezultat 5
Rezultat 5 33. Subprogramul scif returnează suma
27. Ce se afişează ca urmare a apelului cifrelor unui număr natural transmis ca
p(123); dacă subprogramul p are definiţia parametru.
alăturată. Care este valoarea expresiei
void p (int x) scif(scif(518)+scif(518))?
{cout<<x; Rezultat 10
if(x!=0){p(x/10); 34. Considerăm subprogramul f definit
cout<<x%10; } alăturat. Ce valoare are f(11,7)?
Rezultat 123 12 1 1 2 3 int f(int x,int y)
28. Subprogramul f este definit alăturat. Ce {if(x<=y) return x­y;
se afişează ca urmare a apelului return f(y­x,x­1)+3;}
f(1,4); Rezultat ­11
void f (int x,int y) 35. Pentru definiţia alăturată a
{ for (int i=x;i<=y;i++) subprogramului sc, stabiliţi ce valoare are
{cout<<i;f(i+1,y);}} sc(901324)?
Rezultat 123443442344344 int sc(long x)
29. Se consideră subprogramul recursiv f1  {if(x<10) return x;
definit alăturat. Ce se va afişa în urma  return sc(x/10)+x%10;}
apelului f1(5)? Rezultat 19
void f1(int x) 36. Pentru definiţia alăturată a
{ if (x<=9) subprogramului f, ce valoare are f(8)?
{ cout<<x+1;  int f(int x)
f1(x+2); {if(x<=4) return x*x­3;
cout<<x+3; }} return f(x­3)+4;}
Rezultat 6 8 10 12 10 8 Rezultat 9
37. Pentru definiţia alăturată a
subprogramului f, stabiliţi ce valoare are
f(23461)?
int f(int x)
{if(x<10){if(x%2!=0)return 0;
return x;}
if((x%2!=0)
return f(x/10);
return f(x/10)+x%10; }
Rezultat 12

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