subprogramului f, ce se afişează ca urmare return 0; }7 a apelului 7. Se consideră subprogramul f definit f(121,1);? alăturat. Ce se va afişa în urmaapelului void f(long n, int i) f(12345);? { if(n!=0) void f(long int n) if(n%3>0) { if (n!=0) { cout<<i; f(n/3,i+1); }} {if (n%2 == 0) 2. Pentru definiţia de mai jos a cout<<n%10; subprogramului f, ce se afişează ca urmare f(n/10);}} a apelului 8. Se consideră subprogramul f, descris f(12345);? alăturat. Ce se va afişa în urma apelului void f(long n) f(3);? { cout<<n%10; void f(int n) if(n!=0) { if (n!=0) { f(n/100); cout<<n%10;}}5310135 { if (n%2==0) 3. Pentru definiţia alăturată a cout<<n<<’ ’; subprogramului f, ce se afişează ca f(n1); urmare a apelului f(26);? cout<<n<<’ ’; } void f (int x) else cout<<endl;} { 9. Se consideră subprogramul f cu definiţia if(x>0) alăturată. Ce valoare are f(1213111,1)? if(x%4==0) int f (long int n, int k){ { cout<<’x’; if (n!=0) f(x1); } if(n%10==k) else return 1+f(n/10,k); { f(x/3); else return 0; cout<<’y’; }}xyyy else return 0;} 4. Pentru definiţia alăturată a 10. Se consideră subprogramul cu definiţia subprogramului f, ce se afişează ca urmare alăturată. Ce valoare are f(3,1)? a apelului f(15,2);? int f(int n,int y) void f (int n, int x) { if(n!=0) { if(x>n) { y=y+1; cout<<0; return y+f(n1,y);} else else return 0;} if(x%4<=1) f(n,x+1); 11. Care este valoarea expresiei f(23159) else pentru funcţia f, cu definiţia alăturată? { f(n,x+3); int f(int n){ cout<<1;}}01111 int c; 5. Pentru subprogramul f definit mai jos, if (n==0) return 9; else ce se afişează ca urmare a apelului {c=f(n/10); f(3,17)? if (n%10<c) return n%10; void f ( int a, int b) else return c;}} { if(a<=b) 12. Pentru funcţiile f1 şi f2 definite { f(a+1,b2); cout<<’*’;} else alăturat, stabiliţi care este valoarea lui cout<<b;}7***** f2(41382)? 6. Se consideră subprogramul alăturat: long f1(int c) Ce valoare are f(128,2)? { if (c%2==1) return 1; int f(int a, int b){ else return 2;} if (b<1) return 1; long f2(long n) else { if (n==0) return 0; if (a%b==0) else return f1(n%10)+f2(n/10);} return 1+f(a/b,b); 13. Pentru funcţiile f şi g definite mai jos, 20. Considerăm subprogramul recursiv stabiliţi care este rezultatul returnat la apelul definit alăturat. Ce se va afişa în urma f(6)? apelului: f(’C’) long g(long x) void f(char c) { if (x>9) { if (c>’A’) f(c1); return (x/10 + x%10); cout<<c; else if (c>’A’) f(c1);} return x 21. Pentru subprogramul suma definit } alăturat, scrieţi valoarea expresiei long f(int c) suma(5,4). { if (c<1) int suma (int a,int b) return 1; { if (a==0 && b==0) return 0; else return g(c+f(c1)); else if (a==0) return 1+suma(a,b } 1); 14. Funcţia F are definiţia alăturată. Ce else return 1+suma(a1,b); valoareare F(3)? } int F(int n) 22. Funcţia f are definiţia alăturată. {if(n==0 || n==1) return 1; a) Ce valoarea are f(17)? (3p.) else b) Ce valoare are f(22)? return 2*F(n1)+2*F(n2);} int f(int n) 15. Subprogramul f are definiţia alăturată. {if (n<=9) return 0; Ce se va afişa în urmaapelului f(12345)? if (n%4==0) return 0; void f(long n) return 1+f(n3); {if (n>9) } {cout<<n/100; 23. Funcţia f are definiţia alăturată: f(n/10); a) Ce valoare are f(16)? } b) Scrieţi cea mai mare valoare de două cifre } pe care o poate avea n astfel încât f(n) să 16. Funcţia f are definiţia alăturată. Ce se va fie egal cu 2. afişa în urma apelului f(12345,0);? int f(int n) void f(long n, int i) { if (n<=0) return 1; {if (i<n%10) if (n%2==0) return 0; {cout<<n%10; if (n%3==0) return 0; f(n/10,i+1); return 1+f(n10);} } 24. Subprogramul afis este definit } alăturat. Ce se afişează ca urmare a apelului 17. Funcţia F are definiţia alăturată. Ce afis(8); valoare are F(18)? void afis (int n) int F(int x){ { cout<<n; if (x<=1) return x; for (int i=n/2;i>=1;i) else if(n%i==0)afis(i);} return x+F(x2);} 25. Subprogramul scrie este definit 18. Funcţia F are definiţia alăturată. Ce alăturat. Ce se afişează ca urmare a apelului valoare are F(5)? scrie(1,7); int F(int x) void scrie (int x,int y) {if(x!=0) return x+F(x1); {cout<<x<<y; | else if(x<y) return x;} {scrie(x+1,y1); 19. Se consideră subprogramul, f, definit cout<<(x+y)/2;}} alăturat. Ce valoare are f(100)? 26. Subprogramul f este definit alăturat. Ce int f(int n) valoarea are f(8,4)? { if(n==0) return 0; int f (int x,int y) else return n%2+f(n/2);} { if(x<y)return 1+f(x+1,y); if(y<x)return 1+f(y+1,x); return 1; } 27. Ce se afişează ca urmare a apelului 35. Pentru definiţia alăturată a p(123); dacă subprogramul p are definiţia subprogramului sc, stabiliţi ce valoare are alăturată. sc(901324)? void p (int x) int sc(long x) {cout<<x; {if(x<10) return x; if(x!=0){p(x/10); return sc(x/10)+x%10;} cout<<x%10; } 36. Pentru definiţia alăturată a 28. Subprogramul f este definit alăturat. Ce subprogramului f, ce valoare are f(8)? se afişează ca urmare a apelului int f(int x) f(1,4); {if(x<=4) return x*x3; void f (int x,int y) return f(x3)+4;} { for (int i=x;i<=y;i++) 37. Pentru definiţia alăturată a {cout<<i;f(i+1,y);}} subprogramului f, stabiliţi ce valoare are 29. Se consideră subprogramul recursiv f1 f(23461)? definit alăturat. Ce se va afişa în urma int f(int x) apelului f1(5)? {if(x<10){if(x%2!=0)return 0; void f1(int x) return x;} { if (x<=9) if((x%2!=0) { cout<<x+1; return f(x/10); f1(x+2); return f(x/10)+x%10; } cout<<x+3; }} 38. Subprogramul f are definiţia alăturată. 30. Subprogramul afis este definit Ce valoare are f(7,2)? Dar f(35,2)? alăturat. Ce se va afişa în urma apelului int f(int x, int y) afis(17)? {if(x%y==0)return y; void afis(int x) else return f(x,y+1);} { if (x>3) 39. Subprogramul f are definiţia alăturată. { cout<<x1; Ce valoare are f(7)? Dar f(100)? afis(x/3); int f(int x) cout<<x+1; }} {if(x%6==0)return x; 31. Subprogramul re este definit alăturat. else return f(x1);} Ce valoarea are re(1)? Dar re(14)? 40. Subprogramul f are definiţia alăturată. int re(int i) Ce valoare are f(3)? Dar f(10)? { int f(int x) if (i<9) return 3+re(i+2); {if(x==0)return 0; else else return f(x1)+2;} if (i==9) return 2; 41. Subprogramul f are definiţia alăturată. else return 1+re(i1);} Ce valoare are f(5,10)? int f(int 32. Se consideră definit subprogramul f . x,int y) Scrieţi două valori naturale, x1 şi x2, {if(x==y)return x; (x1<12 şi x2<12) pentru care else if(x<y)return f(x+1,y1); f(x1)=f(x2). else return f(x1,y); int f(int i) } { 42. Subprogramul f are definiţia alăturată. if (i>12) return 1; Ce valoare are f(4)? Dar f(11)? else return 1+f(i+2);} int f(int x) 33. Subprogramul scif returnează suma {if(x<1)return 1; cifrelor unui număr natural transmis ca else return f(x3)+1;} parametru. 43. Funcţia f are definiţia alăturată. Dacă Care este valoarea expresiei f(x) are valoarea 10100, care este scif(scif(518)+scif(518))? valoarea lui x? 34. Considerăm subprogramul f definit long f(int n) alăturat. Ce valoare are f(11,7)? { int f(int x,int y) if(n<=0) return 0; {if(x<=y) return xy; else return f(n1)+2*n;} return f(yx,x1)+3;} 44. Valorile memorate de componentele a. x=tablou(3,v); b. x=tablou(4,v); vectorului v, cu indicii de la 0 la 5, sunt, în c. x=tablou(5,v); d. x=tablou(0,v); această ordine: 183, 212, 453, 18, 42, 83. 47. Se consideră subprogramul f, definit Care dintre următoarele apeluri ale alăturat. Ce valoare are f(4)? Dar f(100)? subprogramului tab cu definiţia alăturată, long f(unsigned int n) NU returnează un număr par? { if (n==0) return 0; int tab (int i,int v[], int c) else return n+f(n1);} { int n; 48. Se consideră subprogramul f, definit if(i<0) return 0; alăturat. Câte valori ale lui n aparţinând else intervalului [10, 20] au proprietatea că la { n=v[i]; apelul f(n) se obţine valoarea 0? while(n!=0) int f(unsigned int n) { if(n%10==c%10) {if (n==0) return 0; return 1+tab(i1,v,c%10); else if(n%2==0)return n n=n/10; %10+f(n/10); } else return f(n/10);} return tab(i1,v,c%10);}} 49. Se consideră subprogramul f definit a. tab(4,v,218) b. tab(5,v,72) c. alaturat. Ce se afişează la apelul f(1)? tab(4,v,123) d. tab(5,v,71) void f(int i) 45. Valorile memorate de componentele {if(i<=5){ vectorului v, cu indicii de la 0 la 5, sunt, în cout<<i<<” ” ; această ordine: 183, 212, 453, 18, 42, 83. f(i+1); Care este apelul corect al subprogramului cout<<i/2<<” ”;} tablou alăturat pentru ca, în urma 50. Se consideră subprogramul f, definit executării apelului, valoarea variabilei întregi alăturat. Câte valori ale parametrului n x să fie 2? aprţinând intervalului [1,100] au int tablou (int i,int v[], int c) proprietatea că la apelul f(n) se obţine o {int n; valoare nenulă ? if(i<0) return 0; int f(unsigned int n) else { if (n>20) return 0; { n=v[i]; else return 5+f(n+5); while(n>9) } { if(n%10==c) 51. Se consideră subprogramul f, definit return 1+tablou(i1,v,c); alăturat. Ce valoare are f(21114,1)? n=n/10;} int f(int n,int c) return tablou(i1,v,c);}} { a. x=tablou(2,v,2); b. if(n==0)return 0; x=tablou(2,v,5); if(n%10==c) return n c. x=tablou(5,v,2); d. %100+f(n/10,c); x=tablou(2,v,8); return f(n/10,c);} 46. Valorile memorate de componentele 52. Se consideră subprogramul f, definit vectorului v, cu indicii de la 0 la 5, sunt, în alăturat. Ce se va afişa la apelul f(38)? această ordine: 420, 48, 635, 628, 837, 93. void f(int x){ Care este apelul corect al subprogramului if(x){ tablou alăturat pentru ca, în urma if(x%3==0){ executării apelului, valoarea variabilei întregi cout<<3; x să fie 3? f(x/3); int tablou (int i,int v[]) } {if(i<0) return 0; else{ else { f(x/3); int n=v[i]; cout<<x%3; }}} while(n) { 53. Se consideră subprogramul f, definit if(n%2)return 1+tablou(i1,v); alăturat. Ce valoare are f(3713,3)? n=n/10; } int f(int n,int c){ return tablou(i1,v); }} if(n==0) 60. Se consideră funcţia f, definită alăturat. return 0; Ce se afişează ca urmare a executării if(n%10==c) secvenţei de return f(n/10,c)*10+c; mai jos ? return f(n/10,c);} a=4; b=18; 54. Se consideră subprogramul f, definit cout<<f(a,b);cout<<a<<b; alăturat. Ce valoare are f(261,31)? int f(unsigned int &a, int f(int a,int b) unsigned int &b) { { while (a !=b) if(a<10) if (a>b) a=ab; return b; else b=ba; return f(a/10,b)*10+b+1;} return a;} 55. Se consideră subprogramul f, definit 61. Se consideră subprogramul recursiv alăturat. Ce valoare are f(398,2008)? definit alăturat. Ce valoare are functie(4)? int f(int a,int b){ int functie(int x) if(2*a>=b) {if (x<=0) return 3 ; return 0; else return functie(x3)*4 ;} if(b%a==0) 62. Se consideră subprogramul recursiv return ba; definit alăturat. Pentru ce valoare a return f(a+1,b1);} parametrului u, 56. Se consideră tabloul unidimensional a alfa(u) are valoarea 25 ? Pentru u=6, definit global, ce memorează elementele ce valoarea returnează alfa(u)? a1=12, a2=35, a3=2, a4=8 şi subprogramul int alfa(int u) f, definit alăturat. Ce valoare are f(4)? {if (u==0) return 3; int f(int x) else return alfa(u1)+3*u2;} {if(x>=1) 63. Se consideră subprogramul recursiv return (a[x]+f(x1))%10; definit alăturat. Ce valori vor fi afişate pe else ecran în urma apelului gama(6)? return 0;} void gama(int n) 57. Considerăm subprogramul f, definit {int i; alăturat. Care va fi valoarea variabilei globale if(n>=3) x după apelul f(4962,x), dacă înainte de {for(i=3;i<=n;i++) apel, x are valoarea 0? cout<<n<<” ”; void f1(int n,int &a) gama(n3);}} {int c; 64. Se consideră subprogramul recursive if(n!=0){c=n%10; definit alăturat. Ce valori vor fi afişate pe if(a<c) a=c; ecran în urma apelului beta(15)? f1(n/10,a);}} void beta(int n) 58. Se consideră tabloul unidimensional a {if (n!=1) definit global, ce memorează elementele {cout<<n<<” ”; a1=1, a2=2, if (n%3==0) beta(n/3); a3=0 şi subprogramul f, definit alăturat. Ce else beta(2*n1);} valoare are f(3,3)? else cout<<1;} int f(int b,int i) 65. Se consideră subprogramul recursiv { if(i>=1) definit alăturat. Care este cea mai mică return f(b,i1)*b+a[i]; valoare de 2 cifre a lui u pentru care funcţia else return 0;} bac(u,2) are valoarea 1 ? 59. Se consideră subprogramul f, definit int bac(int u, int x) alăturat. Ce se va afişa în urma apelului {if (u<x)return 0; f(5,0)? if (x==u)return 1; void f(int i,int j) else { if(j<=9) f(i,j+1); if (u%x==0)return 0; cout<<i<<’*’<<j<<’=’<<i*j<<endl; else } return bac(u,x+1);} 66. Ce valoare va avea variabila întreagă x, 73. Pentru definiţia alăturată a în urma apelului F(1, x), ştiind că, înainte subprogramului sub, stabiliţi care este de apel, variabila x are valoarea 0, iar valoarea expresiei sub(123986). subprogramul F este definit alăturat? int sub(long n) void F(int i, int &x) {if (n!=0) { if (i <= 10) if(n%2!=0) return 1+sub(n/10); { if(i % 2) x = x + 2; else return sub(n/10); else x = x – 1; else return 0; } F(i + 1, x); 74. Pentru definiţia alăturată a }} subprogramului f, ce valoare are expresia 67. Scrieţi ce se va afişa în urma executării f(1209986)? subprogramului alăturat, int f(long x) la apelul F(57). { int y,z; void F(int x) if (x==0) return x; { if(x != 0) else {y=x%10; { F(x/2); z=f(x/10); cout << x%2; }} if(y>z) return y ; 68. Ce se va afişa în urma executării else return z;} } subprogramului alăturat, la apelul F(56)? 75. Pentru definiţia alăturată a void F(int x) subprogramului sub, ce valoare are { if(x) sub(132764)? { F(x/2); int sub(long n) cout << x%10;}} {if (n!=0) 69. Se consideră funcţia Suma, definită if(n%2!=0) return n%10+sub(n/10); alăturat. Ce valoare are Suma(8)? Dar else return sub(n/10); Suma(11)? else return 0;} int Suma(int x) 76. Pentru definiţia alăturată a { if(x == 1 ) return 0; subprogramului f, scrieţi ce valoare are if(x%2==0) return Suma(x1)+(x f(5552,5). 1)*x; int f(int x,int y) return Suma(x1)(x1)*x;} { if(x==0)return 0; 70. Ce se va afişa în urma apelului else F(2758), pentru funcţia F definită alăturat? if(x%10==y) return f(x/10,y)+1; int F(int x) else return f(x/10,y); } {if(x == 0) return 0; 77. Pentru definiţia alăturată a if(x%10%2 == 0) return 2 + subprogramului f, stabiliţi ce valoare are F(x/10); f(123)? return 10 – F(x/10)}; int f(int x) 71. Pentru definiţia alăturată a { if(x==0)return 0; subprogramului sub, stabiliţi ce valoare are else sub(132764). if(x%2==0)return 1+f(x/10); long sub(long n) else return 2+f(x/10); } {if (n!=0) 78. Pentru definiţia alăturată a if(n%2!=0) return n%10*sub(n/10); subprogramului f, stabiliţi ce valoare are else return sub(n/10); f(123)? else return 1; } int f(int x) 72. Pentru definiţia alăturată a { if(x==0)return 0; subprogramului sub, stabiliţi ce valoare are else sub(132764). if(x%2==0)return 3+f(x/10); int sub(long n) else return 4+f(x/10); } {if (n!=0) 79. Pentru definiţia alăturată a if(n%2!=0) return n%10+sub(n/10); subprogramului f, stabiliţi ce valoare are else return sub(n/10); f(100)? else return 0; } int f(int x) { if(x==0)return 1; { if (. . .) else {cout<<i<<’ ’; return 1+f(x1);} f(i/2); 80. Pentru definiţia alăturată a cout<<i<<’ ’;}} subprogramului f, scrieţi ce valoare are 87. Se consideră definit subprogramul f. f(100). a) Ce se va afişa în urma apelului int f(int x) f(14)? { if(x==50)return 1; b) Scrieţi valorile pe care le poate avea x, else astfel încât în urma apelului f(x), să se return 2+f(x1); } afişeze pe ecran exact 10 numere. 81. Se consideră subprogramul f, definit void f(int x) alăturat. Ce se afişează la apelul f(4)? { if (x<=10) void f(int n) cout<<0<<” ”; {cout<<"*"; else if(n>2) { f(x2); { cout<<x<<” ”; }} f(n1); 88. Subprogramul f este definit alăturat. Ce cout<<"#"; }} se afişează ca urmare a apelului de mai jos? 82. Se consideră subprogramul f, f(1,4); definitalăturat. Ce se afişează la apelul void f (int x,int y) f(4)? { if (x<y){x=x+1;f(x,y); void f(int n) y=y1;f(x,y);} { else if(n>0) cout<<x<<y; } { 89. Funcţia f este astfel definită încât cout<<n; f(1)=8, iar f(n+1)=2*f(n)4 (n natural, f(n1); n>1). cout<<n; }} a) Ce valoare are f(5) ? 83. Se consideră subprogramul f, definit b) Care este cea mai mare valoare pe care o alăturat. Ce valoare are f(4)? poate lua x astfel încât f(x) < 1000 ? int f(int n) 90. Funcţia f are definiţia alăturată. Scrieţi { if (n==0) return 1; cinci valori de apel pe care le poate avea n else if (n==1) return 2; astfel încât, pentru cele 5 apeluri else return f(n1)f(n2);} corespunzătoare acestor valori, să se obţină 84. Se consideră subprogramul f, definit 5 valori ale funcţiei, disticte două câte două. alăturat. Ce valoare are f(4)? int f(int n) long f(int n) { if (n<=9) return 0; {if (n==0) return 0; if (n%5==0) return 0; else return n*n+f(n1);} return 1+f(n3); } 85. Se consideră subprogramul f, definit 91. Funcţia f are definiţia alăturată. Scrieţi alăturat. Ce se afişează la apelul f('a')? 4 valori de apel pe care le poate avea n void f(char c) astfel încât, pentru cele 4 apeluri, { corespunzătoare acestor valori, să se obţină if (c != 'e') 4 valori, disticte două câte două. { int f(int n) f(c+1); {if (n<=9) return 0; cout<<c; }} if (n%4==0) return 0; 86. Subprogramul recursiv alăturat este return 1+f(n3); } definit incomplet. Scrieţi expresia care poate 92. Subprogramul recursiv alăturat este înlocui definit incomplet: Care dintre următoarele punctele de suspensie astfel încât, în urma expresii poate înlocui punctele de suspensie apelului, f(12) să se afişeze şirul de valori: astfel încât, în urma apelului, subprogramul f 12 6 3 1 1 3 6 13. să returneze suma primelor două cifre ale void f(int i) numărului primit prin intermediul parametrului x. Exemplu: în urma apelului f(2318) valoarea returnată este 5. int f(int x){ if (...) return x%10 + x/10; else return f(x/10);} 93. Se consideră subprogramul recursive alăturat, definit incomplet. Cu ce valoare trebuie înlocuite punctele de suspensie, pentru ca funcţia să returneze cifra minimă a numărului natural nenul transmis prin intermediul parametrului x? int Min(int x){ int c; if (x==0) return ...; else { c=Min(x/10); if (c < x%10) return c; else return x%10;}} 94. Se consideră subprogramul recursiv alăturat, S, definit incomplet. Cu ce expresie pot fi înlocuite punctele de suspensie astfel încât, în urma apelului S(2), să se afişeze 3 caractere * ? void S(int x) { cout<<'*'; if (...) { cout<<'*'; S(x1);}} 95. Ce afişează subprogramul F, descris alăturat, la apelul F(5)? ) void F(int x) { cout<<x; | printf(“%d”,x); if(x>=3) F(x2); cout<<x1; | printf(“%d”,x1);}