int f(int &n, int m) { while (n%m==0){ n/=m; m++;} return m-1; } A. (1p) Care din următoarele afirmaţii sunt adevărate? a) Parametrii funcţiei sunt transmiși prin referinţă. b) Funcţia returnează o singură valoare. c) Valoarea variabilei n se modifică după încetarea apelului funcţiei. d) Valoarea variabilei m nu se modifică după încetarea apelului funcţiei. B. (0,5 p) Dacă n-120, ce valoare este returnată în urma apelului f(n,2) și care este valoarea variabilei n după apel? a) 6, n=1 b) 5, n=1 c) 2, n=1 d) 5, n=120 2. (0,5 p) Se consideră funcţia următoare int f(int n) { return n%100/10; } Ce se obține în urma apelului f(123456)? Dar pentru f(2) 3. (1,5 p) Se dă funcţia de mai jos: int an(int n) { if (n==0) return n; else return 3*an(n-1)+1; } i) Ce valoare returnează funcția la apelul an(5)? ii) Dacă funcţia este apelată prin an(4), de câte ori se autoapelează? a. de 4 ori; b. de 3 ori c. de 5 ori iii) Pentru care din valorile de mai jos, care sunt parametri de intrare pentru funcţia an, executarea funcţiei duce la eroare de execuție a. 0; b. -1; c. 1; d. nici una din valorile de mai sus 4. (1 p) Se dă funcţia de mai jos: void t(int n) { if (n>8) { t(n/8); cout<<n%8; } else cout<<n; } i) Care va fi valoarea afișată pentru apelul t(256)? ii) Pentru valoare a lui n funcția afișează valoarea 111? 5. (1 p) Se dă funcţia de mai jos: int t(int n) { if (n) return (n%2==0)*n+t(n-1); return 0; } i) Care va fi valoarea afișată pentru apelul t(11)? ii) Propune o secvență de cod care pentru n dat să afișeze valoarea corectă doar printr-o instrucțiune simplă 6. (0,5 p) Ce se va afişa în urma execuţiei programului următor? int bn(int n); int an(int n) { if(n==0) return 0; return 2*an(n-1)+bn(n-1); } int bn(int n) { if(n==0) return 1; return an(n-1)+bn(n-1); } int main() { cout<<an(4)<<" "<<bn(4); return 0; } a)21 21 b)13 21 c)21 13 d)13 13 7. (1,5 p) Se dă expresia: 1 1 1 S= + + …+ 1 ∙2 2∙ 3 n∙ ( n+1 ) a. să se realizeze un subprogram recursiv pentru calcularea expresiei. b. să se realizeze un subprogram nerecursiv pentru calcularea expresiei. c. să se realizeze secvență de cod pentru calcularea expresiei printr-o instrucțiune simplă. 8. (1,5 p) Subprogramul cifra primește prin intermediul parametrului a un număr natural cu cel mult 6 cifre și returnează ultima cifra pară a sa. Dacă numărul nu conține cifre pare subprogramul returnează -1. De exemplu dacă a= 12356 subprogramul returnează 6, iar dacă a=135 returnează -1. Să se scrie definiția completă a subprogramului. Se vor oferi două soluții: una recursivă și una nerecursivă.