Nu parcurgeți acest articol înainte de rezolvarea problemei!
Enunț
Se consideră următorul program:
int sum(int n, int a[], int s){ s = 0; int i = 1; while(i <= n){ if(a[i] != 0) s += a[i]; ++i; } return s; } int main(){ int n = 3, p = 0, a[10]; a[1] = -1; a[2] = 0; a[3] = 3; int s = sum(n, a, p); cout << s << ”;“ << p; // printf("%d;%d", s, p); return 0; }
Care este rezultatul afișat în urma execuției programului?
A. 0;0
B. 2;0
C. 2;2
D. Niciun rezultat nu este corect
Soluție
Răspuns corect: B
Justificare
Funcția sum
returnează suma elementelor nenule din tabloul dat ca parametru. Aceste este (-1,0,3)
, deci suma este 2
.
Parametrul s
al funcției sum
este transmis prin valoare; în consecință, în urma apelului parametru actual p
se întoarce nemodificat, cu valoarea 0
.
Se va afișa:
2;0