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 71

♦ 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 variabilele întregi x, a ✁i b. Stabili i care dintre urm✂toarele expresii este adev✂rat✂, dac✂ ✁i numai
dac✂ x apar ine intervalului deschis (a, b):
a. !((x <= a )|| (x >= b)) b. (x >= a) && (x <= b)
c. (x >= a) || (x <= b ) d. !((x <= a) && ( x >= b ))
2. Preciza i câte muchii trebuie înl✂turate din graful 0 1 1 1 0 0 0
a c✂rui matrice de adiacen ✂ este dat✂ al✂ turat, 1 0 0 0 1 1 0
astfel încât s✂ devin✂ arbore? 1 0 0 1 0 0 1
1 0 1 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 1
0 0 1 0 0 1 0
a. 2 b. 1 c. 0 d. 3
3. Dac✂ x este o variabil✂ care memoreaz✂ ✁ i utilizeaz✂ în calcule rezultatul împ✂r irii a dou✂ numere
întregi, cu dou✂ zecimale exacte, care dintre urm✂ toarele declara ii ale variabilei x este corect✂ ?
a. int x[9][2]; b. unsigned int x; c. char x[2]; d. float x;
4. Folosind metoda backtracking, se genereaz✂ toate numerele de 4 cifre distincte, cu proprietatea c✂
cifrele apar in multimii {7,8,3,2,5}. Primele 10 solu ii generate sunt:
7832,7835,7823,7825,7853,7852,7382,7385,7328,7325. Indica i ce num✂ r urmeaz✂ dup✂
2538:
a. 5783 b. 5782 c. 2537 d. 5738
5. Preciza i care este num✂rul minim de muchii care trebuie
ad✂ugate grafului din figura al✂ turat✂, astfel încât acesta s✂
devin✂ eulerian.

a. 0 b. 4 c. 2 d. 1
6. Care trebuie s✂ fie valoarea variabilei întregi v în void F(long int n, long int &s)
apelul F(v,s) dac✂ valoarea ini ial✂ a variabilei { if (n > 0)
întregi s este 0, iar valoarea acesteia în urma { s = s * 10 + n % 10;
execut✂rii subprogramului F, definit al✂turat, este F(n / 10, s);
}
4301?
}
a. 1043 b. 1304 c. 4301 d. 1034
7. În secven a al✂turat✂ s-a notat cu x%y ☎ ✝
pentru i 1, n execut ✆

restul împ✂r irii num✂ rului întreg x la ✝✝ ☎


dac✆ (i%2=0) ✞i (a[i]%2>0) atunci
num✂ rul întreg y. Aceast✂ secven ✂ are ca ✝✟✠ scrie a[i]
efect: ✟✠

a. Tip✂rirea elementelor de valoare impar✂ aflate pe pozi ii pare în tabloul a


b. Tip✂rirea elementelor de valoare impar✂ aflate pe pozi ii impare în tabloul a
c. Tip✂rirea elementelor de valoare par✂ aflate pe pozi ii impare în tabloul a
d. Tip✂rirea elementelor de valoare par✂ aflate pe pozi ii pare în tabloul a

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


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

8. S✂ se stabileasc✂ ce se va afi✁ a pe ecran în urma execut✂rii apelului Scrie(4) pentru


subprogramul definit astfel:
void Scrie (int x)
{ if (x > 0)
{ if (x % 2) printf("###\n"); |cout << "###\n";
Scrie(x - 1);
if (!(x % 2)) printf("***\n");|cout << "***\n";
}
}
a. ### b. *** c. *** d. ###
### ### *** ***
*** *** ### ###
*** ### ### ***

SUBIECTUL II (20 de puncte)


Se consider programul pseudocod al turat: cite ✞te n(num ✆r natural)
d 0
S-a notat cu x%y restul împ✂ r irii num✂rului natural x la num✂rul ☎
pentru i 1, n execut ✆
natural nenul y ✝
cite ✞te x

Ce se va afi✁ a dac✂ se citesc pentru n valoarea 5 ✁ i pentru

dac ✆ d = 0 atunci
1. ✝ ✝
x valorile: 16, 8, 48, 0, 24? (7p.) ✝ ✝
d x
✝ ✝
altfel
2. Dac✂ n = 4, da i exemplu de patru valori pentru x, pentru ✝ ✝ ✝

repet ✆
care algoritmul scrie 1. (3p.) ✝ ✝ ✝
r x % d
✝ ✝ ✟
x d; d r
3. Scrie i programul C/C++, corespunz✂ tor algoritmului dat.(8p.) ✝ ✝
pân ✆ când r = 0

d x
4. Scrie i un algoritm pseudocod echivalent cu algoritmul dat ✝ ✟ ✠

care s✂ utilizeze în locul structurii repetitive repet ✆ pân ✆ ✟✠

când o structur✂ repetitiv✂ condi ionat✂ anterior. (2p.) scrie d

SUBIECTUL III (30 de puncte)


1. Scrie i un program C/C++ care cite✁ te de la tastatur✂ un num✂r natural n (0 <= n <=500000),
apoi n numere naturale de cel mult 9 cifre ✁ i afi✁ eaz✂ pe ecran câte dintre aceste numere au
proprietatea c✂ sunt divizibile cu suma cifrelor lor.
Pentru n = 8 ✁ i numerele 12, 13, 20, 51, 60, 122, 123, 117 se va afi✁ a 4 (10p.)
2. O list✂ liniar✂ dublu înl✂ n uit✂, re ine în fiecare nod, o valoare întreg✂ în cîmpul info ✁i adresele nodului
precedent, respectiv urm✂tor, în câmpurile prec ✁i respectiv urm.
a) Scrie i defini ia tipului de dat✂ corespunz✂tor unui nod al listei. (3p.)
b) Scrie i defini ia complet✂ a subprogramului cu numele Sterge cu trei parametri: prim, ultim ✁ i p
care reprezint✂ adresele primului, ultimului ✁i respectiv unui nod oarecare al listei ✁i care ✁terge din
list✂ nodul de la adresa p. (7p.)
3. Fi✁ ierul text cuvinte.in con ine mai multe linii nevide de text, fiecare linie de cel mult 255 de
caractere. Orice linie este compus✂ din unul sau mai multe cuvinte separate prin câte un spa iu.
S✂ se scrie un program care cite✁ te de la tastatur✂ un num✂r natural L ✁ i scrie în fi✁ ierul text
cuvinte.out toate cuvintele de lungime L din fi✁ ierul de intrare, în ordinea în care apar ele în text.
Cuvintele vor fi scrise pe prima linie a fi✁ ierului, separate prin câte un spa iu.
De exemplu pentru fi✁ ierul cuvinte.in de mai jos ✁ i L=4
A fost odat ✆
Ca niciodat ✆
O fata frumoas ✆ de împ ✆rat
Fi✁ ierul cuvinte.out va con ine: fost fat✆ (10p.)

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

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