Sunteți pe pagina 1din 1

Ministerul Educaiei, Cercetrii i Inovrii

Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar



BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul III
Specializarea Matematic-informatic intensiv informatic
Subiectul III (30 de puncte) - Varianta 050

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Valorile memorate de componentele
tabloului v, cu indicii de la 0 la 5, sunt, n
aceast ordine: 973, 51, 75, 350, 350, 15.
Se consider subprogramul t cu definiia
alturat. Care dintre urmtoarele expresii
are valoarea 2 ? (4p.)
int t (int i, int v[])
{
if(i==0) return 0;
if(v[i]!=v[i-1]) return t(i-1,v);
return 1;
}
a.
t(0,v)+t(3,v)
b.
t(1,v)+t(4,v)
c.
t(4,v)+t(5,v)
d.
t(3,v)+t(4,v)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se genereaz n ordine strict cresctoare toate numerele de cte ase cifre care conin:
cifra 1 o singur dat, cifra 2 de dou ori i cifra 3 de trei ori. Se obin, n aceast ordine,
numerele: 122333, 123233, 123323, , 333221. Ce numr se afl imediat naintea i ce
numr se afl imediat dup numrul 332312 n irul numerelor generate? (6p.)
3. Se consider subprogramul divxy care primete prin parametrii x i y dou valori ntregi
pozitive (0<x<1000 i 0<y<1000) i returneaz valoarea 1 dac y este divizor al lui x sau x
este divizor al lui y i returneaz valoarea 0 n caz contrar.
a) Scriei definiia complet a subprogramului divxy. (4p.)
b) Scriei un program C/C++ care citete de la tastatur trei numere naturale nenule a, b i
n, cu cel mult 3 cifre fiecare i care afieaz pe ecran toi divizorii lui n din intervalul nchis
determinat de a i b folosind apeluri utile ale subprogramului divxy. Intervalul nchis
determinat de a i b este [a,b] dac a<b sau [b,a] dac ba. Numerele afiate sunt
separate prin cte un spaiu. Dac nu exist niciun astfel de numr se afieaz mesajul NU
EXISTA.
Exemplu: pentru a=85, b=10 i n=40 se afieaz: 10 20 40 (nu neaprat n aceast
ordine). (6p.)
4. Fiierul bac.in conine pe prima linie un numr natural n (0<n<5000), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale, formate din cel mult 4 cifre fiecare.
Scriei un program C/C++ care determin i scrie n fiierul bac.out, toate numerele, citite de
pe a doua linie a fiierului bac.in, care apar de cel puin dou ori. Numerele determinate se
vor scrie n ordine cresctoare, pe aceeai linie, separate prin cte un spaiu.
Exemplu: dac fiierul bac.in conine pe prima linie numrul 11, iar pe linia a doua
valorile 23 12 54 12 78 345 67 23 78 934 23
atunci fiierul bac.out va conine: 12 23 78 (10p.)

S-ar putea să vă placă și