Subprogramul f
este definit mai jos.
void f(char ch, int x) { cout<<ch; | printf("c",ch); if(x==0) cout<<'*'; | printf("*"); else if(ch=='a') cout<<x; | printf("%d",x); else f(ch-1,x-1); }
Care dintre următoarele numere este cea mai mică valoare pe care o poate avea variabila întreagă x
astfel încât, în urma apelului de mai jos, pentru fiecare dintre acestea, să NU se afișez niciun caracter *
f('e',x);
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Subprogramul f
este mai jos:
void f(int n) { cout<<n%2; | printf("%d",n%2); if(n>=3) f(n-3); }
Indicați ce se afișează în urma apelului de mai jos.
f(7);
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Fie următorul subprogram recursiv:
void bac (int x, int d) { if(d<=x/d) { if(x%d==0) cout<<d<< ’ ’; bac(x, d+1); if(x%d==0) cout<<x/d<< ’ ’; } }
Ce va afişa subprogramul în urma apelurilor bac(13, 1)
şi bac(56, 1)
?
Varianta 1 |
1 13 1 2 4 7 8 14 28 56 |
Varianta 2 |
13 1 56 28 14 8 7 4 2 1 |
Varianta 3 |
1 13 1 56 |
Varianta 4 |
13 1 56 1 |
Subprogramul f
de mai jos este incomplet definit. Indicați expresia cu care pot fi înlocuite punctele de suspensie, astfel încât valoarea lui f(2019,1)
să fie egală cu numărul divizorilor pozitivi ai lui 2019
.
int f(int n, int d) { if(..........) return 0; if(d*d==n) return 1; if(n%d==0) return 2+f(n,d+1); return f(n,d+1); }
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Subprogramul f
este incomplet definit.
void f(int m, int n, int d) { if(n%d==0 && m%d==0) cout<<d; | printf(”%d”,d); else f(.........); }
Indicați expresia cu care pot fi înlocuite punctele de suspensie, astfel încât, în urma apelului de mai jos, să se afișeze cel mai mare divizor comun al numerelor nenule memorate în variabilele întregi x
și y
.
f(x,y,x);
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Subprogramul C/C++ f
este definit mai jos.
int f(int n) { if (n<=2) return n; if (n%2==1) return f(n-2)-f(n-1); return f(n-1)-f(n-2); }
Valoarea lui f(6)
este:
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Pentru funcțiile f
și special
definite mai jos, stabiliți care este rezultatul returnat la apelul special(6698)
?
int f(int n) { if (n>9) return f(n/10)+n%10; else return n; } int special(int n) { if (n<10) return n; else return special(n%10+f(n/10)); }
Varianta 1 |
11 |
Varianta 2 |
15 |
Varianta 3 |
29 |
Varianta 4 |
2 |
Pentru funcțiile sump
și contspec
definite mai jos, stabiliți care este rezultatul returnat la apelul contspec(7888985)
?
int sump(int nr) { if (nr>0) if(nr%2==0) return sump(nr/10)+nr%10; else return sump(nr/10); else return 0; } int contspec(int nr) { if (nr<10) return nr; else return contspec(sump(nr/10)+nr%10); }
Varianta 1 |
9 |
Varianta 2 |
5 |
Varianta 3 |
7 |
Varianta 4 |
37 |
Subprogramul f
este definit mai jos.
void f(int x){ cout<<"*"; if(x>5) f((x+1)/2); }
Indicați apelul în urma căruia simbolul *
se afișează de trei ori.
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|
Variabila v
memorează un tablou unidimensional cu 4
elemente, numerotate începând de la 0
.
Subprogramul f
este definit mai jos.
void f(int i, int v[4]) { if(i>=3) v[i]=v[i]+1; else f(i+1,v); cout<<v[i]; | printf("%d",v[i]); }
Indicați setul de elemente pe care le poate avea tabloul memorat în v
, în ordinea în care apar în acesta, astfel încât, în urma apelului de mai jos, să se afișeze pe ecran 2020
.
f(0,v);
Varianta 1 |
|
Varianta 2 |
|
Varianta 3 |
|
Varianta 4 |
|