Sunteți pe pagina 1din 2

Nume i prenume:

27.10.2014 10MI

Test subprograme
1. Se consider urmtoarea funcie dat prin prototipul ei:
void f(int a,float b,char c);
n care din urmtoarele funcii principale apare un apel corect al funciei f? ncercuii rspunsul corect.

a) int main()
{char a;float
b) int main()
{char a;float
c) int main()
{char c;float
d) int main()
{char b;float

b;int c; f(a,b,c);}
c;int b; f(b,a,c);}
a;int b; f(a,b,c);}
a;int c; f(c,a,b);}

2. Ce se va afia la finalul executrii programului urmtor?


#include <iostream>
int a=4;
void p()
{int a=0;
{a++;
int a=2;
cout<<a<<' ';
}
cout<<a<<' ';
}
int main()
{a--; p(); cout<<a<<' ';}

Rspuns: ___________________________________

3. Se consider funcia:
int f (int &n,int m)
{
while(n%m==0)
{
n=n/m; m++;
}
return m-1;
}

3.1 Completai n csua din faa fiecrei afirmaii de mai jos litera A sau F dup cum propoziia este
adevrat, respectiv fals.
Parametrii funciei sunt transmii prin referin.
Funcia returneaz o singur valoare.
Valoarea variabilei n se modific la ntoarcerea din apelul funciei.
Valoarea variabilei m nu se modific n timpul execuiei funciei.
3.2 Pentru n=120, n urma apelului f(n,2) se va returna valoarea ____________. Valoarea variabilei n
dup apel este ____________.
3.3 tiind c valoarea returnat de funcie n urma apelului f(n,2) este 4, valoarea variabilei n naintea
apelului a fost: ____________.

Nume i prenume:

27.10.2014 10MI

3.4 Fie a,b i k variabile de tip int declarate n programul principal, a i b cu valori iniiale cunoscute. n
urma execuiei instruciunii k=f(a,b) se va obine a=1. Ce relaie exist ntre valorile iniiale ale
variabilelor a i b i valoarea variabilei k? ncercuii rspunsul corect.
a) a=1*2*3**k

b) a=1*2*3**b

c) a=b*(b+1)*(b+2)**k

d) a=k*(k+1)*(k+2)**b

4. Deducei irul de valori care se vor afia n urma execuiei programului de mai jos:
#include <iostream>
int i,j,k;
int dif(int x,int y)
{return x-y;}
void calcul(int p, int q)
{int u,v;
u=p-i; v=q+j;
Rspuns: ___________________________________
i=dif(u,q);
j=dif(v,p);
}
int main()
{i=2;j=3;
calcul(i,j); cout<<i<< <<j<< ;
calcul(j,i); cout<<i<< <<j<< ;
}

5. Scriei definiiile complete ale urmtoarelor subprograme:


a) Subprogramul extreme care primete ca parametri numerele ntregi x, y i z i returneaz prin
intermediul ultimilor doi parametri cifra minim, respectiv cifra maxim a numrului transmis.
b) Subprogramul elimin care primete ca parametri valorile ntregi nr, c1 i c2, unde c1 i c2
reprezint cifre i returneaz noul numr obinut din nr prin eliminarea tuturor cifrelor de
valoare c1, respectiv c2.
Scriei programul C++ care citete din fiierul DATE.IN numrul ntreg n, apoi cele n valori ntregi
ale unui vector v. Folosind subprogramele definite anterior, afiai:
-

cte dintre valorile vectorului au toate cifrele egale

elementele nenule ale vectorului dup nlocuirea fiecrei valori cu o nou valoare obinut prin
eliminarea tuturor apariiilor cifrei maxime i a cifrei minime ale acestuia.

Exemplu: pentru n=6 i v=(2135, 777, 9896, 7825, 10617, 3333, 1932 )
Se va afia: 2
23 8 75 161 32

Punctaj: 1p din oficiu. Fiecare item corect rezolvat 0.7p.


Problema: a) 1.4p ; b) 1.4p ; funcia principal 1.3p.