Sunteți pe pagina 1din 2

Ministerul Educa iei ✁ i Cercet✂ rii - Serviciul Na ional de Evaluare ✁ i Examinare

EXAMENUL DE BACALAUREAT – 2007


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

♦ 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. Se consider✂ urm✂toarele declar✂ri: y=x[1];
int x[5]={0,1,5,3,4}; for(i=0;i<=4;i++)
int y,i; if(y<x[i]) y=x[i];
Ce va afi✁ a secven a al✂ turat✂? cout<<y; | printf(“%d”,y);
a. 0 b. 5 c. 13 d. nedeterminat ☎
2. Consider✂m un graf orientat cu n vârfuri ✁ i m arce . Ce valoare se ob ine prin însumarea elementelor
matricei de adiacen ✂ asociat✂ grafului ?
a. n b. 2*m c. m/2 d. m
3. Dac✂ n este un num✂r natural (0<n<9), ce realizeaz✂ urm✂ toarea secven ✂?
p=1;
while(n) p=p*(n--);
a. calculeaz ☎ în variabila p valoarea n*p
b. calculeaz ☎ în variabila p valoarea np
c. calculeaz ☎ în variabila p valoarea lui n!
d. calculeaz ☎ în variabila p valoarea pn
4. Se consider✂ urm✂torul subprogram recursiv:
void f(int x)
{if(x>0) {
f(x/10);
if(x%10%2!=0)
cout<<x%10; | printf(“%d”,x%10);
}
}
Ce se va afi✁ a în urma apelului f(123)?
a. 12 b. 123 c. 13 d. 31
5. Utilizând metoda backtracking, se genereaz✂ în ordine lexicografic✂, toate anagramele cuvântului
caiet. ✆ tiind c✂ primele 2 solu ii sunt aceit ✁ i aceti, care este cuvântul generat înaintea
cuvântului tiaec ?
a. teica b. tieac c. ticae d. tiace
6. Care este num✂rul grafurilor par iale ale unui graf neorientat cu n vârfuri ✁ i m muchii ?
a. n! b. 2n c. m! d. 2m
7. Se consider✂ un ✁ ir de caractere s de lungime maxim✂ 20, ce con ine cel pu in un caracter ’c’.Care
dintre urm✂ toarele secven e afi✁ eaz✂ pozi ia primei apari ii a lui ’c’ în ✁ irul de caractere s?
a. cout<<strchr(s,’c’)-s; | printf(“%d”, strchr(s,’c’)-s);
b. cout<<strrchr(s,’c’); | printf(“%d”, strrchr(s,’c’));
c. cout<<strchr(s,’c’)-s-1; | printf(“%d”, strchr(s,’c’)-s-1);
d. cout<<strchr(s,’c’); | printf(“%s”, strchr(s,’c’));
8. Care dintre urm✂ toarele secven e de instruc iuni afi✁ eaz✂ toate numerele naturale din intervalul
[1,20] care nu sunt divizibile cu 3 ?
a. for(i=1;i<=20;i++) b. for(i=1;i<=20;i++)
cout<<i<<’ ‘;| printf(“%d ”,i); if(i%3==0)
cout<<i<<’ ‘;|printf(“%d ”,i);
c. for(i=1;i<=20;i++) d. for(i=3;i<=20; i++)
if(i%3==1 || i%3==2) cout<<i<<’ ‘;| printf(“%d ”,i);
cout<<i<<’‘;|printf(“%d ”,i);

INFORMATIC✄, limbajul C/C++ 1 Varianta 51


Ministerul Educa iei ✁ i Cercet✂ rii - Serviciul Na ional de Evaluare ✁ i Examinare

SUBIECTUL II (20 de puncte)

cite✄te n{num☎r natural, 1<n<1000}


Se consider programul pseudocod al turat.S-a ✆pentru i
✝ 1,n execut☎
notat cu [x] partea întreg✂ a num✂ rului real x.
✞✟ v[i] i
1. Ce se va afi a pentru n=20? (5p.)
✆pentru i 2,[ n ]execut☎
2. Pentru câte valori ale lui n se vor afi a exact 6 ✝ ✆
numere. (3p.) ✝ ✝dac☎ v[i]<>0 atunci
✝ ✝✆j i
3. Scrie✁i un program pseudocod care s✂ fie echivalent ✝ ✝✝repet☎
cu cel dat, dar în care s✂ se înlocuiasc✂ prima ✝ ✝✞ j j+i;v[j] 0
structur✂ repetitiv✂ pentru cu o structur✂ repetitiv✂ ✝ ✞✟ pân☎ când j>n
cu test ini✁ial. (4p.) ✞✟
✆pentru i 2,n execut☎
4. Scrie✁i programul C/C++ corespunz✂tor algoritmului ✝ ✆
dat. (8p.) ✝ ✝dac☎ v[i]<>0 atunci
✝ ✞✟ scrie i
✞✟

SUBIECTUL III (30 de puncte)

1. Se citesc de la tastatur✂ 2 numere naturale nenule m,n (2<m,n<10). S✂ se scrie programul C/C++ care
construie te în memorie o matrice A cu m linii i n coloane ce con✁ine primele m*n numere naturale impare.
Prima linie a matricei va con✁ine, în ordine strict cresc✂toare, primele n numere impare, a doua linie va con✁ine,
în ordine strict cresc✂toare, urm✂toarele n numere impare, etc. Matricea se va afi a pe ecran, câte o linie a
matricei pe câte o linie a ecranului, elementele fiec✂rei linii fiind separate prin spa✁ii.
De exemplu pentru m=3 i n=4 se va afi a matricea urm✂toare:
1 3 5 7
9 11 13 15
17 19 21 23 (10p.)
a) Scrie✁i defini✁ia unei subprogram sdiv, cu doi parametri, subprogram care:
2.
– prime te prin intermediul parametrului n , un num✂r întreg de maximum 9 cifre;
– returneaz✂ prin intermediul celui de-al doilea parametru k suma tuturor divizorilor lui n.
De exemplu pentru valorea 6 a lui n, valoarea lui k va fi 12. (4p.)
b) Scrie✁i declar✂rile de date i programul principal în care se determin✂ în mod eficient primele p perechi
distincte de numere prietene folosind apeluri ale subprogramului sdiv. Fiecare pereche va fi afi at✂ pe câte un
rând, iar elementele unei perechi vor fi separate prin câte un spa✁iu. Dou✂ numere naturale distincte a i b sunt
numere prietene dac✂ a este egal cu suma divizorilor lui b mai mici decât b iar b este egal cu suma divizorilor
lui a mai mici decât a. Valoarea num✂rului p se cite te de al tastatur✂ (1<=p<=8) .
De exemplu , pentru p=3 se vor afi a:
220 284
1184 1210
2620 2924 (6p.)
3. Se cite te de la tastatur✂ un num✂r natural nenul n care are cel mult 9 cifre. S✂ se afi eze în fi ierul text
Date.out num✂rul k, natural, astfel încât produsul 1*2*3*...*(k-1)*k s✂ aib✂ o valoare cât mai apropiat✂
de num✂rul n.
De exemplu,dac✂ se cite te numarul n=25 fi ierul Date.out are urm✂torul con✁inut :
4
De exemplu dac✂ se cite te num✂rul n=119 fi ierul Date.out are urm✂torul con✁inut :
5 (10p.)

INFORMATIC✄, limbajul C/C++ 2 Varianta 51

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