Sunteți pe pagina 1din 2

Ministerul Educa iei i Cercetrii - Serviciul Na ional de Evaluare i Examinare

EXAMENUL DE BACALAUREAT – 2007


Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Varianta 25

♦ Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.


♦ Timpul efectiv de lucru este de 3 ore.
♦ În programele cerute la subiectele II i III, identificatorii utiliza i trebuie s respecte
preciz rile din enun (bold), iar în lipsa unor preciz ri explicite, nota iile trebuie s
corespund cu semnifica iile asociate acestora (eventual în form prescurtat ).

SUBIECTUL I (40 de puncte)


Pentru fiecare din itemii de la 1 la 8, scrie i pe foaia de examen litera corespunz toare
r spunsului corect. Fiecare r spuns corect se noteaz cu 5 puncte.
1. Fie subprogramul P definit mai jos. Ce se afieaz în urma apelului P(3)?
void P(int x){
if(x)if(x%2==0){
cout<<x; | printf(˝%d˝,x);
P(x/2);}
else{
P(x-1);
cout<<x; | printf(˝%d˝,x);}
}
a. 321 b. 231 c. 213 d. 123
2. Se consider mul imea {1,7,5,16,12}; se genereaz prin metoda backtracking toate
submul imile sale formate din exact 3 elemente: primele patru solu ii generate sunt, în ordine:
{1,7,5}, {1,7,16}, {1,7,12}, {1,5,16}. Care dintre solu ii trebuie eliminat din irul urmtor
astfel încât cele rmase s apar în ir în ordinea generrii lor?
{1,16,12}, {5,16,12}, {7,5,16}, {7,5,12}
a. {1,16,12} b. {7,5,16} c. {7,5,12} d. {5,16,12}
3. Numrul de noduri ale unui arbore cu 100 de muchii este:
a. 101 b. 99 c. 100 d. 50
4. Se consider dou tablouri unidimensionale A i B: A=(1,3,5,9,10) respectiv B=(2,4,6,7). In
urma interclasrii lor în ordine cresctoare se ob ine tabloul cu elementele:
a. (1,2,3,4,5,6,9,7,10) b. (1,2,3,4,5,6,7,9,10)
c. nu se poate realiza interclasarea d. (1,3,5,9,10,2,4,6,7)
5. Se consider graful neorientat din figura alturat. Câte grafuri par iale
distincte, diferite de el însui, fr vârfuri izolate, se pot ob ine?
Dou grafuri sunt distincte dac matricele lor de adiacen  sunt diferite.

a. 3 b. 13 c. 5 d. 4
6. Ce valoare are variabila întreag n în urma n=0 ;
executrii secven ei alturate? while(n<=11) n=n+2;
a. 11 b. 9 c. 10 d. 12
7. 
tiind c variabila real x are o valoare ce apar ine intervalului închis [3,7], care dintre expresiile
de mai jos, scrise în limbajul C/C++, NU are valoarea 1?
a. !(x<3 || x>7) b. !(x<3) && ! (x>7)
c. x>=3 && x<=7 d. x<3 && x<=7
8. Variabilele a i b sunt declarate astfel: char a[20],b[20]; Ce se afieaz în urma executrii
secven ei de mai jos?
strcpy(a,”bac20”); strcpy(b,”07”);
cout<<strcat(a,”*”)<<b; | printf(“%s%s”,strcat(a,”*”),b);
a. bac20*07 b. bac2007 c. bac20bac2007 d. bac140

INFORMATIC , limbajul C/C++ 1 Varianta 25


Ministerul Educa iei i Cercetrii - Serviciul Na ional de Evaluare i Examinare

SUBIECTUL II (20 de puncte)


pentru i← ←1,5 execut 
Se consider programul pseudocod al turat: 
 cite te ai (numr întreg)
S-a notat cu ak elementul aflat pe pozi ia k în tabloul pentru i← ←1,4 execut
unidimensional cu numele a, cu |x| valoarea absolut  a numrului 
←ai+ai+1+|ai-ai+1|
m←
natural x i cu [x] partea întreag a numrului x. 
Ce se afieaz dac sunt citite, în ordine, numerele  ai+1←ai+ai+1-[m/2]
1. 3, 5, 8, 1, 7? (5 p.)  ai←[m/2]

2. Scrie i o succesiune de valori citite pentru elementele a1, scrie a5


a2, a3, a4, a5 astfel încât s se afieze prima valoare
introdus. (3 p.)
3. Explica i în limbaj natural efectul atribuirilor
←ai+ai+1+|ai-ai+1|
m←
ai+1←ai+ai+1-[m/2]
ai←[m/2]
din algoritmul dat. (2 p.)
4. Scrie i programul C/C++ corespunztor algoritmului dat
alturat. (10 p.)

SUBIECTUL III (30 de puncte)


1. Scrie
 i un program C/C++ care citete de pe prima linie a fiierului BAC.TXT un numr natural n
(1 n 100) i de pe urmtoarele n linii, câte dou numere reale reprezentând coordonatele
carteziene (abscis, ordonat) a n puncte din planul xOy. Programul afieaz pe ecran coordonatele
punctelor care se afl la cea mai mic distan  de originea O a planului xOy; coordonatele fiecrui
astfel de punct vor fi separate prin virgul i grupate între paranteze rotunde.
Exemplu: dac în fiier se afl numerele
3
2.0 1.0
2.0 2.0
1.0 2.0
Se afieaz: (2.0,1.0) (1.0,2.0) (10 p.)
Se consider irul f: 1,5,2,13,10,... generat dup regula de mai jos, în care s-a notat cu [x]
2.
partea întreag a numrului x:
1 pentru n = 1

f n = 2 * f[ n / 2] + 3 pentru n > 1, n par

2 * f[ n / 2] pentru n > 1, n impar
a) Scrie i un program C/C++ care citete un numr natural x (cu cel mult 9 cifre) apoi afieaz pe ecran
mesajul DA dac x este printre primii un miliard de termenii ai irului dat i mesajul NU în caz contrar. Se
va utiliza un algoritm eficient din punct de vedere al memoriei utilizate i al timpului de executare.
Exemplu: pentru x=10 se va afia DA (8 p.)
b) Descrie i metoda utilizat i explica i în ce const eficien a ei. (2 p.)
3. Se consider subprogramul cifra, cu 3 parametri, care
- primete prin intermediul parametrului nr un numr natural cu cel mult 9 cifre
- returneaz prin intermediul parametrilor max i ap cifra cea mai mare care apare în numrul nr,
respectiv numrul de pozi ii pe care se afl aceasta în numrul nr.
Exemplu: dac nr=5255 func ia returneaz max=5 i ap=3
a) Scrie i defini ia complet a subprogramului cifra. (6 p.)
b) Scrie i un program C/C++ care citete de la tastatur un numr natural a cu cel mult 9 cifre i
afieaz pe ecran mesajul DA dac numrul dat are cel pu in dou cifre 9 în scrierea sa i afieaz
mesajul NU în caz contrar. În rezolvare se va utiliza cel pu in un apel al subprogramului cifra.
Exemplu: dac a=31390, se afieaz NU, iar dac a=79099 se afieaz DA. (4 p.)

INFORMATIC , limbajul C/C++ 2 Varianta 25

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