Sunteți pe pagina 1din 200

Ministerul Educaiei, Cercetrii i Inovrii

Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar



BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 001

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila x este de tip real. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i
numai dac numrul real memorat n variabila x aparine intervalului (5,8]? (4p.)
a. (x<8) && (x>=5) b. (x<=8) || (x>5)
c. (x>8) || (x<=5) d. (x<=8) && (x>5)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [a] partea ntreag a numrului real a.
a) Scriei valoarea care se va afia dac se citete
n=103456. (6p.)
b) Scriei toate numere naturale impare, distincte, fiecare
avnd exact dou cifre, care pot fi citite pentru variabila
n astfel nct s se afieze valoarea 3. (4p.)
c) Scriei n pseudocod un algoritm, echivalent cu cel dat,
n care s se nlocuiasc structura ct timp...execut
cu o structur repetitiv de alt tip. (6p.)
citete n (numr natural)
z0
p1
ct timp n>0 execut
cn%10
n[n/10]
dac c%3=0 atunci
zz+p*(9-c)
pp*10


scrie z
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 001

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider o coad n care iniial au fost introduse, n aceast ordine, elementele cu
valorile 1 i 2:
1 2
. Se noteaz cu AD(x) operaia prin care se adaug elementul cu
valoarea x n coad i cu EL operaia prin care se elimin un element din coad. Cte
elemente va conine coada n urma executrii secvenei de operaii:
AD(4);EL;EL;AD(5);EL;AD(3)? (4p.)
a. 3 b. 1 c. 2 d. 5
2. Care este numrul maxim de componente conexe pe care le poate avea un graf neorientat
cu 20 noduri i 12 muchii? (4p.)
a. 6 b. 12 c. 10 d. 15

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.

n declararea alturat, cmpurile x i y ale nregistrrii pot
memora coordonatele carteziene ale unui punct din planul xOy.
Scriei o secven de instruciuni prin executarea creia se
calculeaz i se afieaz pe ecran distana dintre dou puncte ale
cror coordonate sunt memorate de variabilele A i B. (6p.)
struct punct
{
float x,y;
} A,B;
float d;
4. Pentru arborele reprezentat prin vectorul de tai T=(6,6,5,0,6,4,4,7), scriei care este
nodul cu cei mai muli fii i care sunt frunzele arborelui. (6p.)
Scriei un program C/C++ care citete de la tastatur dou numere naturale nenule n i m
(2m10, 2n10) i care construiete n memorie i apoi afieaz o matrice A cu n linii
(numerotate de la 1 la n) i m coloane (numerotate de la 1 la m) cu proprietatea c fiecare
element A
ij
memoreaz cea mai mic dintre valorile indicilor i i j (1in, 1jm).
Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a ecranului, elementele
fiecrei linii fiind separate prin cte un spaiu.
5.
Exemplu: pentru n=4 i m=5 se va afia matricea alturat.

(10p.)
1 1 1 1 1
1 2 2 2 2
1 2 3 3 3
1 2 3 4 4

Varianta 1 - informatica
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
Subiectul III (30 de puncte) - Varianta 001

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz n ordine lexicografic cuvintele de cte patru
litere din mulimea A={a,b,c,d}, cuvinte care nu conin dou vocale alturate. Primele
trei cuvinte generate sunt, n ordine: abab, abac, abad. Care este cel de-al aselea
cuvnt generat? (4p.)
a. abbb b. abbc c. abba d. abbd

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului
f(121,1);? (6p.)

//C
void f(long n, int i)
{ if(n==0) printf("%d",i);
if(n%3>0) f(n/3,i+1);
}
//C++
void f(long n, int i)
{ if(n==0) cout<<i;
if(n%3>0) f(n/3,i+1);
}
3. Fiierul text bac.txt conine, pe o singur linie, cel mult 1000 de numere naturale nenule
cu cel mult 4 cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un program
C/C++ care citete de la tastatur un numr natural nenul n (n999) i numerele din fiierul
bac.txt i care afieaz pe ecran, separate prin cte un spaiu, toate numerele din fiier
care sunt divizibile cu n. Dac fiierul nu conine niciun astfel de numr, atunci se va afia
pe ecran mesajul NU EXISTA.
Exemplu: dac fiierul bac.txt conine numerele: 3 100 40 70 25 5 80 6 3798,
pentru n=10 atunci pe ecran se va afia: 100 40 70 80 (10p.)
4. Subprogramul sub, cu trei parametri, primete prin intermediul parametrilor:
v un tablou unidimensional cu cel mult 100 de componente ce memoreaz numere
ntregi de cel mult 4 cifre fiecare;
n un numr natural nenul mai mic sau egal cu 100 ce reprezint numrul efectiv de
componente ale tabloului primit prin intermediul parametrului v;
a un numr ntreg cu cel mult 4 cifre.
Subprogramul sub returneaz numrul componentelor tabloului primit prin intermediul
parametrului v ale cror valori sunt egale cu valoarea parametrului a.
Exemplu: pentru valorile n=5, v=(1,21,9,21,403), a=21 ale parametrilor, n urma
apelului, subprogramului sub va returna valoarea 2.
a) Scriei definiia complet a subprogramului sub. (4p.)
b) Scriei un program C/C++ care s citeasc de la tastatur un numr natural nenul n
(n100) i n numere ntregi, fiecare avnd cel mult 4 cifre, i care, folosind apeluri utile ale
subprogramului sub, s afieze pe ecran mesajul DA dac oricare dou dintre cele n
numere citite sunt distincte dou cte dou, sau mesajul NU n caz contrar.
Exemplu: pentru n=6 i cele n numere citite de la tastatur: 47 183 69 8 134 -56
se va afia pe ecran mesajul DA (6p.)

Varianta 1 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 002

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x i y sunt tip int. Care dintre expresiile C/C++ de mai jos are valoarea 1
dac i numai dac valorile ntregi nenule memorate n variabilele x i y sunt egale? (4p.)
a. (x%y==0) && (y%x==0) && (x*y>0) b. (x<=y) && (y<x)
c. (x<=y) || (y<=x) d. x*x==y*y

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y.
a) Scriei ce se va afia dac se citesc, n aceast
ordine, numerele: 17 22 13 101 2 7 5 0.
(6p.) (
b) Scriei un ir de date de intrare, format doar din
numere naturale cu cel mult dou cifre fiecare,
care s determine afiarea valorii 9877. (4p.)
citete x (numr natural nenul)
ct timp x>0 execut
citete y (numr natural)
dac x>y atunci
scrie x%10
altfel
scrie y%10

xy

c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de alt tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 002

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte grafuri neorientate, distincte, cu 4 vrfuri se pot construi? Dou grafuri se consider
distincte dac matricele lor de adiacen sunt diferite. (4p.)
a. 4
6
b. 2
6
c. 6
4
d. 4
2. Variabila t, declarat alturat, memoreaz n cmpurile
a, b i c lungimile laturilor unui triunghi. Care dintre
urmtoarele instruciuni atribuie cmpului p al variabilei
t valoarea perimetrului triunghiului respectiv? (4p.)
struct triunghi
{
float a,b,c,p;
}t;
a. p.t=t.a+t.b+t.b; b. p.t=a.t+b.t+c.t;
c. t.p=t.a+t.b+t.c; d. t.p==t.a+t.b+t.c;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider o stiv n care iniial au fost introduse, n aceast ordine, elementele cu valorile
1, 2 i 3. Se noteaz cu AD(x) operaia prin care se adaug elementul cu valoarea x n
vrful stivei i cu EL operaia prin care se elimin elementul din vrful stivei. Asupra acestei
stive se execut urmtoarea secven de operaii: AD(4);EL;AD(5);EL;AD(6);EL;EL.
a) Care este valoarea elementului din vrful stivei n urma executrii acestei secvene de
operaii? (3p.)
b) Care este suma valorilor elementelor aflate n stiv n urma executrii acestei secvene de
operaii? (3p.)
4. n secvena de program alturat, variabila a
memoreaz o matrice cu n linii i n coloane (numerotate
de la 0 la n-1) cu elemente numere ntregi, iar toate
celelalte variabile sunt ntregi. tiind c n este un numr
natural nenul i c pe fiecare linie a matricei se afl cel
puin un element nenul, scriei instruciunile care pot
nlocui punctele de suspensie din secvena de program
alturat astfel nct, n urma executrii acesteia, s se
afieze ultima cifr a produsului elementelor nenule de
pe linia k (0k<n) a matricei a. (6p.)

p = 1;
for(j = 0; j < n; j++)
.............
printf("%d",p);|cout<<p;
5. Scriei un program C/C++ care citete de la tastatur un cuvnt format din cel mult 20 de
caractere, doar litere ale alfabetului englez. Programul determin transformarea cuvntului
citit prin eliminarea fiecrei litere mici a cuvntului, restul literelor nemodificndu-se, ca n
exemplu. Programul afieaz pe ecran cuvntul obinut. n cazul n care cuvntul citit
conine numai litere mici, programul va afia mesajul CUVANT VID.
Exemple:
- dac se citete cuvntul: baCALaUreaT se va afia pe ecran: CALUT
- dac se citete cuvntul: vara se va afia pe ecran: CUVANT VID (10p.)

Varianta 2 - informatica
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
Subiectul III (30 de puncte) - Varianta 002

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz n ordine lexicografic cuvintele de cte patru
litere din mulimea A={a,b,c,d}, cuvinte care nu conin dou vocale alturate. Primele
cinci cuvinte generate sunt, n ordine: abab, abac, abad, abba, abbb. Care este ultimul
cuvnt generat? (4p.)
a. ddcd b. dcba c. abcd d. dddd

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a
subprogramului f, ce se afieaz ca
urmare a apelului f(125);? (6p.)

void f(int n)
{ cout<<n%10; | printf(%d,n%10);
if(n!=0)
{ cout<<n%10; | printf(%d,n%10);
f(n/100);
}
}
3. Fiierul text NR.TXT conine pe o singur linie, separate prin cte un singur spaiu, cel mult
100 de numere ntregi, fiecare numr avnd cel mult 4 cifre. Scriei un program C/C++ care
citete numerele din fiierul NR.TXT i afieaz pe ecran, separate prin cte un spaiu, n
ordine cresctoare, toate numerele naturale nenule din fiier. Dac nu exist astfel de
numere se va afia pe ecran mesajul NU EXISTA.
Exemplu: dac fiierul NR.TXT conine numerele: -3 -10 0 7 -5 7 51 -800 6 3798,
atunci pe ecran se va afia: 6 7 7 51 3798 (10p.)
4. Un numr n se numete extraprim dac att el, ct i orice numr obinut prin permutarea
circular a cifrelor lui n, sunt numere prime. De exemplu, numrul 197 este un numr
extraprim deoarece 197, 971, 719 sunt numere prime. Numrul 23 nu este extraprim
deoarece 32 nu este prim.
a) Scriei definiia complet a unui subprogram f, cu un parametru, subprogram care:
- primete prin intermediul parametrului a un numr natural cu cel mult 2 cifre (a>1) ;
- returneaz suma tuturor exponenilor din descompunerea n factori primi a valorii
parametrului a.
Exemplu: pentru a=90 subprogramul va returna valoarea 4, deoarece a=2*3
2
*5

i
1+2+1=4. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n, 2n99, i
care, folosind apeluri utile ale subprogramului f, verific dac n este un numr extraprim i
afieaz pe ecran, n caz afirmativ mesajul DA, iar altfel mesajul NU. (6p.)

Varianta 2 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 003

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac numrul real
memorat n variabila x se afl n intervalul (-2,2)? (4p.)
a. x*x-4<=0 b. 4-x*x>0 c. (2<x)&&(x<-2) d. (x-2)*(x+2)>0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y.
a) Scriei ce se va afia dac se citesc, n aceast
ordine, numerele: 2 5 16 9 12 13 5 0. (6p.)
b) Scriei un ir de date de intrare, format doar din
numere naturale cu o singur cifr fiecare, care s
determine afiarea valorii 7310. (4p.)
citete z,x
(numere naturale nenule)
ct timp x>0 execut
citete y (numr natural)
dac z<y-x atunci
scrie x%10
altfel
scrie y%10

xy

c) Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc
structura ct timp...execut cu o structur repetitiv de alt tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 003

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf orientat cu 6 noduri numerotate de la 1 la 6 i cu mulimea arcelor
format doar din arcele:
- de la fiecare nod numerotat cu un numr neprim i (i>1) la toate nodurile numerotate cu
numere ce aparin mulimii divizorilor proprii ai lui i (divizori diferii de 1 i de i)
- de la nodul numerotat cu 1 la nodul numerotat cu 6
- de la fiecare nod numerotat cu un numr prim i la nodul numerotat cu i-1
Pentru graful dat, cte dintre nodurile grafului au gradul exterior strict mai mare dect gradul
interior? (4p.)
a. 1 b. 2 c. 4 d. 3
2. Cte frunze are arborele cu rdcin descris prin urmtorul vector de tai:
(6,5,5,2,0,3,3,3,8,7,7)? (4p.)
a. 1 b. 2 c. 5 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. n declararea alturat, cmpurile x i y ale nregistrrii pot
memora numrtorul, respectiv numitorul unei fracii. Scriei
secvena de instruciuni prin executarea creia se construiete
n variabila f o fracie obinut prin nsumarea fraciilor
memorate n variabilele f1 i f2. (6p.)
struct fractie
{
int x,y;
}f,f1,f2;
4. n secvena de instruciuni de mai jos, variabila s memoreaz un ir de caractere format
doar din litere ale alfabetului englez, iar variabilele i i n sunt de tip int. tiind c n urma
executrii secvenei s-a afiat succesiunea de caractere eeleeeneee scriei care este
irul de caractere memorat de variabila s. (6p.)
n=strlen(s);
for(i=0;i<n;i++)
printf("%c%c",s[i],e); | cout<<s[i]<<'e';
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (2n24) i
construiete n memorie o matrice cu n linii i n coloane ale crei elemente vor primi valori
dup cum urmeaz:
- elementele aflate pe diagonala principal a matricei vor primi valoarea 0
- elementele de pe prima coloan, cu excepia celui aflat pe diagonala principal vor primi
valoarea n
- elementele de pe a doua coloan, cu excepia celui aflat pe diagonala principal vor primi
valoarea n-1
...
- elementele de pe ultima coloan, cu excepia celui aflat pe diagonala principal vor primi
valoarea 1

Programul va afia matricea astfel construit pe ecran, cte o linie a matricei
pe cte o linie a ecranului, cu cte un spaiu ntre elementele fiecrei linii (ca n
exemplu).
Exemplu: pentru n=4 se va afia matricea alturat. (10p.)
0 3 2 1
4 0 2 1
4 3 0 1
4 3 2 0

Varianta 3 - informatica
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
Subiectul III (30 de puncte) - Varianta 003

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz n ordine lexicografic cuvintele de cte patru
litere din mulimea A={a,b,c,d}, cuvinte care nu conin dou vocale alturate. Primele
patru cuvinte generate sunt, n ordine: abab, abac, abad, abba. Care este antepenultimul
cuvnt generat? (4p.)
a. dddb b. ddcd c. ddba d. dcdd

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a
subprogramului f, ce se afieaz ca
urmare a apelului f(26);? (6p.)

void f (int x)
{ if(x>0)
{ cout<<'x'; | printf("%c",'x');
f(x/3);
cout<<'y'; | printf("%c",'y');
}
}
3. Fiierul text NR.TXT conine pe o singur linie, separate prin cte un singur spaiu, cel mult
100 de numere naturale, fiecare numr avnd cel mult 4 cifre. Scriei un program C/C++
care citete toate numerele din fiier i afieaz pe ecran, separate prin cte un spaiu, n
ordine cresctoare, toate numerele din fiier care au cel puin 3 cifre. Dac fiierul nu
conine astfel de numere se va afia pe ecran mesajul NU EXISTA. (10p.)
4. Subprogramul cif, cu doi parametri, primete prin intermediul parametrului a un numr
natural cu cel mult 8 cifre i prin intermediul parametrului b o cifr; subprogramul returneaz
numrul de apariii ale cifrei b n scrierea numrului a.
Exemplu: pentru a=125854 i b=5, subprogramul va returna valoarea 2.
a) Scriei definiia complet a subprogramului cif. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n cu cel mult 8
cifre, dintre care cel puin una impar, i care determin i afieaz pe ecran, folosind
apeluri utile ale subprogramului cif, cel mai mare numr natural care poate fi obinut
utiliznd toate cifrele impare ale numrului n.
Exemplu: dac n=2152331 atunci se va afia pe ecran numrul 53311. (6p.)

Varianta 3 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 004

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este rezultatul evalurii expresiei C/C++ alturate? (4p.) 11*3/2*2/3
a. 2 b. 10 c. 2.75 d. 11

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y i cu xy operaia de
interschimbare a valorilor variabilelor x i y.
a) Scriei ce se afieaz pentru a=5 i b=17. (6p.)
b)
Scriei toate perechile de valori care pot fi citite
pentru variabilele a i b, astfel nct s se afieze, n
acest ordine, numerele: 1 -1.
(4p.)
citete a,b (numere ntregi)
dac a<b atunci
ab

pentru xa,b,-1 execut
dac x%20 atunci
scrie x,


c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
pentru...execut cu o structur repetitiv de alt tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 004

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf orientat cu 6 noduri numerotate de la 1 la 6 i cu mulimea arcelor
format doar din arcele:
- de la fiecare nod numerotat cu un numr neprim i (i>1) la toate nodurile numerotate cu
numere ce aparin mulimii divizorilor proprii ai lui i (divizori diferii de 1 i de i)
- de la nodul numerotat cu 1 la nodul numerotat cu 6
- de la fiecare nod numerotat cu un numr prim i la nodul numerotat cu i-1
Pentru graful dat, cte dintre nodurile grafului au gradul exterior egal cu gradul interior? (4p.)
a. 2 b. 3 c. 1 d. 4
2. Cte frunze are arborele cu rdcin, cu 8 noduri, numerotate de la 1 la 8, descris prin
urmtorul vector de tai: (6,5,5,2,0,3,3,3)? (4p.)
a. 4 b. 6 c. 5 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.

Se consider o stiv n care iniial au fost introduse, n aceast ordine,
elementele cu valorile 1, 2 i 3, ca n figura alturat. Se noteaz cu
AD(x) operaia prin care se adaug elementul cu valoarea x n vrful
stivei i cu EL operaia prin care se elimin elementul din vrful stivei.
Reprezentai, dup modelul alturat, coninutul stivei rezultat n urma
executrii secvenei de operaii: AD(4);EL;EL;AD(5);EL? (6p.)

1
2
3
vrf
baza

4. Fie s o variabil ce memoreaz un ir de caractere,
format doar din litere ale alfabetului englez, i i o
variabil de tip int. Scriei instruciunile ce pot
nlocui punctele de suspensie din secvena de
program alturat astfel nct executarea ei s
determine nlocuirea tuturor literelor mici din irul s
cu litera W i apoi afiarea irului obinut. (6p.)
i=0;
while (i<strlen(s))
{
...............
}
printf("%s",s);| cout<<s;
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (2n24) i
construiete n memorie o matrice cu n linii i n coloane ale crei elemente vor primi valori
dup cum urmeaz:
- elementele aflate pe diagonala secundar a matricei vor primi valoarea 0
- elementele de pe prima linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea n
- elementele de pe a doua linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea n-1
...
- elementele de pe ultima linie, cu excepia celui aflat pe diagonala secundar vor primi
valoarea 1

Programul va afia matricea astfel construit pe ecran, cte o linie a matricei
pe cte o linie a ecranului, cu cte un spaiu ntre elementele fiecrei linii (ca
n exemplu).
Exemplu: pentru n=4 se va afia matricea alturat. (10p.)
4 4 4 0
3 3 0 3
2 0 2 2
0 1 1 1

Varianta 4 - informatica
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
Subiectul III (30 de puncte) - Varianta 004

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz n ordine lexicografic cuvintele de cte patru
litere din mulimea A={a,b,c,d}, cuvinte care nu conin dou vocale alturate. Primele
trei cuvinte generate sunt, n ordine: abab, abac, abad. Care este penultimul cuvnt
generat? (4p.)
a. dcdb b. dcba c. dddc d. ddcd

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru subprogramul f definit
alturat, ce se afieaz ca urmare
a apelului f(15,2);? (6p.)
void f (int n, int x)
{ if(x>n)
cout<<*; | printf(%c,*);
else
{ f(n,x+4);
cout<<x%10; | printf(%d,x%10);
}
}
3. Fiierul text NR.TXT conine pe o singur linie, separate prin cte un singur spaiu, cel mult
100 de numere naturale, fiecare numr avnd cel mult 4 cifre. Scriei un program C/C++
care citete numerele din fiierul NR.TXT i afieaz pe ecran, separate prin cte un spaiu,
n ordine descresctoare, toate numerele din fiier care au cel mult 2 cifre. Dac fiierul nu
conine astfel de numere se va afia pe ecran mesajul NU EXISTA. (10p.)
4. Subprogramul cif, cu doi parametri, primete prin intermediul parametrului a un numr
natural cu cel mult 8 cifre i prin intermediul parametrului b o cifr; subprogramul returneaz
numrul de apariii ale cifrei b n scrierea numrului a.
Exemplu: pentru a=125854 i b=5, subprogramul va returna valoarea 2.
a) Scriei definiia complet a subprogramului cif. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n cu cel mult 8
cifre, dintre care cel puin una impar, i care determin i afieaz pe ecran, folosind
apeluri utile ale subprogramului cif, cel mai mic numr natural care poate fi obinut
utiliznd toate cifrele impare ale numrului n.
Exemplu: dac n=2152331 atunci se va afia pe ecran numrul 11335. (6p.)

Varianta 4 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 005

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila x este de tip real. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i
numai dac numrul real memorat n variabila x nu aparine intervalului (2,9]? (4p.)
a. (x>2) && (x<=9) b. (x<=2) && (x>9)
c. (x<=2) || (x>9) d. (x<2) || (x>9)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider programul pseudocod
alturat.
S-a notat cu x%y restul mpririi numrului
ntreg x la numrul ntreg nenul y i cu [a]
partea ntreag a numrului real a.
a) Scriei ce se va afia dac se citesc,
n aceast ordine, valorile 729385 i
532. (6p.)
b) Dac pentru z se citete valoarea 99,
scriei cte numere naturale, cu exact
3 cifre fiecare, pot fi citite pentru x
astfel nct s se afieze valoarea 0 n
fiecare dintre aceste cazuri. (4p.)
citete x,z (numere naturale)
y0
repet
yy*10+x%10
x[x/100]
pn cnd x=0
ct timp y*z>0 i y%10=z%10 execut
y[y/10]
z[z/10]

dac y+z=0 atunci
scrie 1
altfel
scrie 0

c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se foloseasc o singur
structur repetitiv. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 005

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. ntr-un graf neorientat cu 10 muchii, fiecare nod are gradul un numr nenul. Doar trei dintre
noduri au gradul un numr par, restul nodurilor avnd gradele numere impare. Care este
numrul maxim de noduri pe care poate s le aib graful? (4p.)
a. 14 b. 17 c. 10 d. 16
2. Variabila d, declarat alturat, memoreaz n cmpurile a i
b limea i, respectiv, lungimea unui dreptunghi. Care dintre
urmtoarele instruciuni atribuie cmpului aria al variabilei d
valoarea ariei dreptunghiului respectiv? (4p.)

struct dreptunghi
{
float a,b,aria;
}d;
a. d.aria==d.a*d.b; b. aria.d=a.d*b.d;
c. aria.d=d.a*d.b; d. d.aria=d.a*d.b;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un arbore cu rdcin n care doar 13 dintre nodurile arborelui au exact 2
descendeni direci (fii), restul nodurilor avnd cel mult un descendent direct (fiu). Care este
numrul frunzelor arborelui? (6p.)
Fie s o variabil ce memoreaz un ir de caractere, c i d dou variabile ce memoreaz
cte un caracter, iar n i i variabile ntregi. Scriei instruciunile ce pot nlocui punctele de
suspensie din secvena de program de mai jos astfel nct executarea ei s determine
4.
nlocuirea tuturor apariiilor caracterului memorat
de variabila c n irul s cu caracterul memorat de
variabila d i apoi afiarea irului obinut. (6p.)
n=strlen(s);
for(i=0;i<n;i++)
...............
printf("%s",s);| cout<<s;
5. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i m
(2m10, 2n10) i care construiete n memorie i apoi afieaz o matrice A cu n linii
(numerotate de la 1 la n) i m coloane (numerotate de la 1 la m) cu proprietatea c fiecare
element A
ij
memoreaz cea mai mare dintre valorile indicilor i i j (1in, 1jm).
Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a ecranului, elementele
fiecrei linii fiind separate prin cte un spaiu. (10p.)

Exemplu: pentru n=4 i m=5 se va afia matricea alturat.
. (10p.)
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5

Varianta 5 - informatica
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
Subiectul III (30 de puncte) - Varianta 005

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Folosind modelul combinrilor se genereaz numerele naturale cu cte trei cifre distincte din
mulimea {1,2,3,4}, numere cu cifrele n ordine strict cresctoare, obinndu-se, n ordine:
123, 124, 134, 234. Dac se utilizeaz exact aceeai metod pentru a genera numerele
naturale cu cte patru cifre distincte din mulimea {1,2,3,4,5}, cte dintre numerele
generate au prima cifr 1 i ultima cifr 5? (4p.)
a. 4 b. 2 c. 6 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
Pentru definiia de mai jos a subprogramului f, ce se afieaz ca urmare a apelului
f(10);? (6p.)
2.
//C
void f (int b)
{ if(3<=b)
{f(b-2); printf(%c,*);}
else printf(%d,b);
}
//C++
void f (int b)
{ if(3<=b)
{ f(b-2); cout<<*;}
else cout<<b;
}
3. Scriei un program C/C++ care citete de la tastatur un numr natural n cu cel mult 8 cifre
(n10) i care creeaz fiierul text NR.TXT ce conine numrul n i toate prefixele nenule
ale acestuia, pe o singur linie, separate prin cte un spaiu, n ordine descresctoare a
valorii lor.
Exemplu: pentru n=10305 fiierul NR.TXT va conine numerele:
10305 1030 103 10 1 (10p.)
4. Subprogramul f, cu un parametru:
- primete prin intermediul parametrului a un numr natural cu cel mult 8 cifre (a>1);
- returneaz cel mai mic divizor prim al valorii parametrului a.
Exemplu: pentru valoarea 45 a parametrului a, subprogramul va returna valoarea 3
deoarece a=3
2
*5,

iar cel mai mic divizor prim al su este 3.
a) Scriei definiia complet a subprogramului f. (4p.)
b) Scriei un program C/C++ care s citeasc de la tastatur un numr natural nenul n
(n100) i un ir de n numere naturale de cel mult 8 cifre fiecare, toate numerele din ir
fiind strict mai mari dect 1. Folosind apeluri utile ale subprogramului f, programul va
determina i va afia pe ecran toate numerele prime din irul citit. Numerele determinate se
vor afia pe ecran, separate prin cte un spaiu. Dac nu exist astfel de numere se va afia
pe ecran mesajul NU EXISTA.
Exemplu: pentru n=8, irul: 1125, 2, 314, 101, 37, 225, 15, 12 se va afia:
2 101 37 (6p.)



Varianta 5 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 006

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Care dintre urmtoarele expresii C/C++, are ca valoare cel mai mic dintre numerele
naturale nenule, cu cel mult 4 cifre fiecare, memorate n variabilele ntregi x i y? (4p.)
a. (x+y-abs(x-y))/2 b. x+y-abs(x-y)/2
c. (x+y+abs(x-y))/2 d. (x+y+abs(x+y))/2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [c] partea ntreag a numrului real c, iar cu a%b
restul mpririi numrului ntreg a la numrul ntreg nenul b.
a) Scriei valoarea care se afieaz, n urma executrii
algoritmului, dac se citete numrul 9321. (6p.)
b) Scriei cea mai mare valoare de 4 cifre distincte care
poate fi citit pentru n astfel nct s se afieze valoarea
11. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura ct timp ... execut
cu o structur repetitiv cu test final. (6p.)
citete n (numr natural)
s-1
ct timp n>0 execut
dac n%10>s atunci
sn%10
altfel
s11

n[n/10]

scrie s

d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 006

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. n declararea alturat, cmpul a al structurii memoreaz
numratorul, iar cmpul b memoreaz numitorul unei fracii.
Care dintre urmtoarele secvene de instruciuni determin,
n urma executrii, interschimbarea numitorului fraciei x cu
numitorul fraciei y? (4p.)
struct p{
int a,b;} x,y;
int t;
a. t=x.b; x.b=y.b; y.b=t; b. t=b.x; b.x=b.y; b.y=t;
c. x.b=y.b; d. b.x=b.y;
2. Se consider un graf neorientat cu 10 noduri i 7 muchii. Care este numrul maxim de
componente conexe din care poate fi format graful? (4p.)
a. 8 b. 7 c. 6 d. 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este numrul de muchii ale unui arbore cu 15 noduri? (6p.)
4. n secvena alturat se consider c variabila a
memoreaz un tablou bidimensional cu n linii i n
coloane, numerotate de la 0 la n-1, iar toate
celelalte variabile sunt ntregi. Ce valoare se va afia
n urma executrii secvenei, dac n=4, iar tabloul
are coninutul de mai jos?
1 2 3 4
5 6 7 8
9 1 2 3
4 5 6 7 (6p.)
p=0; u=n-1; s=0;
while (p<=u)
{ s=s+a[p][p]+a[u][u];
p=p+1; u=u-1;
}
cout<<s; | printf(%d,s);
5. Se consider un text cu maximum 255 de caractere n care cuvintele sunt separate prin
unul sau mai multe spaii. Primul caracter din textul citit este o liter, iar cuvintele sunt
formate numai din litere mici ale alfabetului englez. Scriei un program C/C++ care citete
de la tastatur textul i l transform nlocuind prima liter a fiecrui cuvnt cu litera mare
corespunztoare, restul caracterelor rmnnd nemodificate. Textul astfel transformat va fi
afiat pe ecran.
Exemplu: dac de la tastatur se introduce textul: mare frig rosu
se va afia pe ecran: Mare Frig Rosu (10p.)


Varianta 6 - informatica
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
Subiectul III (30 de puncte) - Varianta 006

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul cu definiia
alturat. Ce valoare se va afia n urma
executrii instruciunii de mai jos?
cout<<f(12); |
printf(%d,f(12));
(4p.)
int f (int n){
int c;
if (n!=0)
{if (n%2==1)
c=1+f(n/2);
else c=f(n/2);
cout<<n%2; | printf(%d,n%2);
return c;
}
else return 0;
}
a. 11002 b. 20011 c. 10102 d. 00112

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking sunt generate numerele de 3 cifre, avnd toate cifrele
distincte i cu proprietatea c cifrele aflate pe poziii consecutive sunt de paritate diferit.
tiind c primele ase soluii generate, sunt n aceast ordine, 103, 105, 107, 109, 123,
125 scriei a aptea i a noua soluie generat. (6p.)
3.
Se consider definite urmtoarele subprograme:
- s1, cu doi parametri: a, b dou numere ntregi cu cel mult 4 cifre fiecare; subprogramul
interschimb valorile a dou variabile transmise prin intermediul parametrilor a i b.
- s2, cu trei parametri: a, un tablou unidimensional cu exact 100 de elemente, numere
ntregi cu cel mult 4 cifre fiecare, p, un numr natural (p100), q, un numr natural
(q100). Subprogramul caut primul element divizibil cu 5 n secvena a
p
,a
p+1
, ..., a
q
,
i returneaz poziia acestuia, dac exist un astfel de element, sau valoarea -1 n caz
contrar.
a) Scriei numai antetul subprogramului s1. (4p.)
b) Scriei definiia complet a subprogramului s2. (6p.)
c) Scriei programul C/C++ care citete de la tastatur o valoare natural n (0<n100) i
apoi un tablou unidimensional a, cu n elemente, numere ntregi cu cel mult 4 cifre fiecare.
Programul determin, folosind apeluri utile ale subprogramului s2, primul element divizibil
cu 5 (dac exist) i ultimul element divizibil cu 5 (dac exist) al tabloului a, interschimb
valorile elementelor gsite, folosind apelul subprogramului s1, i apoi scrie pe prima linie a
fiierului text BAC.TXT elementele tabloului a, astfel transformat, separate prin cte un
spaiu, sau valoarea 0 dac tabloul conine mai puin de dou elemente divizibile cu 5.
Exemplu: pentru n=7 i tabloul a=(6,10,4,15,2,5,8), programul va scrie n fiier:
6 5 4 15 2 10 8 (10p.)

Varianta 6 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 007

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Fiecare dintre variabilele ntregi x i y memoreaz cte un numr natural. Care dintre
expresiile C/C++ de mai jos are valoarea 1 dac i numai dac numrul memorat n x este
strict mai mare dect 0 i numrul memorat n y este strict mai mare dect 5? (4p.)
a. x*y-5!=0 b. x*(y-5)!=0
c. x*(y-5)>=0 d. !(x*(y-5)<=0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod:
S-a notat cu [c] partea ntreag a numrului
real c, iar cu a%b restul mpririi numrului
ntreg a la numrul ntreg nenul b.
a) Scriei valoarea afiat, n urma
executrii algoritmului, dac se citete
pentru n valoarea 232493. (4p.)
b) Scriei dou valori naturale distincte care
pot fi citite pentru n astfel nct, n urma
executrii algoritmului s se afieze
numrul 9654. (6p.)
citete n (numr natural nenul)
nr0
pentru a9,0,-1 execut
mn
ct timp m0 i m%10a execut
m[m/10]

dac m0 atunci
nrnr*10+m%10


scrie nr

c) Scriei n pseudocod un algoritm echivalent cu cel dat n care s se nlocuiasc structura
pentru...execut cu o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 007

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider tabloul bidimensional a cu n linii
numerotate de la 0 la n-1 i m coloane
numerotate de la 0 la m-1. Ce reprezint
elementul a[n-1][p] dup executarea
secvenei de program alturate? (4p.)
p=0;
for (i=1;i<m;i++)
if (a[n-1][p]<a[n-1][i])
p=i;
a. cel mai mare element de pe linia n-1 b. cel mai mic element de pe linia n-1
c. cel mai mare element de pe coloana n-1 d. cel mai mic element de pe coloana n-1
2. Care dintre urmtoarele valori pot reprezenta gradele nodurilor unui graf neorientat cu 6
noduri? (4p.)
a. 3 2 2 2 3 3 b. 4 2 2 2 3 2 c. 5 2 2 2 0 3 d. 5 2 2 2 1 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Considerndu-se declararea alturat, scriei o secven de
instruciuni prin executarea creia s se afieze, pe o singur
linie a ecranului, coninutul variabilei x. (6p.)
struct elev
{ char nume[50];
int clasa;
float medie;
}x;
4. Se consider graful neorientat cu mulimea vrfurilor {1,2,3,4,5,6} i mulimea muchiilor
{[1,2],[2,3],[3,4],[3,5],[4,5],[1,3],[2,6],[2,4],[4,6]}.
Care este numrul minim de muchii ce trebuie eliminate i care sunt aceste muchii astfel
nct graful parial obinut s nu mai fie conex? (6p.)
5. Se consider un text cu maximum 255 de caractere, format din litere mici ale alfabetului
englez i spaii. Textul conine cel puin o consoan. Scriei un program C/C++ care citete
de la tastatur textul i afieaz pe ecran numai ultima consoan care apare n text.
Exemplu: dac de la tastatur se introduce textul mare frig saci
pe ecran se va afia: c (10p.)

Varianta 7 - informatica
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
Subiectul III (30 de puncte) - Varianta 007

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul
cu definiia alturat. Ce se
va afia n urma apelului
f(12345);? (4p.)
void f(long n){
if (n!=0){
if (n%2==0)
cout<<n%10; | printf(%d,n%10);
f(n/10);
if (n%2!=0)
cout<<n%10;| printf(%d,n%10);
}
else cout<<endl; | printf(\n);
}
a. 531
24
b. 24
135
c. 531
42
d. 42
135

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Folosind tehnica bactracking un elev a scris un program care genereaz toate numerele de
cte n cifre (0<n9), cifrele fiind n ordine strict cresctoare. Dac n este egal cu 5, scriei
n ordine cresctoare toate numerele avnd cifra unitilor 6, care vor fi generate de
program. (6p.)
3. Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n100)i cele
3*n elemente ale tabloului unidimensional v, numere naturale cu cel mult patru cifre fiecare.
Tabloul este mprit n trei zone, cu cte n elemente fiecare: prima zon conine primele n
elemente din tablou, a doua zon conine urmtoarele n elemente din tablou, restul
elementelor fiind n zona a treia. Programul va interschimba elementele zonei unu cu
elementele zonei trei i va afia pe ecran toate elementele tabloului, astfel transformat,
separate prin cte un spaiu.
De exemplu, pentru n=3 i v=(1 2 3 4 5 6 7 8 9), se va afia pe ecran :
7 8 9 4 5 6 1 2 3 (10p.)
4. Se consider irul definit de urmtoarea
relaie de recuren:


a) Scriei numai antetul unui subprogram sub, care primete prin intermediul parametrului n
un numr natural de maximum 8 cifre, i care returneaz cel mai mare termen al irului de
mai sus mai mic sau cel mult egal cu n.
Exemplu: dac n=83 atunci subprogramul va returna valoarea 80. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural s (s10000000)
i determin un ir de numere distincte a cror sum este egal cu s, folosind apeluri utile
ale subprogramului sub. Numerele determinate se vor scrie n fiierul Numere.txt, pe
prima linie a acestuia, separate prin cte un spaiu.
Exemplu: dac valoarea citit de la tastatur este 63, atunci fiierul Numere.txt va
conine valorile urmtoare, nu neaprat n aceast ordine: 40 20 3. (6p.)

Varianta 7 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 008

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are ca valoare cel mai mare dintre numerele
naturale nenule, cu cel mult 4 cifre fiecare, memorate n variabilele ntregi a i b? (4p.)
a. (a+b+abs(a-b))/2 b. a+b+abs(a-b)/2
c. (a+b-abs(a-b))/2 d. (a+b-abs(a+b))/2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod:
S-a notat cu [c] partea ntreag a numrului real
c, iar cu a%b restul mpririi numrului ntreg a la
numrul ntreg b.
a) Scriei valoarea care se afieaz, n urma
executrii algoritmului, dac se citete
pentru n valoarea 932125 i pentru k
valoarea 3. (4p.)
b) Scriei un set de date de intrare astfel nct,
n urma executrii algoritmului, s se
afieze valoarea 0. (6p.)
c) Scriei n pseudocod un algoritm echivalent
cu cel dat n care s se nlocuiasc
structura ct timp ... execut cu o
structur repetitiv cu test final. (6p.)
citete n,k (numere naturale nenule)
nr0
p1
ct timp n0 i k0 execut
dac n%2=0 atunci
nrnr+ n%10*p
pp*10
altfel
kk-1

n[n/10]

scrie nr

d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 008

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte frunze are arborele cu 8 noduri i rdcina 1,
reprezentat prin matricea de adiacen alturat? (4p.)

0 1 0 0 1 0 0 0
1 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0
0 0 1 0 0 0 0 0
1 0 0 0 0 1 0 1
0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
a. 5 b. 4 c. 3 d. 2
2. Care este numrul maxim de vrfuri de grad 0 pe care le poate avea un graf neorientat cu
10 noduri i 7 muchii? (4p.)
a. 5 b. 6 c. 4 d. 7

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se afieaz n urma executrii secvenei de program urmtoare, dac variabila s
memoreaz irul de caractere abcdefgh?
strcpy(s+2,s+4);
cout<<s<< <<strlen(s); | printf(%s %d ,s,strlen(s)); (6p.)
4. Se consider un graf orientat cu 6 noduri care are urmtoarele proprietti:
- suma gradelor externe ale tuturor varfurilor grafului este egal cu 6;
- sunt doar 3 vrfuri care au gradul intern egal cu 1.
Care este valoarea maxim pe care o poate avea gradul extern al unui vrf din graful dat?
Reprezentai prin liste de adiacen un graf care ndeplinete condiiile din enunul
problemei i n care unul dintre vrfuri are acest grad extern maxim. (6p.)
5. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i p
(2n15, 1p15) i construiete n memorie un tablou bidimensional cu n linii i p
coloane. Tabloul va fi construit astfel nct, parcurgnd tabloul linie cu linie de sus n jos i
fiecare linie de la stnga la dreapta, s se obin irul primelor n*p ptrate perfecte
impare, ordonat strict cresctor, ca n exemplu. Tabloul astfel construit va fi afiat pe ecran,
fiecare linie a tabloului pe cte o linie a ecranului, cu cte un spaiu ntre elementele fiecrei
linii.

Exemplu: pentru n=2, p=3 programul va afia
tabloul alturat: (10p.)
1 9 25
49 81 121

Varianta 8 - informatica
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
Subiectul III (30 de puncte) - Varianta 008

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider subprogramul f cu
definiia alturat. Ce se va afia n
urma apelului f(12345);? (4p.)
void f(long n){
if (n!=0){
if (n%2!=0)
cout<<n%10; | printf(%d,n%10);
f(n/10);
if (n%2==0)
cout<<n%10;| printf(%d,n%10);
}
else cout<<endl; | printf(\n);
}
a. 135
24
b. 135
42
c. 531
24
d. 531
42

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking sunt generate numerele de 3 cifre, avnd toate cifrele
distincte i cu proprietatea c cifrele aflate pe poziii consecutive sunt de paritate diferit.
tiind c primele trei soluii generate sunt, n aceast ordine, 103, 105, 107, cte dintre
numerele generate au suma cifrelor egal cu 6? (6p.)
3. Scriei un program C/C++ care citete de la tastatur un numr natural n (n50) i care
afieaz pe prima linie a fiierului BAC.TXT primele n numere pare, pe a doua linie primele
n-1 numere pare, ..., pe linia n primul numr par. Numerele vor fi afiate pe fiecare linie n
ordine cresctoare i vor fi separate prin cte un spaiu. (10p.)
Exemplu: dac n=3 fiierul BAC.TXT va avea coninutul alturat.

0 2 4
0 2
0
4. Se consider definite urmtoarele subprograme:
- p1 care primete prin intermediul parametrului n un numr natural cu cel mult 8 cifre i
returneaz suma cifrelor numrului primit prin parametrul n
Exemplu: dac n este egal cu 1234 valoarea returnat de subprogram va fi 10.
-p2 care primete prin intermediul parametrului n un numr natural cu cel mult 8 cifre,
elimin ultima cifr a acestui numr i returneaz noul numr obinut.
Exemplu: dac n este egal cu 1234 valoarea returnat de subprogram va fi 123.
a) Scriei numai antetul subprogramelor p1 i p2. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural nenul n cu cel
mult 8 cifre i determin, prin apeluri utile ale subprogramelor p1 i p2, numrul de cifre
egale cu 0 din scrierea lui n. Programul va afia pe ecran numrul obinut.
Exemplu: dac n este 102030, programul va afia valoarea 3. (6p.)

Varianta 8 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 009

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile C/C++ de mai jos este
echivalent cu expresia alturat? (4p.)
((a>3) && (a<15)) || (a!=b)
a. ((a>3) || (a<15)) && (a==b) b. !((a<=3) || (a>=15)) || (a!=b)
c. ((a>3) || (a<15)) && (a!=b) d. !(a<3 || a>15) && (a!=b)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [c] partea ntreag a numrului real c, iar cu
a%b restul mpririi numrului ntreg a la numrul ntreg nenul
b.
a) Scriei valoarea care se afieaz, n urma executrii
algoritmului, dac se citete pentru n valoarea 1239.
(6p.)
b) Scriei cea mai mic valoare de 4 cifre distincte care
poate fi citit pentru n astfel nct s se afieze
valoarea -1. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat
n care s se nlocuiasc structura ct timp ...
execut cu o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n (numr natural)
s10
ct timp n>0 execut
dac n%10<s atunci
sn%10
altfel
s-1

n[n/10]

scrie s

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 009

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considernd declararea alturat, care dintre urmtoarele secvene de
instruciuni realizeaz n mod corect citirea de la tastatur a valorilor
celor dou cmpuri ale variabilei x? (4p.)
struct {
int a, b;
} x;
a. cin>>x; | scanf(%d, &x);
b. cin>>a.x>>b.x; | scanf(%d %d, &a.x,&b.x);
c. cin>>x.a>>x.b; | scanf(%d %d, &x.a,&x.b);
d. cin>>a->x>>b->x; | scanf(%d %d, &a->x,&b->x);
2. Se consider graful neorientat G cu 8 noduri, care are urmtoarele proprieti:
- suma gradelor tuturor nodurilor este 12
- graful are exact 3 noduri cu gradul 1
Care este numrul maxim de noduri de grad 0 ale grafului G? (4p.)
a. 1 b. 4 c. 2 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se afieaz n urma executrii secvenei de
program alturate, dac variabila s memoreaz irul
de caractere abcdef iar variabila n este de tip
ntreg? (6p.)
n=strlen(s);
s[n-1]=s[0];
cout<<s; | printf(%s ,s);
4. Se consider graful orientat G reprezentat prin listele de
adiacen alturate. Care este lungimea maxim a unui drum
elementar din acest graf? Care sunt arcele care compun un drum
cu aceste proprieti? (6p.)

5. Se consider tabloul bidimensional cu n linii i n coloane ce conine numere naturale cu cel
mult patru cifre fiecare. Scriei programul C/C++ care citete de la tastatur numrul natural
n (2n23) i cele n*n elemente ale tabloului i apoi afieaz pe ecran elementele
primului ptrat concentric, separate prin cte un spaiu. Ptratul este parcurs n sensul
acelor de ceasornic ncepnd din colul su stnga-sus, ca n exemplu. Primul ptrat
concentric este format din prima i ultima linie, prima i ultima coloan a tabloului.

Exemplu: pentru n=5 i tabloul alturat, se va
afia:
1 2 3 4 5 1 6 2 7 6 5 4 3 7 2 6
(10p.)
1 2 3 4 5
6 7 8 9 1
2 3 4 5 6
7 8 9 1 2
3 4 5 6 7

Varianta 9 - informatica
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
Subiectul III (30 de puncte) - Varianta 009

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul cu definiia
alturat. Ce valoare se va afia n urma
executrii instruciunii de mai jos?
cout<<f(8); |
printf(%d,f(8)); (4p.)
int f (int n){
int c;
if (n!=0)
{if (n%2==0)
c=1+f(n/2);
else c=f(n/2);
cout<<n%2; | printf(%d,n%2);
return c;
}
else return 0;
}
a. 10003 b. 30001 c. 10013 d. 00112

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking sunt generate n ordine cresctoare toate numerele de 3
cifre, avnd cifrele n ordine cresctoare, iar cifrele aflate pe poziii consecutive sunt de
paritate diferit. tiind c primele cinci soluii generate sunt, n aceast ordine, 123, 125,
127, 129, 145, care este cel de al 6-lea numr generat? Dar al 8-lea? (6p.)
3.
Se consider definite dou subprograme:
- Subprogramul s1, cu 3 parametri, care primete prin intermediul parametrului a un tablou
unidimensional cu exact 100 de elemente, numerotate de la 0 la 99, numere ntregi de cel
mult 4 cifre fiecare, iar prin intermediul parametrilor p i q (0p<q<100) poziiile a dou
elemente ale tabloului. Subprogramul furnizeaz prin intermediul parametrului p poziia
primului element par (dac exist), i prin intermediul parametrului q poziia ultimului
element impar (dac exist), din secvena a
p
,a
p+1
, ..., a
q
. Dac aceast secven nu
conine niciun element par subprogramul va furniza prin intermediul lui p valoarea -1, iar
dac nu conine niciun element impar, va furniza prin intermediul lui q valoarea -1.
- Subprogramul s2, cu doi parametri, a i b, dou numere ntregi cu cel mult 4 cifre fiecare;
subprogramul interschimb valorile a dou variabile transmise prin intermediul parametrilor
a i b.
a) Scriei numai antetul subprogramului s2. (4p.)
b) Scriei definiia complet a subprogramului s1. (6p.)
c) Scriei un program C/C++ care:
- citete de la tastatur un numr natural nenul n (0n<100), apoi cele n elemente ale unui
ir a. Fiecare dintre aceste elemente este un numr ntreg cu cel mult 4 cifre i cel puin un
element al irului este par;
- determin rearanjarea elementelor irului astfel nct toate valorile pare s fie plasate la
sfritul irului a, folosind apeluri utile ale subprogramelor s1 i s2;
- scrie elementele irului rezultat n urma acestei transformri pe o singur linie a fiierului
text BAC.TXT, separate prin cte un spaiu.
Exemplu: pentru n=5 i a=(2,3,4,7,5) fiierul ar putea avea coninutul:
7 5 3 4 2. (10p.)

Varianta 9 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 010

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este valoarea expresiei C/C++ alturate? (4p.) 9/2*2-5
a. 3 b. 4
c. -3 d. -3.75

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod
S-a notat cu [c] partea ntreag a numrului real c,
iar cu a%b restul mpririi numrului ntreg a la
numrul ntreg nenul b.
a) Scriei valoarea care se afieaz, n urma
executrii algoritmului, dac se citete pentru
n valoarea 23456 i pentru k valoarea 3. (4p.)
b) Scriei dou seturi distincte de date de intrare,
astfel nct, pentru fiecare dintre ele, n urma
executrii algoritmului, s se afieze valoarea
234. (6p.)
c) Scriei n pseudocod un algoritm echivalent cu
cel dat n care s se nlocuiasc structura ct
timp ... execut cu o structur repetitiv cu
test final. (6p.)
citete n,k
(numere naturale nenule)
nr0
p1
ct timp n0 i k0 execut
dac n%20 atunci
nrnr + [n/10]%10*p
pp*10
altfel
kk-1

n[n/10]

scrie nr

d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 010

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considernd declararea alturat, care dintre urmtoarele secvene de
instruciuni afieaz valorile memorate n cele dou cmpuri ale
variabilei x, separate printr-un spaiu? (4p.)
struct {
int a, b;
} x;
a. cout <<x.a<< <<x.b; | printf(%d %d, x.a,x.b);
b. cout<<a.x<< <<b.x; | printf(%d %d, a.x,b.x);
c. cout<<x; | printf(%d, x);
d. cout<<a->x<< <<b->x; | printf(%d %d, a->x,b->x);
2. Se consider declarrile de mai jos:
char s[]=abbacdde;
int i;
Ce ir reine variabila s dup executarea secvenei de
instruciuni alturate? (4p.)
i=0;
while (i<strlen(s)-1)
if (s[i]==s[i+1])
{ strcpy(s+i,s+i+2);
if (i>0) i=i-1;
}
else i=i+1;
a. aace b. ace c. ce d. acde

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este gradul maxim pe care l poate avea un nod al unui graf neorientat cu 6 muchii i
6 noduri dintre care exact dou au gradul 0? Care este reprezentarea prin liste de
adiacen pentru un astfel de graf? (6p.)
4. Se consider graful neorientat cu 80 de noduri i 3160 muchii. Care este numrul de muchii
ce pot fi eliminate astfel nct graful parial obinut s devin arbore? (6p.)
5. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i p
(2n15, 1p15) i construiete n memorie un tablou bidimensional cu n linii i p
coloane. Tabloul va fi construit astfel nct parcurgnd matricea de la prima linie ctre ultima
i fiecare linie de la stnga la dreapta s se obin irul primelor n*p ptrate perfecte pare
ordonat strict cresctor. Tabloul astfel construit va fi afiat pe ecran, fiecare linie a tabloului
pe cte o linie a ecranului, cu cte un spaiu ntre elementele fiecrei linii.

Exemplu: pentru n=2, p=3 programul va afia
tabloul alturat: (10p.)
0 4 16
36 64 100

Varianta 10 - informatica
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
Subiectul III (30 de puncte) - Varianta 010

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul cu definiia
alturat. Ce valoare are f(3,1)? (4p.)
int f(int n,int y)
{ if(n!=0)
{ y=y+1;
return y+f(n-1,y);
}
else return 0;
}
a. 8 b. 9 c. 7 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Folosind metoda bactracking un elev a scris un program care genereaz toate numerele de
cte n cifre (0<n9), cifrele fiind n ordine strict cresctoare. Dac n este egal cu 5, scriei
toate numerele generate de program care au prima cifr 4. (6p.)
3. Scriei un program C/C++ care citete de la tastatur un numr natural n (n100) i apoi
cele n elemente, numere naturale cu cel mult 4 cifre fiecare, ale unui tablou unidimensional
a. Programul determin i afieaz pe prima linie a ecranului suma celor n elemente ale
tabloului, pe a doua linie a ecranului suma primelor n-1 elemente i aa mai departe astfel
nct pe linia n-1 se va afia suma primelor dou elemente, iar pe linia n primul element al
tabloului.

Exemplu: dac n=4, iar tabloul are elementele a=(1,2,3,4) programul
va afia valorile alturate. (10p.)
10
6
3
1
4. Fiierul BAC.TXT conine pe prima linie un numr natural n (0<n1000000) i pe a doua
linie, separate prin cte un spaiu, n numere naturale nenule (cu cel mult 7 cifre fiecare)
ordonate cresctor.
a) Scriei un program C/C++ care citete toate numerele din fiier i, utiliznd un algoritm
eficient din punct de vedere al memoriei utilizate i al timpului de executare, determin
pentru fiecare numr citit de pe a doua linie a fiierului, cea mai mic valoare mai mare sau
egal cu acesta ce reprezint o putere a lui 2. Un numr natural x este putere a lui 2 dac
exist un numr natural k astfel nct x=2
k
.
Numerele astfel determinate vor fi scrise pe ecran, separate prin cte un spaiu.
Exemplu: dac fiierul are coninutul de mai jos
5
3 5 8 9 12
pe ecran se va afia:
4 8 8 16 16 (6p.)
b) Descriei succint, n limbaj natural, algoritmul pe baza cruia a fost scris programul de la
punctul a), explicnd n ce const eficiena metodei folosite. (4p.)

Varianta 10 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 011

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x i y sunt de tip ntreg, x memornd valoarea 8, iar y valoarea 6. Care dintre
expresiile C/C++ de mai jos are valoarea 0? (4p.)
a. 3*x-4*y==0 b. (x+y)/2 > x%y+1
c. !(x/2+2==y) d. x-y+3!=0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x
la numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valoarea care se va afia dac se
citete pentru n valoarea 296385, iar pentru k
valoarea 3. (6p.)
b) Dac se citete pentru k valoarea 4, scriei
cea mai mare valoare de 5 cifre care poate fi
citit pentru n astfel nct numrul afiat n
urma executrii algoritmului s fie 1. (4p.)
citete n,k (numere naturale)
p1
ct timp n>0 i k>0 execut
cn%10
dac c%2=1 atunci
pp*c

n[n/10]
kk-1

scrie p
c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu algoritmul dat, n care s se nlocuiasc
structura repetitiv ct timp...execut, cu o structur repetitiv
pentru...execut. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 011

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful orientat reprezentat prin matricea de
adiacen alturat. Care este lungimea maxim a unui drum de
la vrful 4 pn la vrful 6 format din vrfuri distincte dou cte
dou? (6p.)
0 1 1 0 0 0
0 0 0 0 1 1
0 0 0 0 0 0
0 0 1 0 1 0
1 1 0 0 0 1
1 0 1 0 0 0
a. 4 b. 3 c. 1 d. 5
2. Pentru a memora simultan numele i media la informatic a unui elev n variabila e, se
poate utiliza declararea: (4p.)
a. struct e{
string nume; float media;}
b. char e.nume[40];
float e.media;
c. float e; d. struct {char a[40]; float b;} e;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se afieaz pe ecran n
urma executrii secvenei de
program alturate, n care
variabila s memoreaz un ir cu
cel mult 12 caractere, iar
variabila i este de tip ntreg?
(6p.)

strcpy(s,abracadabra);
i=0;
cout<<strlen(s); | printf("%d",strlen(s));
while (i<strlen(s))
if (s[i]=='a')
strcpy(s+i,s+i+1);
else
i=i+1;
cout<<" "<<s; | printf(" %s",s);
4. Cte grafuri neorientate distincte, fr bucle, cu 4 vrfuri, se pot construi? Dou grafuri sunt
distincte dac matricele lor de adiacen difer. (4p.)
5. Scriei un program C/C++ care citete de la tastatur dou valori naturale nenule m i n
(m10, n10) i apoi m*n numere naturale nenule cu cel mult 4 cifre fiecare, reprezentnd
elementele unei matrice cu m linii i n coloane. Programul determin apoi valorile minime de
pe fiecare linie a matricei i le afieaz pe o linie a ecranului separate prin cte un spaiu.
Exemplu: pentru m=3, n=5 i matricea

3 2 7 13 5
10 9 12 6 9
7 4 5 6 3
, se afieaz pe ecran valorile
3 6 2 (cea mai mic valoare de pe prima linie a matricei este 3, cea mai mic valoare de pe
linia a doua este 6, cea mai mic valoare de pe linia a treia este 2). (10p.)

Varianta 11 - informatica
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
Subiectul III (30 de puncte) - Varianta 011

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un algoritm de tip backtracking genereaz, n ordine lexicografic, toate irurile de 5 cifre 0
i 1 cu proprietatea c nu exist mai mult de dou cifre 0 pe poziii consecutive. Primele 7
soluii generate sunt: 00100, 00101, 00110, 00111, 01001, 01010, 01011. Care este a
8-a soluie generat de acest algoritm? (4p.)
a. 01110 b. 01100 c. 01011 d. 01101

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru funcia f, definit alturat, care este
valoarea f(1711)? Dar f(23169)? (6p.)
int f(int n){
if (n==0) return 0;
else
if (n%2==0)
return n%10+f(n/10);
else return f(n/10);
}
3. a) Scriei definiia complet a unui subprogram P cu 3 parametri, care primete prin
intermediul primului parametru, a, un tablou unidimensional de cel mult 100 de numere
ntregi, prin intermediul celui de al doilea parametru, k, un numr natural (k<101) i
furnizeaz prin intermediul celui de al treilea parametru al su, max, cea mai mare dintre
valorile a
1
, a
2
,..., a
k
din tablou.
Exemplu: pentru k=5 i tabloul a=(7,3,8,4,6,9), n urma apelului valoarea variabilei
max este 8. (4p.)
b) S se scrie un program C/C++ care citete de la tastatur un numr natural n (n<101),
apoi n numere ntregi, avnd maximum 4 cifre fiecare i construiete n memorie i afieaz
apoi pe ecran un tablou unidimensional de n numere ntregi, cu proprietatea c valoarea
termenului de pe poziia i (i=1,2,,n) din acest tablou este egal cu cea mai mare dintre
primele i valori din irul dat. Se vor folosi apeluri utile ale subprogramului P.
Exemplu: dac se citesc de la tastatur n=12 i valorile 4 6 3 7 8 1 6 2 7 9 10 8
se va afia pe ecran tabloul 4 6 6 7 8 8 8 8 8 9 10 10. (6p.)
4. Fiierul BAC.TXT conine pe prima linie un numr natural n (0<n1000) i pe a doua linie,
separate prin cte un spaiu, n numere naturale nenule (cu cel mult 9 cifre fiecare).
Scriei un program C/C++ care citete toate numerele din fiier i afieaz pe ecran cte
numere prime conine irul citit de pe a doua linie a fiierului.
Exemplu: dac fiierul are coninutul
5
12 3 9 7 1
se va afia pe ecran valoarea 2 (n irul dat exist dou numere prime i anume 3 i 7).(10p.)

Varianta 11 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 012

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac variabilele x i
y memoreaz dou numere naturale pare consecutive? (4p.)
a. (x-y==2) && (y-x==2) b. (x==2) && (y==4)
c. x-y==2 d. ((x-y==2) || (y-x==2)) && (x%2==0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [c] partea ntreag a numrului real c.
a) Scriei valoarea care va fi afiat dac se citesc, n
aceast ordine, numerele 12, 7, 354, 9, 630, 0.
(6p.)
b) Scriei un ir de numere ce pot fi citite astfel nct
valoarea afiat s fie 321. (4p.)
citete x
(numr natural)
y0
ct timp x0 execut
ct timp x>9 execut
x[x/10]

yy*10+x
citete x

scrie y
c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc fiecare
dintre cele dou structuri ct timp...execut, cu cte o structur repetitiv cu test
final. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 012

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Un graf neorientat cu 6 noduri, numerotate de la 1 la 6,
este reprezentat prin matricea de adiacen alturat.
Care sunt vrfurile care au gradul maxim? (4p.)
0 1 1 0 1 1
1 0 1 0 0 1
1 1 0 1 1 0
0 0 1 0 1 0
1 0 1 1 0 0
1 1 0 0 0 0
a. 1 b. 3 c. 1, 3 d. 1, 3, 5
2. Pentru care dintre urmtorii arbori cu rdcin, fiecare avnd 9 noduri, numerotate de la 1
la 9, memorai cu ajutorul vectorilor de tai, nodul 3 are cei mai muli descendeni? (4p.)
a. tata=(2,0,2,3,2,3,4,4,3) b. tata=(3,3,4,0,2,3,4,4,4)
c. tata=(4,2,4,0,3,3,3,3,3) d. tata=(0,1,1,3,4,3,4,4,3)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. O variabil e este folosit pentru a memora simultan numele i prenumele unui elev precum
i cele trei note obinute de acesta la un concurs de atletism. tiind c notele sunt numere
ntregi cu maximum dou cifre, numele este un ir cu maximum 20 de caractere, prenumele
este un ir cu maximum 30 de caractere iar punctajul total al elevului se calculeaz folosind
atribuirea:
total=e.nota1+e.nota2+e.nota3;
scriei declararea variabilei e. (6p.)
4. Scriei ce se afieaz pe ecran n urma
executrii secvenei de program alturate,
n care variabila s memoreaz un ir cu cel
mult 12 caractere, iar variabila i este de
tip ntreg. (6p.)


char s[13]="informatica";
cout<<strlen(s);
| printf("%d",strlen(s));
for (i=0;i<strlen(s);i++)
if (s[i]=='a' || s[i]=='e' ||
s[i]=='i' || s[i]=='o' ||
s[i]=='u')
s[i]= s[i]+1;
cout<<" "<<s; | printf(" %s",s);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<25) i apoi
construiete n memorie o matrice cu n linii i n coloane, numerotate de la 1 la n, ale crei
elemente primesc valori dup cum urmeaz: elementul din linia i i coloana j primete ca
valoare ultima cifr a produsului i*j (1in i 1jn).
5.
Programul va afia matricea astfel construit pe ecran, cte o linie a
matricei pe o linie a ecranului, elementele fiecrei linii fiind separate prin
cte un spaiu.
Exemplu: pentru n=4 se va afia matricea alturat. (10p.)
1 2 3 4
2 4 6 8
3 6 9 2
4 8 2 6

Varianta 12 - informatica
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
Subiectul III (30 de puncte) - Varianta 012

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider subprogramul P, definit alturat.
tiind c valoarea variabilei ntregi a este nainte
de apel 4, care este valoarea ei dup apelul P(a)?
(4p.)
void P(int &x)
{ x=x+5; }
a. 10 b. 4 c. 9 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru a scrie valoarea 10 ca sum de numere prime se folosete metoda backtracking i
se genereaz, n aceast ordine, sumele distincte: 2+2+2+2+2, 2+2+3+3, 2+3+5, 3+7,
5+5. Folosind exact aceeai metod, se scrie valoarea 9 ca sum de numere prime. Care
sunt primele trei soluii, n ordinea generrii lor? (6p.)
3. Fiierul BAC.TXT conine pe prima linie dou valori naturale, m i n (m100, n100), pe a
doua linie un ir de m numere ntregi, iar pe a treia linie un ir de n numere ntregi. Fiecare
dintre aceste iruri sunt ordonate strict cresctor, iar elementele lor au cel mult 9 cifre
fiecare. Numerele de pe acelai rnd sunt separate prin cte un spaiu.
Se cere s se afieze pe ecran cte dintre elementele celui de al doilea ir nu se regsesc
i n primul ir.

Exemplu: dac fiierul are coninutul
6 7
1 2 3 4 7 20
3 5 7 8 9 20 24
se va afia valoarea 4 (numerele care respect condiia sunt 5 8 9 24).
a) Descriei un algoritm de rezolvare a acestei probleme, eficient din punct de vedere al
timpului de executare, explicnd n ce const eficiena acestuia. (4p.)
b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)
4. Se consider subprogramul nr cu doi parametri, care primete prin parametrul n un numr
natural cu maximum 8 cifre, i prin parametrul c o cifr zecimal. Subprogramul va returna
numrul de apariii ale cifrei c n scrierea numrului n.
Exemplu: dac n=15356, iar c=5, subprogramul va returna valoarea 2.
a) Scriei doar antetul subprogramului nr. (3p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n, cu cel mult 8 cifre,
i afieaz pe ecran numrul de cifre distincte ale numrului n. Se vor folosi apeluri utile ale
funciei nr.
Exemplu: pentru n=15356 se va afia valoarea 4 deoarece numrul conine 4 cifre distincte
i anume 1, 3, 5 i 6. (7p.)

Varianta 12 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 013

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile C/C++ de mai jos este echivalent cu
expresia alturat? (4p.)
!((a<5)&&(b>7))
a. (a>=5)&&(b<=7) b. !(a<5) || !(b>7)
c. !(a<5) && !(b>7) d. !(a>=5) && !(b<=7)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei numrul ce se va afia dac pentru a se
citete valoarea 404, iar pentru b se citete valoarea
413. (6p.)
b) Dac pentru variabila a se citete valoarea 58
scriei toate valorile care, citite pentru variabila b,
determin afiarea numrului 3. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu
algoritmul dat n care s se nlocuiasc structura
repetitiv pentru...execut cu o structur
repetitiv de un alt tip. (6p.)
citete a,b
(numere naturale, ab)
k0
pentru ia,b execut
ni; c0
ct timp n>0 execut
dac n%2=1 atunci
cc+1

n[n/10]

dac c>0 atunci
kk+1


scrie k

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 013

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este vectorul "de tai" pentru arborele cu rdcin
din figura alturat? (6p.)

a. 0 0 5 7 6 5 1 b. 1 0 0 7 6 5 0
c. 7 4 5 0 4 5 4 d. 7 4 5 0 4 5 7
2. Cte grafuri neorientate distincte, cu 5 noduri, numerotate de la 1 la 5, se pot construi,
astfel nct nodul 1 s aib gradul 1? Dou grafuri sunt distincte dac matricele lor de
adiacen sunt diferite. (4p.)
a. 32 b. 256 c. 15 d. 24

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Pentru a memora denumirea unui medicament i preul acestuia se folosete variabila m.
Scriei declararea variabilei m tiind c denumirea medicamentului este un ir cu maximum
30 de caractere, preul acestuia este un numr real, iar majorarea cu 10% a preului se face
folosind urmtoarea atribuire:
m.pret=m.pret*1.1; (4p.)
4. Scriei ce se afieaz pe ecran n urma
executrii secvenei de program alturate,
n care variabila s memoreaz un ir de cel
mult 12 caractere, iar variabila i este de tip
ntreg.
(6p.)

char s[13]="abcdefghoid";
i=0;
cout<<strlen(s);
| printf("%d",strlen(s));
while (i<strlen(s))
if (s[i]=='a' || s[i]=='e' ||
s[i]=='i' || s[i]=='o' ||
s[i]=='u')
strcpy(s+i,s+i+1);
else i++;
cout<<" "<<s; | printf(" %s",s);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<40) i apoi
construiete n memorie o matrice cu n linii i n coloane, numerotare de la 1 la n, ale crei
elemente primesc valori dup cum urmeaz:
- elementele aflate pe diagonala secundar sunt toate nule;
- elementele aflate deasupra diagonalei secundare sunt toate 1;
- elementele aflate sub diagonala secundar sunt toate 2.
5.
Programul afieaz pe ecran matricea construit, cte o linie a matricei pe
cte o linie a ecranului, elementele fiecrei linii fiind separate prin cte un
spaiu.
Exemplu: pentru n=4 se va afia matricea alturat. (10p.)
1 1 1 0
1 1 0 2
1 0 2 2
0 2 2 2

Varianta 13 - informatica
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
Subiectul III (30 de puncte) - Varianta 013

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Fie subprogramul fct definit alturat. Se tie c a, b i c sunt
variabile ntregi. Iniial a=8, b=31 i c=9, iar dup apelul
fct(a,b,c), valorile celor trei variabile sunt a=9, b=31 i c=39.
Care poate fi antetul complet al subprogramului fct? (4p.)
void fct(....)
{ x=x+1;
y=y-1;
z=x+y;
}
a. void fct(int &x,int &y,int &z) b. void fct(int x,int &y,int &z)
c. void fct(int x,int y,int z) d. void fct(int &x,int y,int &z)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Trei biei, Alin, Bogdan i Ciprian, i trei fete, Delia, Elena i Felicia, trebuie s
formeze o echip de trei copii, care s participe la un concurs. Echipa trebuie s fie mixt
(adic s conin cel puin o fat i cel puin un biat). Ordinea copiilor n echip este
important deoarece aceasta va fi ordinea de intrare a copiilor n concurs (de exemplu
echipa Alin, Bogdan, Delia este diferit de echipa Bogdan, Alin, Delia). Cte echipe
se pot forma, astfel nct din ele s fac parte simultan Alin i Bogdan? Dai exemplu de o
echip corect format din care s nu fac parte nici Alin i nici Bogdan. (6p.)
3. Scriei un program C/C++, care citete de la tastatur un numr natural n (n1000) i
afieaz pe ecran, separai prin cte un spaiu, primii n termeni ai irului:
1, 2,1, 3,2,1, 4,3,2,1, ...
construit astfel: prima grup este format din numrul 1, a doua grup este format din
numerele 2 i 1, etc. Grupa a k-a, este format din numerele k, k-1,..., 1.
Exemplu: pentru n=8 se vor afia valorile 1 2 1 3 2 1 4 3. (6p.)
4. Se consider subprogramul P care primete ca parametri un numr natural n cu maximum 9
cifre i o cifr c i care va returna numrul obinut din n dup eliminarea tuturor apariiilor
cifrei c.
a) Scriei doar antetul subprogramului P. (4p.)
b) Pe prima linie a fiierului text BAC.IN se gsesc, separate prin cte un spaiu, mai multe
numere naturale de cel mult 9 cifre fiecare. Scriei un program C/C++ care citete numerele
din acest fiier, elimin toate cifrele impare din fiecare dintre aceste numere i apoi scrie n
fiierul text BAC.OUT numerele astfel obinute, separate prin cte un spaiu. Se vor folosi
apeluri utile ale subprogramului P. Dac un numr din fiierul BAC.IN nu conine nicio cifr
par nenul, acesta nu va mai aprea deloc n fiierul de ieire. (10p.)
Exemplu: dac fiierul BAC.IN conine numerele 25 7 38 130 45127 0 35 60 15,
atunci BAC.OUT va avea coninutul: 2 8 42 60.

Varianta 13 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 014

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Pentru care dintre perechile de valori
de mai jos expresia C/C++ alturat
are valoarea 1? (4p.)
(a%100==b%100) && (a>99) || (b>99)
a. a=1003 i b=3 b. a=35 i b=35
c. a=1100 i b=10 d. a=1234 i b=12

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valoarea ce se va afia dac se citesc, n
aceast ordine, numerele 12, 7, 354, 9, 1630, 0. (6p.)
b) Scriei un set de date de intrare format din numere
pare, care s determine, n urma executrii
algoritmului, afiarea valorii 751. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc fiecare structur ct
timp...execut, cu cte o structur repetitiv cu
test final. (6p.)
citete x
(numr natural)
n0
ct timp x0 execut
yx; c0
ct timp y>0 execut
dac y%10>c atunci
cy%10

y[y/10]

nn*10+c
citete x

scrie n

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 014

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf neorientat cu 5 noduri, etichetate cu literele a, b, c, d, e, n care orice
nod etichetat cu o vocal este adiacent cu toate nodurile etichetate cu consoane i numai
cu acestea, iar orice nod etichetat cu o consoan este adiacent numai cu nodurile
etichetate cu vocale. Cte muchii are acest graf? (4p.)
a. 12 b. 6 c. 4 d. 3
2. ntr-o stiv au fost introduse, n aceast ordine, valorile 10, 5, 4, ca n
figura alturat. Dac se noteaz cu PUSH(x) operaia prin care se
adaug valoarea x n vrful stivei, i cu POP operaia prin care se
extrage elementul din vrful stivei, care este coninutul stivei dup
executarea urmtoarelor operaii?
POP; PUSH(7); POP; POP; PUSH(9); (6p.)

a.

b.

c.

d.


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se afieaz pe ecran n
urma executrii secvenei de
program alturate, n care
variabila s memoreaz un ir
cu cel mult 10 caractere, iar
variabilele i, j i k sunt de
tip ntreg? (4p.)

char s[11]="abcduecda";
cout<<strlen(s); | printf(%d, strlen(s));
i=0; j=strlen(s)-1;
k=0;
while (i<j)
{ if (s[i]==s[j])
k=k+1;
i=i+1; j=j-1;
}
cout<<" "<<k; | printf(" %d",k);
4. Care sunt etichetele nodurilor de tip frunz ale arborelui cu rdcin, avnd 7 noduri,
numerotate de la 1 la 7, i urmtorul vector de tai: (5,1,5,1,0,7,5)? (6p.)
Scriei un program C/C++ care citete de la tastatur un numr natural nenul cu exact 4
cifre, construiete n memorie i afieaz apoi pe ecran o matrice avnd 4 linii i 4 coloane,
completat astfel: elementele de pe prima coloan a matricei vor fi toate egale cu cifra
unitilor numrului dat, elementele de pe a doua coloan a matricei vor fi toate egale cu
cifra zecilor numrului dat, elementele de pe a treia coloan a matricei vor fi toate egale cu
cifra sutelor numrului dat, iar elementele de pe a patra coloan a matricei vor fi toate egale
cu cifra miilor numrului dat.
5.
Matricea va fi afiat pe ecran, cte o linie a matricei pe cte o linie a
ecranului, iar elementele fiecrei linii vor fi separate prin cte un spaiu.
Exemplu: dac se citete numrul 1359, matricea construit va fi cea
alturat. (10p.)



Varianta 14 - informatica
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
Subiectul III (30 de puncte) - Varianta 014

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Utiliznd metoda backtracking se genereaz permutrile cuvntului info. Dac primele trei
soluii generate sunt: fino, fion, fnio care este cea de-a cincea soluie? (4p.)
a.
foin
b.
fnoi
c.
foni
d.
ifon

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce valoare are f(4063) pentru funcia f,
definit alturat? (6p.)
long f(long n)
{ if (n==0) return 1;
else
if (n%10==0)
return f(n/10);
else
return (n%10) * f(n/10);
}
3. Fiierul text BAC.TXT conine mai multe numere naturale cu cel mult 6 cifre fiecare, cte un
numr pe fiecare linie a fiierului.

Scriei un program C/C++ care afieaz pe ecran toate numerele din fiier, n aceeai
ordine, cte cinci numere pe fiecare linie, separate prin cte un spaiu, cu excepia
ultimei linii care poate conine mai puin de cinci numere.
Exemplu: dac fiierul are coninutul alturat, pe ecran se afieaz:

11 21 30 40 51
16 17 10 1 (6p.)
11
21
30
40
51
16
17
10
1
4. Se consider subprogramul prim care primete ca parametru un numr natural n
(n32000) i care returneaz 1 dac n este numr prim i respectiv 0 n caz contrar.
a) Scriei definiia complet a subprogramului prim. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural nenul n (n<30) i
n numere naturale cu cel mult 4 cifre fiecare, apoi le afieaz pe ecran, numai pe acelea
dintre ele care sunt prime. Numerele vor fi afiate n ordine cresctoare, separate prin cte
un spaiu. Programul va utiliza apeluri utile ale subprogramului prim.
Exemplu: pentru n=7 i numerele 3 16 41 4 2 7 12, se vor afia, n aceast ordine,
numerele: 2 3 7 41. (10p.)

Varianta 14 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 015

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x i y sunt de tip ntreg, x memornd valoarea 4, iar y valoarea 2. Care dintre
expresiile C/C++ de mai jos are valoarea 0? (4p.)
a. x-y!=0 b. x+y>x%y+1 c. x-2*y==0 d. !(x==2*y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea care se afieaz dac pentru a se
citete valoarea 25, iar pentru n se citete valoarea 6.
(6p.)
b) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete a,n
(numere naturale)
pentru i1,n execut
dac i%2=0 atunci
aa-i*i
altfel
aa+i*i


scrie a
c) Dac pentru variabila a se citete valoarea 18, scriei valoarea care trebuie citit pentru
variabila n, astfel nct s se afieze numrul 8. (6p.)
d) Dac se citete pentru a valoarea 0, cu ce instruciune de atribuire trebuie nlocuit
atribuirea aa-i*i n algoritmul dat, astfel nct algoritmul obinut s afieze valoarea
expresiei n
2
dac numrul citit pentru n este impar i respectiv 0 dac numrul citit
pentru n este par. (4p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 015

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Ci frai are nodul 1 din arborele cu rdcin cu 7 noduri, numerotate de la 1 la 7, avnd
urmtorul vector de tai: (5,1,5,1,0,7,5)? (6p.)
a. 0 b. 1 c. 2 d. 3
2. Stiva este o structur de date care poate fi descris astfel: (4p.)
a. oricare element poate fi extras b. ultimul element introdus n stiv este
ultimul care poate fi extras
c. primul element introdus n stiv este
primul care poate fi extras
d. primul element introdus n stiv este
ultimul care poate fi extras

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se afieaz pe ecran n urma
executrii secvenei de program
alturate, n care variabila s
memoreaz un ir cu cel mult 10
caractere, iar variabila i este de
tip ntreg? (4p.)

i=0; char s[11]="abaemeiut";
cout<<strlen(s); | printf("%d",strlen(s));
while (i<strlen(s))
if (s[i]=='a' || s[i]=='e' ||
s[i]=='i' || s[i]=='o' ||
s[i]=='u)
{ strcpy(s+i,s+i+1); i=i+1; }
else
i=i+2;
cout<<" "<<s; | printf(" %s",s);
4. Se consider graful neorientat cu 8 noduri, numerotate de la 1 la 8, i muchiile [1,2],
[1,6], [1,7], [2,3], [2,6], [3,6], [3,4], [4,5], [4,8], [5,6], [7,8]. Care este
gradul minim al unui nod din acest graf? Care sunt nodurile care au acest grad minim? (6p.)
Scriei un program C/C++ care citete de la tastatur un numr natural cu exact 5 cifre i
construiete n memorie o matrice cu 5 linii i 5 coloane, numerotate de la 1 la 5, format
astfel:
- elementele de pe linia 1, au toate valoarea egal cu cifra unitilor numrului citit;
- elementele de pe linia 2, au toate valoarea egal cu cifra zecilor numrului citit;
- elementele de pe linia 3, au toate valoarea egal cu cifra sutelor;
- elementele de pe linia 4, au toate valoarea egal cu cifra miilor;
- elementele de pe linia 5, au toate valoarea egal cu cifra zecilor de mii.
5.
Programul afieaz pe ecran matricea astfel construit, cte o linie a
matricei pe cte o linie a ecranului, elementele de pe aceeai linie fiind
separate prin cte un spaiu.
Exemplu: dac se citete numrul 28731 matricea construit va fi cea
alturat. (10p.)
1 1 1 1 1
3 3 3 3 3
7 7 7 7 7
8 8 8 8 8
2 2 2 2 2

Varianta 15 - informatica
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
Subiectul III (30 de puncte) - Varianta 015

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Cte numere de trei cifre pot fi construite folosind doar cifre pare, astfel nct suma
cifrelor pentru fiecare dintre acestea s fie cel puin 20? (4p.)
a. 10 b. 4 c. 2 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Care este valoarea lui
f(34) pentru funcia f
definit alturat?
Dar valoarea f(f(4))?
(6p.)

long f(long x) {
if (x==4) return x;
else
{ if (x%10==4 || x%10==0) return x+f(x/10);
else return x+f(x*2);
}
}
3. Scriei definiia complet a subprogramului cinci care primete ca parametru un numr
natural nenul n (n<=20) i un tablou unidimensional v cu n elemente numere naturale,
fiecare avnd cel mult 9 cifre i returneaz o valoare reprezentnd numrul apariiilor cifrei 5
n scrierea tuturor numerelor din tablou.
Exemplu: dac n=6, iar v=(12, 5, 6535, 1, 86, 573), subprogramul va returna
valoarea 4. (10p.)
4. n fiierul text BAC.IN se gsesc, pe o singur linie, separate prin cte un spaiu, mai multe
numere naturale de cel mult 6 cifre fiecare. Se cere s se determine i s se afieze pe
ecran ultimul numr impar din fiierul BAC.IN. Dac n fiier nu exist niciun numr impar
se va scrie pe ecran mesajul Nu exist numere impare.
Exemplu: dac fiierul BAC.IN conine valorile: 12 6 25 68 13 8 24 31 42 se va
afia 31.
a) Descriei n limbaj natural un algoritm eficient, din punct de vedere al spaiului de
memorie i al timpului de executare, pentru rezolvarea acestei probleme, explicnd n ce
const eficiena acestuia. (4p.)
b) Scriei programul C/C++ corespunztor algoritmului descris. (6p.)

Varianta 15 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic

EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 016

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele instruciuni C/C++ determin inserarea cifrei 7 n faa ultimei cifre a
unui numr natural, cu mai mult de 2 cifre, memorat n variabila x? (4p.)
a. x=(x/10*10+7)*10+x%10; b. x=x/10+7+x%10;
c. x=(x%10*10+7)*10+x/10; d. x=(x/10+7)*10+x%10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu cu x%y restul mpririi numrului natural x la
numrul natural, nenul, y.
a) Scriei caracterele care se vor afia n urma
executrii algoritmului dac se citete valoarea 4.
(6p.)
b) Scriei o valoare care poate fi citit pentru variabila
n, astfel nct caracterul * s fie afiat de exact 66
de ori. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat, n care s se nlocuiasc fiecare structur
repetitiv pentru...execut cu cte o structur
repetitiv ct timp...execut. (6p.)
citete n (numr natural nenul)
pentru i1,n-1 execut
dac i%2=0 atunci
scrie #

pentru ji+1,n execut
scrie *




Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 016

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Numrul de muchii ale unui graf neorientat cu 12 noduri, n care fiecare nod este adiacent
cu exact 11 noduri, este : (4p.)
a. 144 b. 66 c. 78 d. 11
2. Care dintre urmtoarele variante reprezint o declarare corect pentru o variabil x care
memoreaz simultan vrsta n ani mplinii i media la bacalaureat a unui elev? (4p.)
a. struct {float media;
int varsta;} x;
b. struct x {float media;
int varsta;};
c. float x.media;
int x.varsta;
d. struct elev {float x.media;
int x.varsta};

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-o stiv au fost introduse n aceast ordine, numerele 5, 7, 3, 8. Precizai numrul
minim de elemente care trebuie extrase din stiv pentru a fi siguri c s-a extras inclusiv
elementul cu valoarea 3 i care este elementul aflat n vrful stivei dup extragerea
acestui element? (6p.)
4. Ce va afia secvena
alturat, tiind c variabila a
memoreaz un ir cu cel mult
100 de caractere, iar
variabila i este de tip ntreg?
(6p.)
strcpy(a,clasa a-XII-a A);
cout<<a<<endl; | printf(%s\n,a);
for(i=0;i<strlen(a);i++)
if(a[i]>=a&&a[i]<=z)
cout<<a[i]; | printf(%s,a[i]);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<16),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, n care
elementele de pe cele dou diagonale sunt egale cu 4, iar restul elementelor sunt egale cu
3. Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe cte o linie a
ecranului cu cte un spaiu ntre elementele fiecrei linii.
5.
Exemplu: pentru n=5 se va afia matricea alturat. (10p.) 4 3 3 3 4
3 4 3 4 3
3 3 4 3 3
3 4 3 4 3
4 3 3 3 4

Varianta 16 - informatica
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
Subiectul III (30 de puncte) - Varianta 016

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Funcia F are definiia alturat. Ce valoare
are F(3)? (4p.)
int F(int n)
{ if(n==0 || n==1) return 1;
else
return 2*F(n-1)+2*F(n-2);
}
a. 1 b. 12 c. 6 d. 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Un algoritm genereaz n ordine cresctoare toate numerele de n cifre, folosind doar cifrele
3, 5 i 7. Dac pentru n=5, primele cinci soluii generate sunt 33333, 33335, 33337,
33353, 33355, precizai care sunt ultimele trei soluii generate, n ordinea generrii. (6p.)
3. Scriei programul C/C++ care citete de la tastatur elementele unui tablou unidimensional
cu exact 10 numere naturale, mai mici dect 1000, determin i afieaz pe ecran,
separate prin cte un spaiu, numrul de elemente din ir care sunt multipli ai numrului 13
i, n continuare, poziiile pe care acestea se gsesc n ir. Elementele tabloului sunt
numerotate de la 1 la 10.
Exemplu: dac irul citit este 2, 6, 26, 14, 130, 11, 8, 23, 39, 52, se vor afia numerele 4 3
5 9 10. (10p.)
4. Subprogramul cifrak are 2 parametri, n, prin care primete un numr natural cu maximum
9 cifre, i k, prin care primete un numr natural (k9). Subprogramul returneaz numrul
de cifre ale numrului n care sunt egale cu valoarea k.
Exemplu: dac n=233433, iar k=3, subprogramul va returna valoarea 4.
a) Scriei definiia complet a subprogramului cifrak. (4p.)
b) n fiierul numere.txt sunt memorate mai multe numere naturale (maximum 1000 de
numere cu maximum 9 cifre fiecare). Fiecare linie a fiierului conine cte un numr. Scriei
programul C/C++ care, folosind apeluri ale subprogramului cifrak, afieaz pe ecran,
separate prin cte un spaiu, toate numerele din fiier care conin exact trei cifre de 0.
Exemplu: dac fiierul numere.txt conine
260070
39008
70009
se vor afia, nu neaprat n aceast ordine, numerele 260070 70009. (6p.)

Varianta 16 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 017

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este valoarea pe care poate s o aib
iniial variabila ntreag x dac, la sfritul
executrii secvenei alturate, variabila
ntreag y are valoarea 2? (4p.)
y=0;
do
{ x=x/10;
y=y+1;
} while(x%100==0);
a. 300 b. 5000 c. 120 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
a) Scriei succesiunea de caractere pe care le va afia
algoritmul dac se citesc, n aceasta ordine, valorile 2,
respectiv 9. (6p.)
b) Scriei numrul de perechi de valori aparinnd
intervalului [1,20], care pot fi citite pentru variabilele x
i y, astfel nct rezultatul afiat s fie format din exact
12 caractere ? (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura repetitiv ct
timp...execut cu o structur repetitiv de alt tip.
(6p.)
citete x,y
(numere naturale)
dac x<y atunci
xx-y
yx+y
xy-x

ct timp xy execut
scrie A
xx-y
scrie B



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 017

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este gradul maxim posibil i care este gradul minim posibil pentru un nod dintr-un graf
cu n noduri, care este arbore? (4p.)
a. n-1 i 1 b. n i 1
c. n i 0 d. n-1 i 0
2. Care dintre urmtoarele variante reprezint o declarare corect pentru o variabil x care
memoreaz simultan codul de identificare al unui candidat la un examen, exprimat ca un
numr natural de cel mult 4 cifre i media obinut de acesta la examen, exprimat ca un
numr real? (4p.)
a. struct x { int cod;
float media;};
b. struct { int cod;
float media;} x;
c. int x.cod ;
float x.media;
d. struct candidat { int x.cod;
float x.media;};

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-o stiv au fost introduse, n aceast ordine, numerele 5, 7, 3, 8. Scriei care este
numrul minim de elemente care trebuie extrase din stiv pentru a fi siguri c s-a extras
inclusiv elementul cu valoarea 7 i care este numrul de elemente rmase n stiv dup
extragerea acestui element. (6p.)
4. Ce va afia secvena alturat de
program, tiind c variabila a
memoreaz un ir cu cel mult 100 de
caractere, iar variabila i este de tip
ntreg? (6p.)
strcpy(a,bacalaureat);
n=strlen(a);
cout<<n<<endl;| printf(%d\n,n);
cout<<a[0]<<*<<a[n-1];|
printf(%c*%c,a[0],a[n-1]);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, n care
fiecare element de pe diagonala secundar are valoarea n, fiecare element aflat deasupra
diagonalei secundare este mai mic cu o unitate dect vecinul aflat pe aceeai linie n
dreapta lui i fiecare element aflat sub diagonala secundar este mai mare cu o unitate
dect vecinul aflat pe aceeai linie n stnga lui.
5.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe
cte o linie a ecranului cu cte un spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat. (10p.)
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
4 5 6 7 8
5 6 7 8 9

Varianta 17 - informatica
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
Subiectul III (30 de puncte) - Varianta 017

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Subprogramul f are definiia
alturat. Ce se va afia n
urma apelului f(12345);?
(4p.)
void f(long n)
{if (n>9)
{cout<<n/100; | printf(%d,n/100);
f(n/10);
}
}
a. 1231210 b. 123121 c. 1234123121 d. 123

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Un algoritm genereaz n ordine descresctoare toate numerele de 5 cifre, fiecare dintre ele
avnd cifrele n ordine strict cresctoare. tiind c primele cinci soluii generate sunt 56789,
46789, 45789, 45689, 45679, precizai care sunt ultimele trei soluii generate, n ordinea
generrii. (6p.)
3. Subprogramului interval, cu doi parametri, care primete prin intermediul parametrilor:
- v un tablou unidimensional cu maximum 100 de numere naturale mai mici dect 1000;
-n un numr natural nenul mai mic sau egal cu 100 ce reprezint numrul efectiv de
componente ale tabloului primit prin intermediul parametrului v.
Subprogramul returneaz numrul componentelor tabloului primit prin intermediul
parametrului v care aparin intervalului nchis determinat de primul i respectiv ultimul
element al tabloului.
Exemplu: dac tabloul are 6 elemente i este de forma (12,27,6,8,9,2), subprogramul
va returna valoarea 5.
a) Scriei definiia complet a subprogramului interval. (10p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (2n100) i
apoi un ir de n numere naturale mai mici dect 1000 i care, folosind apeluri utile ale
subprogramului interval, verific dac primul i ultimul element al tabloului au cea mai
mic, respectiv cea mai mare valoare din irul citit i afieaz pe ecran, n caz afirmativ
mesajul DA, iar altfel mesajul NU.
Exemplu: pentru n=5 i pentru irul 6,16,8,18,20 se va afia pe ecran mesajul DA.
(4p.)
4. Pe prima linie a fiierului numere.txt sunt memorate cel mult 90 de numere ntregi cu cel
mult dou cifre fiecare, separate prin cte un spaiu. Scriei programul C/C++ care s
determine i s afieze pe ecran, media aritmetic a numerelor strict pozitive din fiier. Dac
fiierul nu conine numere strict pozitive se afieaz pe ecran mesajul NU EXISTA.
Exemplu: dac fiierul numere.txt conine numerele 6 -26 0 9 -7 se va afia
valoarea 7.5. (6p.)

Varianta 17 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 018

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele instruciuni C/C++ determin eliminarea cifrei din mijloc a unui
numr natural, cu exact 5 cifre, memorat n variabila x? (4p.)
a. x=x/1000*100+x%100; b. x=x%1000*100+x/100;
c. x=x/100*100+x%100; d. x=x/1000+x%100;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu a%b restul mpririi numrului natural a la
numrul natural, nenul, b i cu ab interschimbarea
valorilor reinute de variabilele a i b.
a) Scriei succesiunea de caractere care se vor afia n
urma executrii algoritmului dac se citesc, n acest
ordine, valorile 2 i 9. (6p.)
b) tiind c pentru variabila y se citete valoarea 79,
scriei dou valori distincte care pot fi citite pentru
variabila x, astfel nct s fie afiat de exact 40 de ori
caracterul *. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura repetitiv ct
timp...execut cu o structur repetitiv de alt tip.
(6p.)
citete x,y
(numere naturale)
dac x>y atunci
yx

dac x%2=0 atunci
xx+1

ct timp xy execut
xx+2
scrie *




Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 018

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Un arbore binar este un arbore cu rdcin n care fiecare nod are cel mult 2 descendeni
direci (fii), iar nlimea arborelui este reprezentat de numrul maxim de muchii ale unui
lan elementar ce unete rdcina cu un vrf terminal (frunz). Pentru un arbore binar cu
exact 8 noduri, precizai care este nlimea minim posibil? (4p.)
a. 4 b. 7 c. 3 d. 2
2. Care dintre urmtoarele variante reprezint o declarare corect pentru o variabil x care
memoreaz simultan coordonatele reale (abscisa i ordonata) ale unui punct n planul
xOy? (4p.)
a. struct punct {float ox,oy;} x; b. char x[2];
c. struct x {float ox,oy;}; d. float x;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care va fi valoarea elementului aflat n vrful unei stive iniial vid i care este numrul de
elemente rmase n stiv, dup efectuarea, n aceast ordine, a urmtoarelor operaii:
se introduce valoarea 3; se introduce valoarea 7; se introduce valoarea 5; se extrage un
element; se introduce valoarea 2; se introduce valoarea 4; se extrage un element. (6p.)
4. n secvena alturat, variabila a
memoreaz un ir cu cel mult 100 de
caractere, iar variabila i este de tip
ntreg.
Completai punctele de suspensie din
secven astfel nct aceasta s afieze
irul de caractere *nf*rm*t*c*. (6p.)
strcpy(a,informatica);
for(i=0;i<strlen(a);i++)
if(...)
cout<<...; | printf(...);
else
cout<<...; | printf(...);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate
de la 1 la n. Fiecare element din matrice aflat pe o linie impar va fi egal cu numrul liniei pe
care se afl i fiecare element aflat pe o linie par va fi egal cu numrul coloanei pe care se
afl.
5.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe
cte o linie a ecranului cu cte un spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat. (10p.)
1 1 1 1 1
1 2 3 4 5
3 3 3 3 3
1 2 3 4 5
5 5 5 5 5

Varianta 18 - informatica
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
Subiectul III (30 de puncte) - Varianta 018

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Funcia f are definiia alturat.
Ce se va afia n urma apelului
f(12345,0);?
(4p.)
void f(long n, int i)
{if (i<n%10)
{cout<<n%10; | printf(%d,n%10);
f(n/10,i+1);
}
}
a. 54321 b. 543 c. 54 d. 5432

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Un algoritm genereaz, n ordine lexicografic, toate irurile alctuite din cte n cifre binare
(0 i 1). tiind c pentru n=5, primele patru soluii generate sunt 00000, 00001, 00010,
00011, precizai care sunt ultimele trei soluii generate, n ordinea obinerii lor. (6p.)
3. Subprogramul count are doi parametri, v i n, prin care primete un tablou unidimensional
cu maximum 100 de numere reale i, respectiv, numrul de elemente din tablou.
Subprogramul returneaz numrul de elemente din tablou care sunt mai mari sau cel puin
egale cu media aritmetic a valorilor memorate n primul, respectiv ultimul element al
tabloului.
Exemplu: dac tabloul are 6 elemente i este de forma (12, 7.5, 6.5, 8.5, 7.5, 3),
subprogramul va returna valoarea 4 (media valorilor memorate n primul, respectiv ultimul
element al tabloului este 7.5 i sunt 4 elemente n tablou mai mari sau cel puin egale cu
7.5).
a) Scriei definiia complet a subprogramului count. (10p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (2n100) i
apoi un ir de n numere reale i care, folosind apeluri utile ale subprogramului count,
verific dac pe prima i pe ultima poziie din ir se afl cele mai mici dou valori (nu
neaprat distincte) ale acestuia. Programul va afia pe ecran mesajul DA n caz afirmativ i
NU n caz contrar. (4p.)
4. n fiierul numere.txt sunt memorate cel puin 4 i cel mult 90 de numere ntregi cu cel
mult patru cifre fiecare, separate prin cte un spaiu. Scriei un program C/C++ care
afieaz pe ecran patru numere aflate pe poziii consecutive n fiier, care sunt n ordine
strict cresctoare. Dac exist mai multe astfel de secvene programul afieaz una dintre
acestea, iar dac n fiier nu exist astfel de secvene se afieaz mesajul NU EXISTA.
Exemplu: dac fiierul numere.txt conine, n aceast ordine, numerele 60 12 15 25
110 45 25 se vor afia numerele 12 15 25 110. (6p.)

Varianta 18 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 019

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Cte atribuiri se execut, n total, n
secvena alturat, dac n i p sunt
variabile de tip ntreg? (4p.)
p=1; n=279;
while (n>=100)
{ p=p*10;
n=n-100;
}
a.
4
b. 6 c. 2 d. 8

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei numerele care se vor afia n urma
executrii algoritmului dac se citesc valorile
a=312 i b=1354. (6p.)
b) Scriei cte o valoare care poate fi citit pentru
variabila a, respectiv b, astfel nct algoritmul s
afieze exact 2 valori. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat, n care s se nlocuiasc structura
pentru...execut cu o structur repetitiv de
alt tip. (6p.)
citete a,b
(numere naturale)
a[a/10]%10*10+a%10
b[b/10]%10*10+b%10
pentru ia,b execut
dac[i/10]=i%10 atunci
scrie i%10




Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 019

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul de muchii care trebuie eliminate dintr-un graf neorientat, complet, cu 7
noduri, astfel nct graful parial obinut s fie arbore? (4p.)
a. 15 b. 1 c. 6 d. 21
2. Care dintre urmtoarele variante reprezint o declarare corect pentru o variabil x care
memoreaz simultan partea real i partea imaginar a unui numr complex? (4p.)
a. struct x {float im,re;}; b. char x[2];
c. struct complex{ float im, re;} x; d. float x;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce va afia secvena alturat de
program, tiind c variabila x
memoreaz un ir cu cel mult 100 de
caractere, iar variabila i este de tip
ntreg? (6p.)
strcpy(x,bac2008);
for(i=3;i<strlen(x);i++)
cout<<x[i]; | printf(%c,x[i]);
cout<<x<<endl; | printf(%s\n,x);
4. Care vor fi valorile primului i ultimului element extras dintr-o coad iniial vid, dac se
efectueaz urmtoarele operaii, n aceast ordine: se introduce valoarea 5; se introduce
valoarea 4; se extrage un element; se introduce valoarea 2; se introduce valoarea 7; se
extrage un element. (6p.)
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<20),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate
de la 1 la n, n care fiecare element aflat pe o coloana impar este egal cu suma dintre
numrul liniei i numrul coloanei pe care se afl i fiecare element aflat pe o coloan par
este egal cu numrul liniei pe care se afl.
5.
Elementele matricei vor fi afiate pe ecran, cte o linie a matricei pe
cte o linie a ecranului cu cte un spaiu ntre elementele fiecrei linii.
Exemplu: pentru n=5 se va afia matricea alturat. (10p.)
2 1 4 1 6
3 2 5 2 7
4 3 6 3 8
5 4 7 4 9
6 5 8 5 10

Varianta 19 - informatica
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
Subiectul III (30 de puncte) - Varianta 019

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Funcia F are definiia alturat. Ce valoare
are F(18)? (4p.)
int F(int x){
if (x<=1) return x;
else return x+F(x-2);
}
a. 90 b. 171 c. 91 d. 18

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Un algoritm genereaz n ordine cresctoare toate numerele de n cifre (n<9), cu cifre
distincte, care nu au dou cifre pare alturate. Dac pentru n=5, primele cinci soluii
generate sunt 10325, 10327, 10329, 10345, 10347, precizai care sunt urmtoarele trei
soluii generate, n ordinea obinerii lor. (6p.)
3. Subprogramul aranjare are doi parametri, a i n, prin care primete un tablou
unidimensional cu maximum 100 de numere reale nenule i, respectiv, numrul de
elemente din tablou. Subprogramul rearanjeaz elementele tabloului astfel nct toate
valorile negative s se afle pe primele poziii, iar valorile pozitive n continuarea celor
negative. Ordinea n cadrul secvenei de elemente pozitive, respectiv n cadrul secvenei de
elemente negative, poate fi oricare.
Exemplu: dac este transmis ca parametru un tablou unidimensional cu 6 elemente de forma
(12, -7.5, 6.5, -3, -8, 7.5), dup apel, acesta ar putea fi: (-7.5, -3, -8, 12,
6.5, 7.5).
a) Scriei definiia complet a subprogramului aranjare. (10p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (1n100) i
apoi un ir de n numere reale nenule i care, folosind apeluri utile ale subprogramului
aranjare, afieaz pe ecran, separate prin spaiu, mai nti elementele pozitive din ir i
apoi cele negative. Ordinea n cadrul secvenei de elemente pozitive, respectiv n cadrul
secvenei de elemente negative, poate fi oricare.
Exemplu: pentru n=5 i pentru irul 6,-16.3,8,-18,20.7 se poate afia pe ecran soluia
6 8 20.7 -18 -16.3 (4p.)
4. n fiierul numere.txt sunt memorate mai multe numere reale separate prin cte un
spaiu. Scriei un program C/C++ care verific dac printre numerele din fiier exist cel
puin 10 numere naturale. Programul afieaz pe ecran mesajul DA n caz afirmativ i NU n
caz contrar.
Exemplu: dac fiierul numere.txt conine numerele 60 -12.67 15 -1 -22.3 4 se
afieaz mesajul NU. (6p.)

Varianta 19 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 020

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este valoarea tiprit de secvena de
program C/C++ alturat, tiind c x i y
sunt variabile ntregi, iar z este o variabil
real? (4p.)
x=30;
y=5;
z=(x+y)/6.0;
z=floor(z*100);
z=z/100;
cout<<z; | printf(%0.2f,z);
a. 5 b. 5.833333 c. 5.83 d. 583

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valoarea pe care o va afia algoritmul dac se
citete numrul 16389. (6p.)
b) Scriei cea mai mic valoare de patru cifre distincte
care poate fi citit pentru variabila n, astfel nct s se
afieze valoarea 0. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de alt tip.
(6p.)
citete n (numr natural)
an%10
ma
ct timp n>9 execut
n[n/10]
bn%10
dac a>b atunci
mm*10+b
ab


scrie m

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 020

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Suma gradelor interne ale tuturor vrfurilor unui graf orientat este ntotdeauna egal cu:
(4p.)
a. numrul valorilor de 1 aflate sub
diagonala principal n matricea sa de
adiacen
b. produsul gradelor externe ale tuturor
vrfurilor grafului
c. suma tuturor valorilor aflate deasupra
diagonalei principale n matricea sa de
adiacen
d. suma gradelor externe ale tuturor
vrfurilor grafului
2. Care dintre urmtoarele variante reprezint o declarare corect pentru o variabil x care
memoreaz simultan numrtorul i numitorul unei fracii ireductibile: (4p.)
a. struct fractie{int n1,n2;} x; b. char x[2];
c. struct x{int n1,n2;}; d. float x;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care vor fi valorile primului i ultimului element ale unei cozi iniial vide, dac se
efectueaz urmtoarele operaii, n aceast ordine: se introduce valoarea 2; se introduce
valoarea 5; se extrage un element; se introduce valoarea 9; se introduce valoarea 7; se
extrage un element. (6p.)
4. n secvena alturat, variabila a memoreaz
un ir cu cel mult 100 de caractere, iar variabila
i este de tip ntreg. Completai punctele de
suspensie, astfel nct aceasta s afieze
caracterele irului memorat n variabila a, n
ordine invers celei n care se gsesc n ir.
(6p.)
strcpy(a,Bac 2008 iulie);
for(...)
cout<<a[i];
| printf(%c,a[i]);
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<10),
construiete n memorie i afieaz pe ecran o matrice cu n linii i n coloane, numerotate
de la 1 la n, n care fiecare element aflat pe prima linie sau pe prima coloan din matrice
este egal cu suma dintre numrul liniei i numrul coloanei pe care se afl, iar fiecare dintre
celelalte elemente este egal cu suma dintre elementul vecin aflat pe aceeai linie cu el, dar
pe coloana din stnga sa i elementul vecin aflat pe aceeai coloan cu el, dar pe linia de
deasupra sa.
5.
Elementele matricei vor fi afiate pe ecran, cte o linie a
matricei pe cte o linie a ecranului cu cte un spaiu ntre
elementele fiecrei linii.
Exemplu: pentru n=5 se va obine matricea alturat.
(10p.)
2 3 4 5 6
3 6 10 15 21
4 10 20 35 56
5 15 35 70 126
6 21 56 126 252

Varianta 20 - informatica
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
Subiectul III (30 de puncte) - Varianta 020

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Funcia F are definiia alturat. Ce valoare
are F(5)? (4p.)
int F(int x)
{if(x!=0) return x+F(x-1);
else
return x;}
a. 5 b. 10 c. 15 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Un algoritm genereaz n ordine descresctoare, toate numerele de n cifre (n<9), cu cifrele
n ordine strict cresctoare, care nu au dou cifre pare alturate. Dac pentru n=5, primele
cinci soluii generate sunt 56789, 45789, 45679, 45678, 36789, precizai care sunt
urmtoarele trei soluii generate, n ordinea obinerii lor. (6p.)
3. Subprogramul nule are doi parametri: a, prin care primete un tablou unidimensional cu
maximum 100 de numere ntregi, cu cel mult 4 cifre fiecare i n, numrul de elemente din
tablou. Subprogramul rearanjeaz elementele tabloului unidimensional astfel nct toate
valorile nule s se afle la sfritul tabloului. Ordinea n cadrul secvenei de elemente nenule
poate fi oricare. Tabloul modificat este furnizat tot prin parametrul a.
Exemplu: dac n=6, a=(12,0,0,-3,-8,0), dup apel, acesta ar putea fi:
a=(12,-3,-8,0,0,0).
a) Scriei definiia complet a subprogramului nule. (10p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (2n100) i
apoi un ir de n numere ntregi cu cel mult 4 cifre fiecare i care, folosind apeluri utile ale
subprogramului nule, verific dac irul conine cel puin cinci valori nenule, nu neaprat
distincte. n caz afirmativ programul afieaz cinci dintre acestea, iar altfel mesajul NU
EXISTA.
Exemplu: pentru n=11 i pentru irul 6,0,0,16,10,0, 8,-18,0,0,20 se poate afia
pe ecran soluia 6 16 10 8 -18. (4p.)
4. n fiierul numere.txt sunt memorate cel puin 4 i cel mult 90 de numere ntregi cu cel
mult patru cifre fiecare, separate prin cte un spaiu. Scriei un program C/C++ care
afieaz pe ecran patru numere aflate pe poziii consecutive n fiier, care sunt n ordine
strict descresctoare. Dac exist mai multe astfel de secvene programul afieaz una
dintre acestea, iar dac n fiier nu exist astfel de secvene se afieaz mesajul NU
EXISTA.
Exemplu: dac fiierul numere.txt conine, n aceast ordine, numerele 60 120 15 5
2 45 25 se vor afia numerele 120 15 5 2. (6p.)

Varianta 20 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 021

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile C/C++ de mai jos are
valoarea 1 dup executarea secvenei de
instruciuni C/C++ alturat, n care toate variabilele
sunt ntregi? (4p.)
v1=0; v2=0;
for(i=1;i<=3;i++)
{ for (j=1;j<=i;j++)
v1=v1+1;
for (k=i;k<=3;k++)
v2=v2+1;
}
a. v1>v2 b. v1<v2 c. v1==v2 d. v1+v2==9

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [z] partea ntreag a numrului real z
i cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y.
a) Scriei valorile care se vor afia dac se
citesc, n ordine, valorile 17, 6, 4. (6p.)
b) Scriei n pseudocod un algoritm echivalent
cu cel dat n care s se nlocuiasc structura
repet...pn cnd cu o structur
repetitiv de tip ct timp...execut.
(6p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei un set de date de intrare astfel nct,
la finalul executrii algoritmului, valorile
variabilelor n i i, s satisfac condiia:
n-i=2. (4p.)
citete a,b,n (numere naturale)
dac b=0 atunci
scrie greit
altfel
scrie [a/b]
dac n>0 i a%b 0 atunci
scrie ,
aa%b; i0
repet
scrie [(a*10)/b]
a(a*10)%b
ii+1
pn cnd i=n sau a=0




Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 021

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
n secvena de mai jos, variabila a memoreaz un tablou bidimensional cu 4 linii i 4 coloane,
numerotate de la 1 la 4, cu elementele reale. Variabila p este real, iar i este de tip ntreg.
1.
Care dintre instruciunile de mai jos poate nlocui
punctele de suspensie astfel nct secvena s
determine memorarea n variabila p a valorii produsului
celor 8 elemente aflate pe diagonalele matricei. (4p.)
p=1;
for(i=1;i<=4;i++)
....
a. p=p*a[5-i][i]*a[i][5-i]; b. p=p*a[i][i]*a[i][4-i];
c. p=p*a[i][i]*a[5-i][5-i]; d. p=p*a[5-i][5-i]*a[i][5-i];
2. ntr-un graf orientat cu 7 noduri suma gradelor interioare ale tuturor nodurilor este egal cu
10. Care este valoarea sumei gradelor exterioare ale tuturor nodurilor? (4p.)
a. 5 b. 20 c. 10 d. 17

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
Se consider declarrile de mai jos, n care variabila ev memoreaz date despre un anumit
elev. Scriei instruciunea C/C++ prin care se iniializeaz anul naterii acestui elev cu
valoarea 1990. (6p.)
3.
struct data{
int zi;
int luna;
int an;
};
struct elev {
char nume[30];
struct data data_nasterii;
float media;
}ev;
4. Stiva S i coada C memoreaz numere ntregi.n ambele se introduc, n ordine, numerele 1,
2, 3, 4. Se noteaz cu SC operaia de extragere a unui element din stiva S i adugarea
acestuia n coada C, iar cu CS operaia de eliminare a unui element din coada C i
introducerea acestuia n stiva S. Dup executarea urmtoarei secvene de operaii: CS;
CS; SC; CS; CS;
a) care este ultima valoare introdus n stiva stiva S? (3p.)
b) care este ultima valoare care a fost adugat n coada C? (3p.)
Se consider un text alctuit din cel mult 250 de caractere, n care cuvintele sunt formate doar
din litere mici ale alfabetului englez i sunt separate prin unul sau mai multe caractere *.
Scriei un program C/C++ care citete de la tastatur textul i afieaz pe ecran, pe cte o
linie, toate secvenele formate din cte dou litere identice, ca n exemplu.
5.
Exemplu: dac textul citit este: se afieaz
perechile alturate.
(10p.)
ii
ii
oo


Varianta 21 - informatica
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
Subiectul III (30 de puncte) - Varianta 021

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Urmtoarele probleme se refer la mulimea de numere reale M={x
1
, x
2
, , x
n
} (n>1000).
Care dintre acestea, comparativ cu celelalte, admite un algoritm care se ncheie dup un
numr minim de pai? (4p.)
a. sortarea elementelor mulimii M b. generarea elementelor produsului
cartezian M x M
c. determinarea elementului minim al
mulimii M
d. generarea tuturor permutrilor mulimii M

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul, f, definit alturat.
a) Ce valoare are f(20)?
b) Scriei o valoare pe care o poate avea x astfel
nct f(x)=1. (6p.)
int f(int n)
{ if (n==0) return 0;
return n%2+f(n/2);
}
3. Scriei definiia complet a unui subprogram i_prim care primete prin singurul su
parametru, n, un numr natural din intervalul [2,30000] i returneaz diferena minim
p2-p1 n care p1 i p2 sunt numere prime i p1np2.
Exemplu: dac n=20 atunci i_prim(20)=4, valoare obinut pentru p1=19 i p2=23.
(10p.)
Fiierul text BAC.TXT conine pe prima linie dou numere naturale, n i k, separate de un
spaiu (3n10000, 2kn/2), iar pe a doua linie un ir de n numere naturale, x
1
, x
2
, ..., x
n
,
separate prin cte un spaiu, fiecare numr din acest ir avnd cel mult patru cifre.
a) Scriei un program C/C++ care citete numerele din fiier i determin, utiliznd o metod
eficient din punct de vedere al timpului de executare, cel mai mic indice i (1in-k+1)
pentru care suma termenilor x
i
, x
i+1
, ..., x
i+k-1
este maxim. Programul afieaz valoarea lui
i pe ecran.
Exemplu: pentru fiirul alturat se afieaz 2, deoarece suma
maxim se obine pentru 9+4+7. (6p.)
8 3
2 9 4 7 5 2 9 9
4.
b) Explicai succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia. (4p.)

Varianta 21 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 022

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Care este valoarea expresiei C/C++ alturate dac
variabilele ntregi a, b, c au valorile a=20, b=3,
c=5? (4p.)
(a/b%c<=b)||!(b==a)
a. 0 b. 1 c. 2 d. true

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [a] partea ntreag a numrului real a i cu
y|x faptul c numrul ntreg x este divizibil cu numrul
ntreg nenul y.
a) Scriei valoarea care se va afia pentru n=45. (6p.)
b) Scriei n pseudocod un algoritm echivalent cu cel
dat n care s se nlocuiasc structura
pentru...execut cu o structur repetitiv de
tip ct timp...execut. (6p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete n (numr ntreg)
dac n < 0 atunci
n-n

d1
pentru i2,[n/2] execut
dac i|n atunci
di


scrie d
d) Scriei o valoare pentru n astfel nct n urma executrii algoritmului obinut prin nlocuirea
structurii
pentru i2,[n/2] execut
...

cu
pentru i[n/2],2,-1 execut
...

s se afieze aceeai valoare, ca n algoritmul iniial. (4p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 022

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. ntr-o stiv ce memoreaz numere ntregi se introduc, n ordine, urmtoarele numere:
1,2,3,4,5,6,7. Cte numere trebuie s eliminm din stiv astfel ca n vrful stivei s se
gseasc numrul 5? (4p.)
a. 5 b. 2 c. 3 d. 4
2. Pentru declararea alturat precizai care
dintre instruciunile de atribuire este greit:(4p.)
struct elev
{char nume[20];
int nota;} e1,e2;
a. e1=e2+1; b. e1.nume[2]=x;
c. e1=e2; d. e1.nota=e2.nota+1;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce valoare are expresia de mai jos dac variabila s memoreaz irul de caractere
alfabet, format numai din litere?
strlen(strcpy(s,s+2)) (6p.)
4. ntr-un graf neorientat cu 6 noduri, numerotate de la 1 la 6, exist cte o muchie ntre
oricare dou noduri numerotate cu numere consecutive i cte o muchie ntre nodul
numerotat cu 6 i fiecare dintre celelalte noduri. Cte subgrafuri cu exact 3 noduri, toate
adiacente dou cte dou, are graful dat? Scriei pentru fiecare dintre aceste subgrafuri
nodurile din care este format. (6p.)
Scriei un program C/C++ care citete de la tastatur numerele naturale m i n din
intervalul [1,20], apoi construiete n memorie i afieaz pe ecran un tablou
bidimensional cu m linii i n coloane astfel nct prin parcurgerea acestuia linie cu linie de
sus n jos i fiecare linie de la stnga la dreapta, se obin n ordine descresctoare toate
numerele naturale de la 1 la m*n, ca n exemplu.
5.
Fiecare linie a tabloului este afiat pe cte o linie a ecranului, elementele
aceleiai linii fiind separate prin cte un spaiu.
Exemplu: pentru m=4 i n=3 se va construi i afia tabloul alturat. (10p.)
12 11 10
9 8 7
6 5 4
3 2 1

Varianta 22 - informatica
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
Subiectul III (30 de puncte) - Varianta 022

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n timpul procesului de generare a permutrilor mulimii {1,2,,n} prin metoda
backtracking, n tabloul unidimensional x este plasat un element x
k
(2kn). Acesta este
considerat valid dac este ndeplinit condiia: (6p.)
a. x
k
{x
1
, x
2
, , x
k-1
} b. x
k
x
k-1

c. x
k
{x
1
, x
2
, , x
n
} d. x
k
x
k-1
i x
k
x
k+1


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Considerm subprogramul recursiv definit
alturat. Ce se va afia n urma apelului de
mai jos?
f(B); (4p.)
void f(char c)
{ if (c>A) f(c-1);
cout<<c; | printf(%c,c);
if (c>A) f(c-1);
}
3. a) Scriei definiia unui subprogram, nz, cu un parametru ntreg, n (0<n12), care
returneaz numrul zerourilor de la sfritul numrului n!. (6p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural k (0<k2) i
determin, folosind apeluri ale subprogramului nz, cel mai mic numr natural n pentru care
n! are cel puin k zerouri la sfrit. Numrul determinat se afieaz pe ecran. (4p.)
4. Scriei programul C/C++ care citete din fiierul text BAC.TXT numrul ntreg n
(1n10000) i un ir de n perechi de numere ntregi a b (1ab32000), fiecare pereche
fiind scris pe o linie nou a fiierului, cu un spaiu ntre cele dou numere. Programul
afieaz pe ecran pentru fiecare pereche a,b cel mai mare numr natural din intervalul
nchis [a,b] care este o putere a lui 2 sau numrul 0 dac nu exist nicio putere a lui 2 n
intervalul respectiv. Numerele afiate pe ecran se scriu n linie, separate prin cte un spaiu.
Un numr p este putere a lui 2 dac exist un numr natural k astfel nct p=2
k
.
Exemplu: dac fiierul BAC.TXT conine numerele
3
2 69
10 20
19 25
se va afia: 64 16 0. (10p.)

Varianta 22 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 023

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile C/C++ de mai jos este
echivalent cu cea alturat? (4p.)
!((a<=b && a>=c) || a<=d)
a. a<=b || a>=c && a<=d b. a>b || a<c && a>d
c. a>b || a<c || a>d d. (a>b || a<c) && a>d

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a numrului
real z.
a) Scriei valoarea care se va afia dac se citesc, n
ordine, valorile 24 i 36. (6p.)
b) Scriei dou valori care trebuie citite (una pentru
variabila a i una pentru variabila b) astfel nct, n
urma executrii algoritmului, s se afieze valoarea 0.
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura repet...pn cnd
cu o structur repetitiv cu test iniial. (6p.)
citete a,b
(numere naturale nenule)
c0
repet
ia%2
jb%2
dac i+j=0 atunci
cc+1

aa*i+(1-i)*[a/2]
bb*j+(1-j)*[b/2]
pn cnd i*j=1
scrie c

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 023

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care din urmtoarele expresii are valoarea 1 dac i numai dac irul de caractere s, de
lungime 10, este obinut prin concatenarea a dou iruri identice? (4p.)
a. strcmp(s,s+5)==0 b. s==strstr(s,s+5)
c. s==s+5 d. strcmp(s,strcat(s,s+5))==0
2. Funcia predefinit care returneaz modulul unui numr ntreg este: (4p.)
a. sgn b. fabs c. mod d. abs

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este lungimea maxim a unui lan elementar pentru un arbore cu rdcin, cu 7
noduri, numerotate de la 1 la 7, dat de vectorul de tai: (3,3,0,1,2,2,4)? Scriei
muchiile din care este alctuit un lan elementar de lungime maxim din acest arbore. (6p.)
4. Pentru declaraiile alturate care este
numrul maxim de numere ntregi ce pot fi
memorate n variabila a? (6p.)
struct punct2D {
int x; int y;};
struct punct2D a[10][10];
5. Un tablou bidimensional A cu m linii i n coloane (1m100, 1n100) conine pe prima
linie numerele 1,2,...,n, iar pe prima coloan numerele 1,2,...,m. Celelalte elemente
ale tabloului sunt date de relaia: A
i,j
=A
i-1,j
+A
i,j-1
. Scriei un program C/C++ care
citete de la tastatur numerele m i n i afieaz pe ecran ultima cifr a elementului de pe
ultima linie i ultima coloan a tabloului. (10p.)
Exemplu: pentru m=3 i n=4 se va afia 5 1 2 3 4
deoarece elementele tabloului A sunt: 2 4 7 11
3 7 14 25


Varianta 23 - informatica
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
Subiectul III (30 de puncte) - Varianta 023

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Algoritmul de generare a tuturor numerelor de 3 cifre, toate nenule, este echivalent cu
algoritmul de generare a: (6p.)
a. submulimilor unei mulimi cu 3 elemente b. combinrilor de 10 cifre luate cte 3
c. aranjamentelor de 9 elemente luate cte 3 d. produsului cartezian a 3 mulimi de cifre
nenule

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru subprogramul suma
definit alturat scriei valoarea
expresiei suma(3,2).
(4p.)
int suma (int a,int b)
{ if ((a==0) && (b==0)) return 0;
if (a==0) return 1+suma(a,b-1);
return 1+suma(a-1,b);
}
3. a) Scriei definiia complet a subprogramului shift care primete prin intermediul
parametrului n o valoare natural nenul (n100), iar prin intermediul parametrului x, un
tablou unidimensional cu maximum 100 de componente. Fiecare component a acestui
tablou este un numr ntreg care are cel mult 4 cifre. Subprogramul permut circular cu o
poziie spre stnga, primele n elemente ale tabloului x i furnizeaz tabloul modificat tot prin
parametrul x.
Exemplu: dac nainte de apel n=4 i x=(1,2,3,4), dup apel x=(2,3,4,1). (4p.)
b) Scriei un program C/C++ care citete de la tastatur o valoare natural nenul n
(n100), apoi cele n elemente ale unui tablou unidimensional x. Programul va inversa
ordinea elementelor tabloului x folosind apeluri utile ale subprogramului shift i va afia
pe ecran, separate prin cte un spaiu, elementele tabloului rezultat n urma acestei
prelucrri.
Exemplu: dac se citesc pentru n valoarea 5, iar tabloul x este (1,2,3,4,5) programul
va determina ca x s devin (5,4,3,2,1). (6p.)
Fiierul text BAC.TXT conine pe prima linie un numr natural nenul n (1n1000), iar pe
fiecare dintre urmtoarele n linii cte dou numere ntregi a i b (1ab32000), fiecare
pereche reprezentnd un interval nchis de forma [a,b]. Scriei un program C/C++ care
citete numerele din fiier i determin un interval dintre cele citite care conine cel mai
mare numr de numere ntregi i afieaz pe o linie a ecranului, separate printr-un spaiu,
numerele care reprezint capetele intervalului determinat. n cazul n care sunt mai multe
intervale care ndeplinesc aceast proprietate, se vor afia informaiile referitoare la acel
interval la care numrul care reprezint captul din dreapta este minim.
4.
Exemplu: dac fiierul BAC.TXT are coninutul alturat, pe ecran se va
afia: 8 15 (pentru c numrul maxim de numere ntregi aflate ntr-un
interval este 8. Sunt dou intervale care conin 8 numere: [17;24] i
[8;15]. Dintre acestea, [8;15] are captul din dreapta cel mai mic).
(10p.)
4
17 24
-2 3
9 15
8 15


Varianta 23 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 024

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care din urmtoarele afirmaii despre operatorii din C/C++ este fals? (4p.)
a. > este operator relaional b. % este operator aritmetic
c. && este operator logic d. <= este operator logic

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
a) Scriei valoarea care se va afia pentru a=15 i
b=25. (6p.)
b) Scriei toate valorile care, citite pentru b, determin
afiarea valorii 60, dac pentru a s-a citit valoarea
10. (6p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei un algoritm echivalent n care s se
nlocuiasc structura ct timp...execut cu o
structur repetitiv cu test final. (4p.)
citete a,b
(numere naturale)
pa; qb
dac p=0 sau q=0 atunci
pp*q; qp*q

ct timp pq execut
dac p<q atunci
pp+a
altfel
qq+b


scrie p

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 024

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre urmtoarele arce trebuie adugat unui graf orientat cu 5
noduri, numerotate de la 1 la 5, reprezentat prin matricea de adiacen
alturat, astfel nct n acest graf s existe cel puin un drum ntre
oricare dou vrfuri? (4p.)
0 1 0 1 0
0 0 1 0 0
0 0 0 0 0
0 0 0 0 1
1 0 0 0 0
a. (3 , 5) b. (4 , 1) c. (5 , 3) d. (3 , 2)
2. Care din urmtoarele proprieti este adevrat pentru un graf orientat cu n vrfuri i n arce
(n>3) care are un circuit de lungime n: (4p.)
a. exist un vrf cu gradul intern n-1
b. pentru orice vrf gradul intern i gradul extern sunt egale
c. graful nu are drumuri de lungime strict mai mare dect 2
d. gradul intern al oricrui vrf este egal cu 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Stiva S i coada C memoreaz numere ntregi. n ambele se introduc, n ordine, numerele 1,
2, 3, 4. Se noteaz cu SC operaia de extragere a unui element din stiva S i adugarea
acestuia n coada C, iar cu CS operaia de eliminare a unui element din coada C i
introducerea acestuia n stiva S.
Care este ultima valoare introdus n stiva S i care este ultima valoare care a fost adugat
n coada C la executarea urmtoarei secvene de operaii :
SC; CS; CS; SC; CS; (6p.)
4. Scriei o secven de instruciuni C/C++ care s iniializeze elementele unui tablou
bidimensional A, cu n linii i n coloane, 1<n5, cu numerele naturale 1,2,...,n, astfel
nct pe fiecare linie sau coloan s existe toate numerele din mulimea {1,2,...,n}.
(6p.)
5. Scriei un program C/C++ care citete de la tastatur dou iruri de caractere formate din
maximum 100 litere mici ale alfabetului englez i afieaz pe ecran cel mai lung sufix
comun al celor dou iruri de caractere. Dac cele dou iruri nu au niciun sufix comun,
atunci programul va afia pe ecran mesajul NU EXIST.
Exemplu: pentru irurile marina i elena se va afia na (10p.)

Varianta 24 - informatica
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
Subiectul III (30 de puncte) - Varianta 024

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Genernd irurile de maximum 3 caractere distincte din mulimea {A,B,C,D,E}, ordonate
lexicografic, obinem succesiv: A, AB, ABC, ABD,.Ce ir va fi generat imediat dup BAE?
(4p.)
a. BCA b. CAB
c. BC d. BEA

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Funcia f are definiia alturat.
a) Ce valoare are f(17)? (3p.)
b) Ce valoare are f(22)? (3p.)
int f(int n)
{ if (n<=9) return 0;
if (n%4==0) return 0;
return 1+f(n-3);
}
3. a) Scriei definiia complet a subprogramului p care primete prin intermediul parametrului
n un numr natural nenul (n100), iar prin intermediul parametrului x un tablou
unidimensional cu n componente ntregi, de maximum patru cifre fiecare. Subprogramul
furnizeaz prin intermediul parametrului mini valoarea minim din tabloul x, prin
intermediul parametrului maxi valoarea maxim din x, iar prin intermediul parametrului sum
suma elementelor din tabloul x. (6p.)
b) Scriei un program C/C++ care citete de la tastatur o valoare natural nenul n,
(3n100), apoi cele n elemente, distincte, ale unui tablou unidimensional x. Fiecare dintre
aceste elemente este un numr natural avnd cel mult patru cifre. Folosind apeluri utile ale
subprogramului p, programul calculeaz i afieaz pe ecran media aritmetic a
elementelor care ar rmne n tabloul x dac s-ar elimina valoarea minim i valoarea
maxim din tablou. Valoarea afiat va avea cel mult 3 cifre dup virgul.
Exemplu: dac se citesc pentru n valoarea 5, iar pentru tabloul x valorile (1,9,4,8,5),
programul va afia una dintre valorile 5.667 sau 5.666. (4p.)
Fiierul text bac.txt conine pe prima linie numrul natural n, 1n10000, pe a doua linie,
dou numere ntregi a i b (ab) separate de un spaiu, iar pe urmtoarele n linii un ir de n
numere ntregi. Fiecare dintre cele n numere, precum i valorile a i b, au cel mult patru
cifre.
4.
Scriei un program C/C++ care afieaz pe ecran cel mai mic numr natural
din intervalul nchis [a,b] care se gsete n irul dat. Dac nu exist un
astfel de numr, programul afieaz textul NU.
Exemplu: dac fiierul bac.txt are coninutul alturat, programul afieaz
valoarea 14. (10p.)
4
8 35
-2
72
14
25


Varianta 24 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 025

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena pseudocod alturat, toate variabilele
memoreaz numere naturale. Cu ce valori pot fi
nlocuite punctele de suspensie din secven astfel
nct, la finalul executrii secvenei s se afieze, n
acest ordine, valorile 16 i 41? (4p.)
a...
b...
pentru i3,7 execut
ca+b; xa; ab; bc

scrie x,c
a. 1 i 1 b. 3 i 4 c. 5 i 2 d. 2 i 7

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu y|x faptul c x este divizibil cu y.
a) Scriei care sunt valorile ce se vor afia pentru a=10,
b=20 i c=6. (6p.)
b) Scriei un algoritm echivalent cu cel dat n care s se
nlocuiasc structura ct timp...execut cu o
structur pentru...execut. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei o formul care s calculeze cte numere se
afieaz dac ab. (4p.)
citete a,b,c
(numere naturale nenule)
dac a>b atunci
ta; ab; bt

ct timp ab execut
dac c|a atunci
scrie a

aa+1


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 025

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Structura de date la care se aplic principiul primul venit, primul ieit: (first in, first out)
este: (4p.)
a. lista nlnuit b. stiva
c. coada d. graf orientat
2. Un graf neorientat cu 5 noduri are gradele nodurilor egale cu 1,2,2,1,x. Pentru ce
valoare a lui x graful este arbore? (4p.)
a. x=2 b. x<2 c. x>2 d. nicio valoare

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei n C/C++ o instruciune de atribuire n urma creia o variabil real y va memora
valoarea expresiei de mai jos pentru variabila ntreag nenul x.
(6p.)
4. Scriei secvena de instruciuni care permite afiarea pe ecran a mesajului Corect dac un
ir de maximum 100 caractere, reinut de variabila s, conine caractere de tip cifr, sau
mesajul Incorect n caz contrar. (6p.)
Se consider un tablou bidimensional cu m linii i n coloane (1m100,1n100), ale crui
elemente aparin mulimii {0,1,2}. Scriei un program C/C++ citete de la tastatur valorile
m, n i elementele tabloului i care afieaz pe ecran numerele de ordine ale coloanelor
pentru care produsul elementelor situate pe ele, este maxim. Liniile i coloanele tabloului
se numeroteaz de la 1 la m respectiv de la 1 la n. Numerele se vor afia separate prin
cte un spaiu.
5.
Exemplu: pentru m=4 i n=4 i tabloul alturat se va afia, nu neaprat n
aceast ordine:
1 2 (10p.)
2 1 1 0
1 1 1 1
2 2 2 1
1 2 1 1

Varianta 25 - informatica
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
Subiectul III (30 de puncte) - Varianta 025

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un program citete o valoare natural nenul impar pentru n i apoi genereaz i afieaz
n ordine cresctoare lexicografic toate combinaiile formate din n cifre (valori ntre 0 i 9)
care ndeplinesc urmtoarele proprieti:
- ncep i se termin cu 0;
- modulul diferenei ntre oricare dou cifre alturate dintr-o combinaie este 1.
Astfel, pentru n=5, combinaiile afiate sunt, n ordine, urmtoarele: 01010, 01210. Dac
se ruleaz acest program i se citete pentru n valoarea 7, imediat dup combinaia
0101210 va fi afiat combinaia: (4p.)
a. 0121210 b. 0123210 c. 0111210 d. 0121010

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Funcia f are definiia alturat:
a) Ce valoare are f(16)? (3p.)
b) Scriei o valoare de dou cifre pe care o
poate avea n astfel nct f(n) s fie egal
cu 2. (3p.)
int f(int n)
{ if (n<=0) return -1;
if (n % 2==0) return 0;
if (n % 3==0) return 0;
return 1+f(n-10);
}
3. Scriei definiia complet a subprogramului f care primete prin intermediul parametrului n
un numr natural nenul (2n9), iar prin intermediul parametrului a, un tablou
unidimensional care conine n valori naturale distincte, fiecare dintre acestea avnd cel
mult patru cifre. Subprogramul interschimb cel mai mic element par i cel mai mare
element impar din tabloul a i furnizeaz tabloul modificat tot prin parametrul a. Dac
tabloul nu conine niciun element par sau niciun element impar, el va rmne neschimbat.
Exemplu: dac subprogramul se apeleaz pentru n=6 i pentru a avnd valorile
(2,3,17,6,1,24), tabloul va avea n urma apelului urmtoarea form:
(17,3,2,6,1,24). (10p.)
4. Fiierul text NUMAR.TXT conine pe prima linie un numr real pozitiv x care are cel mult
dou cifre la partea ntreag i cel mult apte cifre dup punctul zecimal.
a) Scriei un program C/C++ care, utiliznd un algoritm eficient din punct de vedere al
timpului de executare i al memoriei utilizate, afieaz pe ecran, separate printr-un spaiu,
dou numere naturale al cror raport este egal cu x i a cror diferen absolut este
minim.
Exemplu: dac fiierul conine valoarea alturat, se vor afia pe ecran
numerele 3 8. (6p.)
0.375

b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei. (4p.)

Varianta 25 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 026

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este cea mai mic valoare pe care o poate avea expresia C/C++
alturat dac variabila x, de tip int, memoreaz un numr natural cu o
singur cifr? (4p.)
x/7-x%7
a. 0 b. 1.14 c. -6 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valorile care se afieaz pentru n=11. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat, n
care s se nlocuiasc structura pentru...execut cu
o structur repetitiv de un alt tip. (6p.)
d) Scriei numrul de valori distincte, numere naturale nenule,
cu cel mult dou cifre fiecare, care pot fi citite pentru n, astfel
nct cifra 1 s fie afiat de exact 3 ori. (4p.)
citeste n (numr natural)
c0
pentru i1,n execut
c(c+1)%10
scrie c


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 026

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Pentru graful neorientat din figura alturat, care este numrul de
muchii ale celui mai lung lan elementar, ce are ca extremiti
nodurile 1 i 3 ? (4p.)


a. 2 b. 3 c. 1 d. 4
2. Care este nodul ce poate fi ales ca rdcin a arborelui din figura
alturat, astfel nct rdcina s aib 3 descendeni direci (fii) ?
(4p.)
a. 3 b. 4 c. 6 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care va fi irul de caractere afiat dup executarea
secvenei alturate , n care variabila s memoreaz un
ir cu cel mult 5 caractere? (6p.)
char s[]=raton;
s[1]=s[3];
cout<<s; | printf(%s,s);
4. ntr-o stiv care memoreaz numere, o valoare x poate fi adugat
numai dac n vrful stivei se afl un element cu o valoare strict mai
mare dect x; n caz contrar sunt eliminate toate elementele care nu
ndeplinesc aceast condiie i apoi se adaug valoarea x.
Exemplu: pentru stiva din fig.1, adugarea elementului 11 este
precedat de eliminarea elementelor ce conin valorile 2 i 10. Dup
adugare, stiva va avea coninutul din fig.2.
Dac stiva este iniial vid, care este numrul elementelor aflate n
aceast stiv dup adugarea, respectnd condiiile de mai sus, n
ordine, a numerelor 20, 5, 16, 9, 3, 7, 5, 4, 8 ? (6p.)

Scriei un program C/C++ care citete de la tastatur un numr natural n (2n9) i
elementele unui tablou bidimensional A cu n linii i n coloane, care memoreaz numere
naturale mai mici dect 10, i afieaz pe ecran pentru fiecare coloan, produsul
elementelor de pe acea coloan. Valorile afiate vor fi separate prin cte un spaiu.
5.
Exemplu: pentru matricea din figura alturat se afieaz, nu neaprat n
aceast ordine, valorile 0 24 20 12 (10p.)
1 1 2 3
9 2 5 4
8 6 1 1
0 2 2 1

Varianta 26 - informatica
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
Subiectul III (30 de puncte) - Varianta 026

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Pentru generarea n ordine cresctoare a numerelor cu n cifre formate cu elementele
mulimii {0,2,9} se utilizeaz un algoritm backtracking care, pentru n=2, genereaz, n
ordine, numerele 20,22,29,90,92,99.
Dac n=4 i se utilizeaz acelai algoritm, care este numrul generat imediat dup numrul
2009 ? (4p.)
a. 2002 b. 2020 c. 2090 d. 2010

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul afis este definit alturat.
Ce se afieaz ca urmare a apelului afis(4); ?
(4p.)


void afis (int n)
{ cout<<n; | printf(%d,n);
if(n>0){afis(n-1);
cout<<n; | printf(%d,n);}
}
3.
Scriei programul C/C++ care citete de la tastatur dou numere naturale nenule n i k
(n100, k100) i afieaz pe ecran, n ordine descresctoare, cei mai mici k multipli
naturali nenuli ai numrului n. . Numerele afiate sunt separate prin cte un spaiu.
Exemplu: pentru n=6 i k=5 se afieaz 30 24 18 12 6. (6p.)
4. a) Scriei definiia complet a unui subprogram sterge, cu trei parametri, care:
- primete prin parametrii:
- v un tablou unidimensional cu maximum 100 de elemente ntregi din intervalul [-1000;1000]
- n o valoare natural reprezentnd numrul de elemente din tabloul v
- i o valoare natural cu 1in
- elimin din tabloul v elementul v[i]i actualizeaz valoarea lui n.
Tabloul modificat este furnizat tot prin parametrul v. (10p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere ntregi din intervalul [-1000;1000], separate prin cte un spaiu.
Scriei un program C/C++ care citete din fiierul NUMERE.IN numrul natural n,
construiete n memorie un tablou unidimensional v cu cele n numere ntregi aflate pe linia a
doua n fiier i utilizeaz apeluri utile ale subprogramului sterge pentru a elimina din
tablou un numr minim de elemente astfel nct s nu existe dou elemente alturate cu
aceeai valoare. Elementele tabloului obinut se afieaz pe ecran, separate prin cte un
spaiu.
Exemplu: Dac fiierul NUMERE.IN are coninutul:
12
10 10 2 2 19 9 9 9 9 15 15 15 atunci se afieaz 10 2 19 9 15. (6p.)

Varianta 26 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 027

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
n expresia C/C++ alturat variabila x este de tip ntreg. Aceast
expresie: (4p.)
x%2+(x+1)%2
a. are valoarea 1 pentru orice numr natural x.
b. are valoarea 1 dac i numai dac x este un numr par.
c. are valoarea 1 dac i numai dac x este un numr impar.
d. are o valoare strict mai mare dect 1 pentru orice numr natural x.

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [x] partea ntreag a
numrului real x.
a) Scriei valoarea care se afieaz dac se citesc
numerele a=493 i b=1836. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
c) Scriei n pseudocod un algoritm echivalent cu cel
dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de
un alt tip. (6p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat, care s NU foloseasc structuri repetitive sau
recursive. (4p.)
citeste a,b
(numere naturale)
c0
d0
p1
ct timp a+b+c>0 execut
ca%10+b%10+c
dd+(c%10)*p
pp*10
a[a/10]
b[b/10]
c[c/10]

scrie d

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 027

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul arcelor ce au ca extremitate iniial vrful 4, n
graful orientat cu 4 vrfuri, numerotate de la 1 la 4, reprezentat prin
matricea de adiacen alturat? (4p.)
0 1 0 1
0 0 0 0
0 1 0 0
1 1 1 0
a. 3 b. 2 c. 1 d. 0
2. Care este numrul nodurilor de tip frunz din arborele cu rdcin, cu 8 noduri,
numerotate de la 1 la 8, reprezentat prin vectorul de tai (2,0,6,2,4,4,5,5)? (6p.)
a. 3 b. 4 c. 5 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. n declararea alturat, cmpurile x i y ale nregistrrii reprezint
numrtorul, respectiv numitorul unei fracii de forma
.

Scriei instruciunile prin executarea crora se memoreaz n variabila
H fracia obinut prin adunarea fraciilor reinute n F i G. (6p.)
struct fractie
{
int x,y;
} F,G,H;
4. Se consider o coad n care iniial au fost introduse, n aceast ordine, elementele
1,2,3,4,5,6: . Dac se noteaz cu AD(x) operaia prin care se
adaug un element cu informaia x n coad i cu EL() operaia prin care se elimin un
element din coad, care este elementul aflat n mijlocul cozii i care este suma elementelor
aflate n coad dup executarea secvenei de operaii:
EL(); AD(7); AD(8); EL(); EL(); (4p.)
5. Scriei un program C/C++ care citete de la tastatur un numr natural
n (2<n<=10) i construiete n memorie o matrice A cu n linii i n
coloane n care toate elementele de pe prima linie, prima i ultima
coloan au valoarea 1 i oricare alt element A
ij
din matrice este egal
cu suma a 3 elemente situate pe linia i-1: primul aflat pe coloana j-1,
al doilea pe coloana j, iar al treilea pe coloana j+1, ca n exemplu.
Matricea va fi afiat pe ecran, linie cu linie, numerele de pe aceeai
linie fiind separate prin cte un spaiu.
Exemplu: pentru n=5 , se afieaz matricea alturat. (10p.)


Varianta 27 - informatica
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
Subiectul III (30 de puncte) - Varianta 027

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Pentru generarea n ordine cresctoare a numerelor cu n cifre formate cu elementele
mulimii {0,2,8} se utilizeaz un algoritm backtracking care, pentru n=2, genereaz, n
ordine, numerele 20,22,28,80,82,88.
Dac n=4 i se utilizeaz acelai algoritm, precizai cte numere generate sunt divizibile
cu 100? (4p.)
a. 8 b. 90 c. 6 d. 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul scrie este definit
alturat.
Ce se afieaz ca urmare a apelului
scrie(1,7); ? (6p.)
void scrie (int x,int y)
{ if(x<y)
{ scrie(x+1,y-1);
cout<<(x+y)/2; | printf(%d,(x+y)/2);
}
}
3.
Scriei definia complet a subprogramului nreal cu doi parametri x i y, numere naturale
din intervalul [1;1000] ce returneaz un numr real cu proprietatea c partea sa ntreag
este egal cu x, iar numrul format din zecimalele sale, n aceeai ordine, este egal cu y.
Exemplu: pentru x=12 i y=543, subprogramul returneaz valoarea 12.543. (10p.)
4. Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (2n100) i pe
urmtoarea linie n numere reale pozitive, aflate n ordine strict cresctoare, separate prin cte
un spaiu.
a) Scriei un program C/C++ care, utiliznd un algoritm eficient din punct de vedere al
memoriei utilizate, determin i afieaz pe ecran, separate printr-un spaiu, dou numere
naturale x i y cu proprietatea c toate cele n numere aflate pe linia a doua n fiierul
NUMERE.IN se gsesc n intervalul [x;y] i diferena y-x este minim.
Exemplu: dac fiierul NUMERE.IN are coninutul:
6
3.5 5.1 9.2 16 20.33 100 atunci se afieaz 3 100 (6p.)
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei. (4p.)


Varianta 27 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 028

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Cte valori distincte, numere naturale, poate primi variabila x pentru ca valoarea expresiei
x/2/2 scris n C/C++ s fie egal cu 1? (4p.)
a. 1 b. 4 c. 2 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu [x]partea ntreag a numrului real x.
a) Scriei valoarea afiat dac se citete numrul
120.12. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de un
alt tip. (6p.)
d) Scriei un numr real, cu exact dou cifre la partea
ntreag, care poate fi citit pentru x, astfel nct
algoritmul s afieze valoarea 1. (4p.)
citeste x
(numr real pozitiv)
y[x]
xx-y
ct timp x[x] execut
xx*10

dac x=y atunci
scrie 1
altfel
scrie 2



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 028

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul minim de muchii ce pot fi eliminate din graful
alturat astfel nct n graful parial rezultat s existe exact un vrf de
grad 0? (6p.)

a. 1 b. 3 c. 2 d. 5
2. ntr-un arbore cu rdcin fiecare nod neterminal are exact 2 descendeni direci (fii).
Care este numrul de noduri din arbore dac acesta are 8 frunze? (4p.)
a. 8 b. 7 c. 15 d. 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-un tablou bidimensional A cu n linii i n coloane, numerotate de la 1 la n, notm cu A
ij

elementul aflat pe linia i i coloana j (1in, 1jn). Care este valoarea expresiei j-i
dac elementul A
ij
este situat pe diagonala principal a tabloului A? (4p.)
4. Se consider o stiv n care iniial au fost introduse, n aceast ordine, elementele
1,2,3,4,5,6 (ca n imaginea alturat).
Dac se noteaz cu PUSH x operaia prin care se adaug un element cu informaia x
n stiv i cu POP operaia prin care se elimin un element din stiv, care este
elementul aflat n mijlocul stivei i care este suma elementelor aflate n stiv dup
executarea secvenei de operaii: POP; PUSH 7; PUSH 8; POP; POP; ? (6p.)

5. irul de caractere s2 este clona irului de caractere s1 dac se poate obine din s1 prin
eliminarea tuturor apariiilor unei singure vocale. Se consider vocal orice liter din mulimea
{a,e,i,o,u}.
Scriei programul C/C++ care citete de la tastatur un cuvnt format din cel mult 20 litere
mici ale alfabetului englez i afieaz pe ecran, toate clonele acestui cuvnt, fiecare pe cte
o linie a ecranului.

Exemplu: pentru cuvntul informatica se afieaz, nu neaprat n aceast
ordine, clonele scrise alturat. (10p.)
nformatca
infrmatica
informtic

Varianta 28 - informatica
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
Subiectul III (30 de puncte) - Varianta 028

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Generarea tuturor cuvintelor de trei litere mici, nu neaprat distincte, ale alfabetului englez,
se poate realiza cu ajutorul unui algoritm echivalent cu cel de generare a: (4p.)
a. produsului cartezian b. combinrilor
c. aranjamentelor d. permutrilor

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f este definit alturat.
Ce valoare are f(4,8)? (4p.)
int f (int x,int y)
{ if(x<=y)return 1+f(x+1,y);
return 0;
}
3. Se consider un ir de n numere reale. Un numr x din acest ir se numete median dac
este egal cu media aritmetic a celorlalte n-1 numere din ir.
Exemplu: elementul x=5 este median pentru irul 2 5 6 7 deoarece 5=(2+6+7)/3.
Scriei un program C/C++ care citete de la tastatur un numr natural n din intervalul
[2,50] i apoi un ir de n numere reale i afieaz pe ecran cte dintre elementele irului
sunt mediane. (6p.)
4. a) Scriei definiia complet a unui subprogram primul, care
- primete prin singurul su parametru, a, o valoare natural din intervalul [2,10000]
- returneaz o valoare natural reprezentnd cel mai mic divizor al numrului a mai mare strict
dect 1. (6p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere naturale din intervalul [2,10000] separate prin cte un spaiu.
Un numr natural n se numete aproape prim dac este egal cu produsul a dou numere
prime distincte. De exemplu, numrul 14 este aproape prim pentru c este egal cu produsul
numerelor prime 2 i 7.
Scriei un program C/C++ care determin i afieaz pe ecran (dac exist), separate prin
cte un spaiu, folosind apeluri utile ale subprogramului primul, numerele aproape prime
de pe linia a doua a fiierului NUMERE.IN.
Exemplu: dac fiierul NUMERE.IN are coninutul:
6
100 14 21 8 77 35 atunci se afieaz pe ecran 14 21 77 35 (10p.)

Varianta 28 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 029

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac numrul natural
nenul memorat n variabila x, de tip int, este divizibil cu 100? (4p.)
a. x%10+x/10%10==0 b. x/100==0
c. x%10+x/10==0 d. x%10+x%10/10==0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
a) Scriei valoarea care se afieaz dac se citesc numerele n=6
i m=12. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
c) Scriei dou perechi distincte de numere ce pot fi introduse
pentru n i m astfel nct s se afieze valoarea 10, n
urma executrii algoritmului, pentru fiecare dintre perechi. (6
d) Scriei n pseudocod un algoritm echivalent cu cel dat, care s
NU foloseasc structuri repetitive sau recursive. (4p.)
citeste n,m
(numere naturale)
ct timp nm execut
nn+1
mm-1

ct timp m<n execut
mm+1
nn-1

scrie n

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 029

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul maxim de noduri de grad 3 ntr-un graf neorientat cu 5 noduri? (4p.)
a. 4 b. 5 c. 3 d. 2
2. Care dintre noduri trebuie ales ca rdcin n arborele din figura alturat
astfel nct s existe un nod cu 3 descendeni direci (fii)? (6p.)

a. 2 b. 3 c. 6 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care va fi irul de caractere afiat pe ecran dup
executarea secvenei alturate, n care variabila s
memoreaz un ir cu cel mult 4 caractere, iar
variabila t un caracter? (4p.)
char s[]=arac;
t=s[1];
s[1]=s[3];
s[3]=t;
cout<<s; | printf(%s,s);
4. Se consider o coad n care iniial au fost introduse, n aceast ordine, elementele
1,2,3,4,5,6,7,8,9,10:

. Dac se noteaz cu AD(x)
operaia prin care se adaug un element cu informaia x n coad i cu EL() operaia prin care
se elimin un element din coad, care este valoarea memorat n primul element al cozii dup
executarea secvenei de operaii: EL();EL();AD(1); AD(2); EL();EL(); ? (6p.)
5. Scriei un program C/C++ care citete de la tastatur un numr
natural n (1n6) i elementele unui tablou bidimensional A cu n linii
i n coloane, care memoreaz numere naturale nenule mai mici
dect 100, i afieaz pe ecran produsul numerelor pivot pentru
matricea A.
Un numr natural x este pivot pentru matricea A dac nmulind
fiecare element de pe prima coloan cu numrul x, se obin, n
aceeai ordine, elementele unei alte coloane din matrice.
Exemplu: pentru matricea din figura alturat se afieaz 8. (10p.)


Varianta 29 - informatica
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
Subiectul III (30 de puncte) - Varianta 029

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n cte dintre permutrile elementelor mulimii {I,N,F,O} vocalele apar pe
poziii consecutive? (4p.)
a. 4 b. 6 c. 24 d. 12

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce se afieaz ca urmare a
apelului p(123); dac
subprogramul p are definiia
alturat? (6p.)
void p (int x)
{ if(x!=0){p(x/10);
cout<<x%10; | printf(%d,x%10);
}
}
3. Scriei programul C/C++ care citete trei numere naturale a,b,c (ab) din intervalul
[1,10000] i afieaz pe ecran numrul multiplilor lui c din intervalul [a;b].
Exemplu: pentru a=10, b=27,c=5 se afieaz valoarea 4. (4p.)
4. Se consider dou tablouri unidimensionale A i B cu elemente numere naturale din
intervalul [1;10000]. Spunem c tabloul A se poate reduce la tabloul B dac exist o
mprire a tabloului A n secvene disjuncte i adiacente de cte trei elemente aflate pe
poziii consecutive astfel nct, prin nlocuirea secvenelor cu suma elementelor din
secven, s se obin, n ordine, elementele tabloului B.

De exemplu tabloul


se poate reduce la tabloul

a) Scriei definiia complet a subprogramului suma, cu trei parametri, care:
- primete prin parametrii:
- A un tablou unidimensional cu maximum 100 elemente numere naturale din
intervalul [1;10000]
- i i j dou valori naturale (1ij100);
- returneaz suma A
i
+A
i+1
++A
j
. (6p.)

b) Fiierul text NUMERE.IN conine pe prima linie dou numere naturale nenule n i m
(1mn100), pe linia a doua n numere naturale din intervalul [1;10000] i pe linia a
treia alte m numere naturale din intervalul [1;10000]. Pe fiecare linie numerele sunt
separate prin cte un spaiu.

Scriei un program C/C++ care citete cele dou numere naturale n i m din fiierul
NUMERE.IN, construiete n memorie dou tablouri unidimensionale A i B cu elementele
aflate n fiier pe a doua, respectiv a treia linie i verific, utiliznd apeluri utile ale
subprogramului suma, dac tabloul A se poate reduce la tabloul B. Programul afieaz pe
ecran mesajul DA n caz afirmativ i mesajul NU n caz negativ. (10p.)


Varianta 29 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 030

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac numrul natural
memorat de variabila x de tip int are exact dou cifre? (4p.)
a. x/100==0 b. x/100==0 && x%10==0
c. x/10!=0 d. x/100==0 && x/10!=0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valoarea care se afieaz dac se citete
numrul n=5172. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de un
alt tip. (6p.)
d) Scriei toate valorile distincte, fiecare avnd exact patru
cifre, care pot fi citite pentru variabila n astfel nct s se
afieze valoarea 2008, pentru fiecare dintre acestea.
(4p.)
citeste n (numr natural)
m0
p1
ct timp n>0 execut
cn%10
dac c>0 atunci
cc-1

mm+c*p
pp*10
n[n/10]

scrie m

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 030

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul nodurilor de grad 1 n graful din figura alturat ?(6p.)

a. 0 b. 1 c. 2 d. 3
2. Care este valoarea expresiei strlen(s) pentru variabila s de tip ir de caractere, declarat
i iniializat astfel: char s[15]=Proba_E; (4p.)
a. 7 b. 15 c. 6 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care sunt nodurile de tip frunz din arborele alturat dac se alege
ca rdcin nodul 6? (6p.)

4. Se consider o stiv n care iniial au fost introduse, n aceast ordine, elementele
1,2,3,4,5,6,7,8,9,10 (ca n imaginea alturat).
Dac se noteaz cu AD(x) operaia prin care se adaug un element cu informaia
x n stiv i cu EL() operaia prin care se elimin un element din stiv, care este
elementul aflat n vrful stivei dup executarea secvenei de operaii:
EL();EL();AD(11); AD(12); EL();EL(); ? (4p.)

5. Scriei un program C/C++ care citete de la tastatur un numr
natural n (2<n<=15) i construiete n memorie o matrice A cu n linii i
n coloane n care orice element aflat pe prima linie sau pe prima
coloan are valoarea 1 i oricare alt element A
ij
din matrice este egal
cu suma a dou elemente din matrice, primul aflat pe linia i i pe
coloana j-1 iar cel de-al doilea pe coloana j i pe linia i-1. Matricea
va fi afiat pe ecran, linie cu linie, numerele de pe aceeai linie
fiind separate prin cte un spaiu.
Exemplu: pentru n=4 , se obine matricea alturat. (10p.)


Varianta 30 - informatica
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
Subiectul III (30 de puncte) - Varianta 030

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Pentru generarea numerelor cu n cifre formate cu elementele mulimii {0,4,8} se
utilizeaz un algoritm backtracking care, pentru n=2, genereaz, n ordine, numerele
40,44,48,80,84,88.
Dac n=4 i se utilizeaz acelai algoritm, care este numrul generat imediat dup numrul
4008 ? (4p.)
a. 4040 b. 4004 c. 4080 d. 8004

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f este definit alturat.
Ce se afieaz ca urmare a apelului
f(1,3);? (6p.)
void f (int x,int y)
{ if(x<=y)
{ f(x+1,y);
cout<<x; | printf(%d,x);
}
}
3. Scriei definiia complet a subprogramului suma, care primete prin cei 4 parametri
v,n,i,j:
- v, un tablou unidimensional cu maximum 100 de elemente ntregi din intervalul [-1000;1000],
numerotate de la 1 la n;
- n, un numr natural reprezentnd numrul de elemente din tabloul v;
- i i j, dou valori naturale cu 1ijn.
Subprogramul returneaz suma elementelor v
1
,,v
i-1
, v
j+1
,,v
n
din tabloul v. (10p.)
4. Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i pe
urmtoarea linie n numere reale pozitive ordonate cresctor, separate prin cte un spaiu.
a) Scriei un program C/C++ care citete din fiierul NUMERE.IN numrul natural n, i
determin, utiliznd un algoritm eficient din punct de vedere al timpului de executare i al
memoriei utilizate, numrul de valori reale distincte de pe linia a doua din fiier.

Exemplu: dac fiierul NUMERE.IN are coninutul:
6
2.3 2.3 2.8 5.7 5.7 6.3
atunci se afieaz valoarea 4 (sunt 4 valori distincte: 2.3, 2.8, 5.7, 6.3). (6p.)
b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei. (4p.)

Varianta 30 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 031

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider variabila a care memoreaz un numr cu exact 6 cifre. Care dintre expresiile
C/C++ de mai jos are ca valoare numrul format din cele dou cifre din mijloc ale valorii
memorate n a? (4p.)
a. (a%100)/100 b. a/100%100
c. a/1000+a%1000 d. a/100%10+a/1000%10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [x], partea ntreag a numrului real x.
a) Scriei valorile care se vor afia pentru a=9.
(4p.)
b) Scriei numrul valorilor din intervalul [1,5] care, citite
pentru variabila a, determin, dup executarea
algoritmului alturat, memorarea valorii 1 n variabila b.
(6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s nu se utilizeze structuri repetitive sau
subprograme recursive. (6p.)
citete a
(numr natural, a>0)
k0
b[(a+1)*(a+2)/2]
ct timp ba execut
bb-a
kk+1

scrie b,k


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 031

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat cu 7 noduri, numerotate de la 1 la 7, i muchiile[1,3],
[2,3], [3,4], [3,5], [5,4], [1,2], [2,5], [2,4], [6,7], [3,6]. Gradul nodului 5
este : (4p.)
a. 0 b. 1 c. 3 d. 4
2. Un arbore cu 11 noduri, numerotate de la 1 la 11, este memorat cu ajutorul vectorului de
tai t=(2,5,5,3,0,2,4,6,6,2,3). Mulimea tuturor ascendenilor nodului 8 este: (4p.)
a. {1, 2, 5, 6, 10} b. {6, 2, 5}
c. {6} d. {5, 2}

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei definiia corect a unui tip de date necesar pentru a memora simultan, ntr-o singur
variabil de acest tip, urmtoarele caracteristici ale unui autoturism: marca (cuvnt de
maximum 20 caractere) i anul fabricaiei (numr natural), astfel nct expresia C/C++ de
mai jos s aib ca valoare vechimea mainii ale crei caracteristici sunt memorate n
variabila x.
2008-x.anul_fabricatiei (6p.)
4. ntr-o structur static de date de tip stiv au fost introduse, n aceas
ordine, numerele ntregi, 11, 6, 2, 28, 67, ca n desenul alturat.
Reprezentai coninutul stivei prin cte un desen similar cu cel alturat,
dup fiecare dintre urmtoarele operaii, realizate n exact aceast ordine:
- extragerea a 3 elemente din stiv
- adugarea valorii 100, apoi a valorii 200. (6p.)

5. Scriei un program C/C++ care construiete n memorie o matrice cu 10 linii i 7 coloane ale
crei elemente sunt numere ntregi (cu maximum 3 cifre fiecare), citite de la tastatur, i
afieaz pe ecran, suma tuturor elementelor situate pe conturul matricei determinat de prima
i ultima linie respectiv prima i ultima coloan a acestei matrice. (10p.)

Varianta 31 - informatica
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
Subiectul III (30 de puncte) - Varianta 031

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Generarea tuturor irurilor de caractere de 5 litere, fiecare liter putnd fi orice element din
mulimea {p,r,o,b,a}, se realizeaz cu ajutorul unui algoritm echivalent cu algoritmul de
generare a: (4p.)
a.
aranjamentelor
b.
permutrilor
c.
submulimilor
d.
produsului
cartezian

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul recursiv definit
alturat. Ce se va afia n urma apelului
f1(4);? (6p.)

void f1(int x)
{if (x<=9)
{ cout<<x+1; | printf("%d",x+1) ;
f1(x+2);
}
}
3. Scriei n limbajul C/C++ definiia complet a subprogramului ordonare care primete ca
parametru un tablou unidimensional x cu cel mult 100 de elemente, numere naturale cu cel
mult 4 cifre fiecare, i un numr natural n (n100), ce reprezint numrul efectiv de
elemente ale tabloului x. Subprogramul va afia tabloul obinut n urma schimbarii poziiei
doar a elementelor impare din tablou astfel nct acestea s apar n ordinea cresctoare a
valorilor lor. Numerele se afieaz separate prin cte un spaiu. (10p.)
Exemplu: pentru n=6 i x=(7,11,2,-8,-3,10)
subprogramul va afia -3 7 2 -8 11 10
4. n fiierul numere.txt, se afl memorate, pe prima linie un numr natural n (1n100), iar
pe fiecare dintre urmtoarele n linii, cte dou numere ntregi x,y (-100xy100),
reprezentnd capetele cte unui segment [x,y] desenat pe axa Ox de coordonate.
a) Scriei n limbajul C/C++ un program eficient din punct de vedere al timpului de executare
i al spaiului de memorare, care citete din fiier datele existente, determin segmentul
rezultat n urma interseciei tuturor celor n segmente date i afieaz pe ecran dou numere
desprie printr-un spaiu ce reprezint capetele segmentului cerut. Dac segmentele nu au
niciun punct comun se va afia pe ecran valoarea 0. (6p.)
b) Descriei n limbaj natural algoritmul utilizat, justificnd eficiena acestuia. (4p.)
Exemplu: dac fiierul numere.txt are coninutul alturat, se va afia
pe ecran
3 5
5
-7 10
3 20
-5 5
0 12
-8 30

Varianta 31 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 032

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect
1. Stabilii care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac numrul
ntreg memorat n variabila x nu aparine intervalului (-35,-20)[17,100]. (4p.)
a. (x<=-35) || ((x<=16)|| (x>=-20)) || (x>100)
b. (x<=-35) || ((x<=17) && (x>=-20)) || (x>=100)
c. (x<-35) || ((x<16) && (x>-20)) || (x>100)
d. (x<=-35) || ((x<=16) && (x>=-20)) || (x>100)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
a) Scriei numerele care sunt afiate dac pentru a i b
se citesc valorile a=150 i b=9. (4p.)
b) Dac pentru b se citete valoarea 150, scriei cea mai
mare valoare care se poate citi pentru a, astfel nct
algoritmul s afieze exact 4 valori. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura ct timp
execut cu o structur repetitiv cu test final. (6p.)
citete a,b
(numere naturale)
dac a>b atunci
cb
ba
ac

ct timp a<=b execut
scrie a
aa*2

scrie a


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 032

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Un graf orientat este memorat cu ajutorul listelor alturate de
adiacen. Suma elementelor de pe ultima linie a matricei de
adiacen asociat grafului este egal cu:
(4p.)
1:(5,6); 4:(1,2);
2:(1,5); 5:(2);
3:(1,5); 6:(2, 4, 5);
a. 3 b. 0 c. 1 d. 5
2. Graful neorientat cu 8 noduri, numerotate de la 1 la 8, este
reprezentat cu ajutorul matricei de adiacen alturate. Numrul
minim de muchii ce trebuie adugate pentru ca graful s devin conex
este egal cu: (4p.)

a. 2 b. 1 c. 0 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-o structur de date de tip coad au fost adugate n ordine urmtoarele valori: 3, 10,
2, 8 i 6. Care este ultima valoare care s-a extras din coad dac s-au efectuat, n ordine,
urmtoarele operaii: extragerea unui element, adugarea valorii 100, extragerea a trei
elemente. (6p.)
4. n secvena alturat, variabilele i, j sunt de tip ntreg, iar
variabila a memoreaz o matrice n care prima linie i prima
coloan sunt numerotate cu 1. Toate elementele matricei
primesc valori n urma executrii secvenei.
Scriei n ordine, ncepnd cu prima coloan, elementele
situate pe fiecare linie a matricei care se va construi n urma
executrii secvenei alturate de program (6p.)
for (j=1;j<=5;j++)
for (i=1;i<=3;i++)
a[i][j]=10-j;
5. Scriei un program C/C++ care citete de la tastatur dou caractere c1 i c2 i un text
avnd cel mult 250 caractere (spaii i litere ale alfabetului englez), pe care l modific
nlocuind toate apariiile caracterului memorat n c1 cu cel memorat n c2 i toate apariiile
caracterului memorat n c2 cu cel memorat n c1. Programul afieaz pe linii separate ale
ecranului att textul iniial ct i textul obinut dup efectuarea nlocuirilor. (10p.)

Exemplu: dac pentru c1 se citete a, pentru c2 se citete o iar textul citit este:
hocus pocus preparatus
se va afia :
hocus pocus preparatus
hacus pacus preporotus

Varianta 32 - informatica
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
Subiectul III (30 de puncte) - Varianta 032

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect
1.
n vederea participrii la un concurs, elevii de la liceul sportiv au dat o prob de selecie, n
urma creia 6 dintre ei au obinut punctaje egale. n cte moduri poate fi format echipa
selecionat tiind c poate avea doar 4 membri alei dintre cei 6, i c ordinea acestora n
cadrul echipei nu conteaz? (4p.)
a. 24 b. 30 c. 15 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul afis este definit
alturat. Ce se va afia n urma
apelului afis(17);? (6p.)
void afis(int x)
{ if (x>3)
{
cout<<x-1<<" "; | printf("%d ",x-1);
afis(x/3);
}
}
3.
Scriei definiia complet a subprogramului prime care are ca parametri dou numere
naturale x i y (avnd cel mult 4 cifre fiecare) i afieaz pe ecran toate numerele prime din
intervalul nchis, avnd unul din capete n x i cellat n y. Numerele afiate vor fi separate
prin cte un spaiu.
Exemplu: pentru x=32 i y=18 valorile afiate vor fi 19 23 29 31. (10p.)
4. Fiierul numere.txt conine mai multe numere ntregi (cel mult 100), fiecare numr
avnd cel mult 9 cifre. Se cere s se afieze pe ecran, desprite printr-un spaiu, cele mai
mari dou valori pare memorate n fiier. Dac n fiier nu se afl memorate dou astfel de
valori, pe ecran se va afia valoarea 0.
a) Descriei n limbaj natural o metod de rezolvare eficient din punct de vedere al
gestionrii memoriei i al timpului de executare. (4p.)
b) Scriei programul C/C++ corespunztor metodei descrise la punctul a. (6p.)

Exemplu: dac fiierul numere.txt are coninutul alturat, se
vor afia pe ecran, nu neaprat n aceast ordine:
30 50
5 10
3 -77 20
50 5 0 12 18 30

Varianta 32 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 033

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila a memoreaz un numr natural care are exact 3 cifre. Care dintre expresiile
C/C++ de mai jos are ca valoare numrul format din prima i ultima cifr a numrului
memorat de a? (4p.)
a. a/10+a%100 b. a/100+a%10
c. a/100*10+a%10 d. a-a/10%10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris in pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei care este valoarea afiat dac pentru a i n se
citesc numerele a=12 i n=10. (6p.)
b) Dac pentru a se citete valoarea 32, scriei un numr
natural care poate fi citit pentru variabila n, astfel nct,
n urma executrii algoritmului, s se afieze 34. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod, un algoritm echivalent cu cel dat,
n care s nu se utilizeze structuri repetitive sau
subprograme recursive. (4p.)
citete a,n
(numere naturale)
j3
pentru i=1,n execut
dac i%2=0 atunci
aa-j
altfel
aa+j

j7-j

scrie a

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 033

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat cu 6 noduri, definit cu ajutorul
listelor de adiacen alturate. n acest graf, suma gradelor
tuturor nodurilor este: (4p.)
1: 4,5,6
2: 3,4
3: 2,4
4: 1,2,3
5: 1,6
6: 1,5
a. 14 b. 6 c. 28 d. 10
2. Un arbore cu rdcin are nodurile numerotate de la 1 la 18 i este reprezentat prin
vectorul de tai t:(8,8,0,3,4,3,4,7,1,2,3,3,7,8,3,5,6,8). Numrul tuturor
descendenilor nodului 3 este egal cu: (4p.)
a. 3 b. 6 c. 17 d. 18

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei definiia corect a unui tip de date necesar pentru a memora simultan ntr-o singur
variabil de acest tip, urmtoarele caracteristici ale unui cerc: abscisa i ordonata centrului
cercului (numere ntregi) i raza acestuia (numr real), astfel nct expresia C/C++ de mai
jos s calculeze diametrul cercului ale crui caracteristici sunt memorate n variabila x.
2*x.raza (6p.)
4. n secvena alturat, variabilele i, j i x sunt de tip ntreg, iar
variabila a memoreaz o matrice n care prima linie i prima
coloan sunt numerotate cu 1. Toate elementele matricei
primesc valori n urma executrii secvenei.
Scriei n ordine, ncepnd cu prima coloan, elementele
situate pe fiecare linie a matricei care se va construi n urma
executrii secvenei alturate. (6p.)
x=2;
for(j=1;j<=5;j++)
for(i=1;i<=3;i++)
{a[j][i]=x;
x=x+1;
}
5. Scriei un program C/C++ care citete de la tastatur o fraz de maximum 255 de caractere
(litere mari ale alfabetului englez i spaii), ale crei cuvinte sunt desprite prin cte un
spaiu i afieaz pe primul rnd al ecranului numrul total al cuvintelor din fraz, iar pe
rndul urmtor de ecran, n ordine alfabetic, scrise o singur dat, consoanele care au
aprut n fraz (consoane sunt toate literele alfabetului englez, mai puin A, E, I, O, U).
Literele afiate sunt separate prin cte un spaiu.
Exemplu: dac se citete fraza LA BACALAUREAT SUBIECTELE AU FOST USOARE
se va afia:
6
B C F L R S T (10p.)

Varianta 33 - informatica
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
Subiectul III (30 de puncte) - Varianta 033

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Folosind un algoritm de generare putem obine numere naturale de k cifre care au suma
cifrelor egal cu un numr natural s. Astfel, pentru valorile k=2 i s=6 se genereaz, n
ordine, numerele: 15, 24, 33, 42, 51, 60. Care va fi al treilea numr generat pentru k=4 i
s=5? (4p.)
a. 1301 b. 1022 c. 2201 d. 1031

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce se va afia n urma executrii secvenei de
mai jos, n care variabilele a i b sunt tip
ntreg, iar subprogramul f este declarat
alturat?
a=3; b=9;
f(a,b);
cout<<a<<b; | printf("%d%d",a,b);
(6p.)
void f(int &a,int b)
{
a=a-1;b=a+1;
cout<<a<<b; | printf("%d%d",a,b);
}
3. Scriei definiia complet a subprogramului impar, care primete prin parametrul x un
tablou unidimensional cu cel mult 100 de elemente numere naturale, fiecare avnd cel mult
9 cifre, iar prin parametrul n o valoare natural reprezentnd numrul efectiv de elemente
ale tabloului (1n100) i afieaz mesajul DA n cazul n care printre elementele tabloului
x se afl cel puin un numr impar, sau afieaz mesajul NU n caz contrar. (10p.)
4. Pe prima linie a fiierului numere.txt se afl dou numere naturale n i m (avnd cel
mult 4 cifre fiecare, mn), desprite printr-un spaiu, iar pe urmtoarea linie, n ordine strict
cresctoare, n numere naturale cu cel mult dou cifre, desprite prin cte un spaiu.
a) Scriei n limbajul C/C++ un algoritm eficient din punct de vedere al gestionrii memoriei
i al timpului de executare, care citete din fiier datele existente i afieaz cea mai mare
sum a m numere aflate pe a doua linie a fiierului. (6p.)
b) Explicai n limbaj natural metoda utilizat, justificnd eficiena acesteia. (4p.)

Varianta 33 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 034

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena alturat de program, instruciunea de
afiare se va executa de un numr de ori egal cu:
(4p.)
for (i=1;i<=3;i++)
for (j=10;j>=i+1;j--)
cout<<j; | printf(%d,j);
a. 24 b. 21 c. 3 d. 30

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y, restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei care sunt numerele afiate dac se citesc
valorile x=148 i y=203. (6p.)
b) Scriei un set de valori care pot fi citite pentru
variabilele x i y astfel nct, dup executarea
algoritmului alturat, s se afieze exact 5 valori. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura ct
timp...execut cu o structur
pentru...execut. (6p.)
citete x,y
(numere naturale)
xx%10
yy%10
dac y<x atunci
auxy
yx
xaux

ct timp xy execut
scrie x*10+y
xx+1
yy-1



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 034

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1.
Graful neorientat cu 60 de noduri, numerotate de la 1 la 60, are numai muchiile [1,60],
[60,20], [2,30] i [4,30]. Numrul componentelor conexe ale grafului este egal cu:
(4p.)
a. 3 b. 56 c. 54 d. 0
2. Care dintre vectorii urmtori poate fi vectorul de tai ai unui arbore cu rdcin avnd 10
noduri, numerotate de la 1 la 10? (4p.)
a. (0,1,2,3,4,5,0,7,8,9) b. (1,2,3,4,5,7,6,8,9,0)
c. (10,10,10,10,10,10,10,10,10,0) d. (9,8,7,6,5,4,3,2,1,0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-o list alocat static, de tip coad, sunt memorate n ordine, urmtoarele valori: 2, 3,
4:

Reprezentai coada ca n modelul de mai sus, dup fiecare dintre urmtoarele operaii,
care se realizeaz n aceast ordine:
- extragerea a dou elemente
- adugarea valorii 100
- adugarea valorii 200. (6p.)
4. Ce se va afia n urma executrii secvenei
alturate, n care variabila c memoreaz un ir
cu cel mult 20 de caractere, iar i este o
variabil de tip ntreg? (6p.)
char c[21]="tastatura";
for(i=0;i<strlen(c)/2;i=i+1)
cout<<c[i+1]; | printf(%c,c[i+1]);
5. Scriei programul C/C++ care citete de la tastatur un numr natural n (n20),
construiete n memorie i afieaz pe ecran, matricea cu n linii i n coloane, n care se vor
memora n ordinea strict cresctoare a valorii, pe linii i coloane, primele n
2
numere naturale
nenule, pare, care nu sunt divizibile cu 3.

Fiecare linie a matricei se va afia pe cte o linie a ecranului, cu
elementele de pe aceeai linie separate prin cte un spaiu.
Exemplu: pentru n=4 se va construi i afia matricea alturat.
(10p.)
2 4 8 10
14 16 20 22
26 28 32 34
38 40 44 46


Varianta 34 - informatica
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
Subiectul III (30 de puncte) - Varianta 034

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Completarea unui bilet de LOTO presupune colorarea a 6 numere dintre cele 49, nscrise
pe bilet. O situaie statistic pe o anumit perioad de timp arat c cele mai frecvente
numere care au fost extrase la LOTO sunt: 2, 20, 18, 38, 36, 42, 46, 48. Cte
bilete de 6 numere se pot completa folosind doar aceste valori, tiind c numrul 42 va fi
colorat pe fiecare bilet? (4p.)
a. 21 b. 6! c. 42 d. 56

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f este definit alturat.
a) Ce valoare va avea f(7)?
b) Determinai dou valori naturale, x1 i x2 (x1x2,
x1<12 i x2<12 ) pentru care f(x1)=f(x2). (6p.)
int f(int i)
{
if (i>12) return 1;
else return 1+f(i+2);
}
3. Subprogramul cifre_impare primete prin parametrul n un numr natural avnd cel mult
9 cifre i returneaz valoarea 1 dac numrul n are toate cifrele impare i 0 n caz contrar.
a) Scriei numai antetul subprogramului cifre_impare. (4p.)
b) Pe prima linie a fiierului numere.txt se afl un numr natural n, iar pe urmtoarele
linii, n numere naturale. Pe fiecare linie din fiier, numerele sunt desprite prin cte un
spaiu. Toate numerele din fiier au cel mult 9 cifre. Scriei programul C/C++ care, folosind
apeluri utile ale subprogramului cifre_impare, afieaz pe ecran acele numere din fiier
care sunt mai mari dect 100 i au toate cifrele impare. Numerele afiate sunt separate
prin cte un spaiu.
Exemplu: dac fiierul numere.txt are coninutul alturat,
se vor afia pe ecran:
333 713 11573 (10p.)
10
1 333 709 23 258
34 713 2678
11573 778
4. Scriei programul C/C++ care citete de la tastatur un numr natural n (n<100), apoi un
ir de n numere naturale de cel mult 3 cifre fiecare i afieaz pe ecran cel mai mare numr
de valori pare aflate pe poziii consecutive n irul citit.
Exemplu: pentru n=8 i numerele 12,7,4,16,10,3,6,6 se va afia 3 . (6p.)

Varianta 34 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 035

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Stabilii care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac
numrul ntreg memorat n variabila x nu aparine intervalului (-35,-20]. (4p.)
a. (x<-35) || (x>-20) b. (x<=-35) || (x>=-20)
c. (x<=-35) || (x>-20) d. (x<=-35) && (x>20)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [z] partea ntreag a numrului real z, iar cu
x%y restul mpririi numrului natural x la numrul natural
nenul y.
a) Scriei valoarea care va fi afiat dac se citete
numrul x=140. (6p.)
b) Scriei o valoare de 3 cifre care poate fi citit pentru
x, astfel nct valoarea afiat s fie 6. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei valorile naturale din intervalul [7,28] care
pot fi introduse pentru variabila x, astfel nct, dup
executarea programului, valoarea afiat s fie 1.
(6p.)
citete x
(numr natural)
s0
f2
ct timp x>1 execut
p0
ct timp x%f=0 execut
x[x/f]
pp+1

ss+p
ff+1

scrie s

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 035

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat G=(X,U) X={1,2,3,4,5,6,7,8} U={[1,2], [2,3],
[2,4], [2,6], [4,7], [1,5], [5,6], [6,8], [7,8]}. Pentru a trasforma graful ntr-un
arbore, putem elimina: (4p.)
a. muchiile [1,5] i [1,2] b. muchia [5,6]
c. nodul 3 d. muchiile [2,6] i [4,7]
2. Se consider definiia alturat. Care dintre urmtoarele
construcii este o declarare corect pentru un tablou cu 10
elemente de tip elev? (4p.)
struct elev{
char nume[30];
float nota;
};
a. struct elev[10]; b. struct x elev[10];
c. x elev[10]; d. struct elev x[10];

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Ce se va afia n urma executrii secvenei
alturate, n care variabila c memoreaz un
ir cu cel mult 20 de caractere, iar variabila i
este de tip ntreg? (6p.)
char c[]="tamara";
cout<<strlen(c)<<endl;
| printf("%d\n",strlen(c));
for(i=3;i>=0;i--)
cout<<c[i]; | printf("%c",c[i])
4. Un graf neorientat cu 10 noduri, numerotate de la 1 la 10, este
reprezentat cu ajutorul listelor de adiacen alturate. Cte
componente conexe are graful i care este numrul minim de
muchii ce trebuie adugate pentru ca graful s fie conex?
(6p.)
1:3,5
2:4
3:1,5
4:2,8
5:1,3
6:-
7:10
8:4
9:-
10:7
Scriei programul C/C++ care citete de la tastatur un numr natural n (n50) i
construiete n memorie o matrice cu n linii i n coloane, ale crei elemente sunt numere
ntregi citite de la tastatur. Pentru fiecare coloan a matricei, n ordine, programul afieaz
pe ecran cel mai mic numr de pe respectiva coloan. Numerele afiate vor fi separate prin
cte un spaiu.
5.
Exemplu: pentru n=4 i matricea alturat, se vor afia pe ecran
valorile: -7 18 -10 2. (10p.)
122 103 5 10
-7 18 -10 2
107 999 59 4
1 200 100 7

Varianta 35 - informatica
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
Subiectul III (30 de puncte) - Varianta 035

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Pentru generarea tuturor mulimilor de 3 elemente avnd la dispoziie valorile
1,2,3,4,5,6 se poate utiliza un algoritm echivalent cu algoritmul de generare a: (4p.)
a. permutrilor de 3 elemente b. submulimilor mulimii {1,2,3,4,5,6}
c. combinrilor de 6 elemente luate cte 3 d. aranjamentelor de 6 elemente luate cte
3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Subprogramul f este definit alturat.
Ce se va afia n urma executrii
secvenei de mai jos, n care
variabilele a i b sunt de tip ntreg?
a=3; b=9; f(b,a);f(b,b);
(6p.)
void f(int &a,int b)
{
a=a-5;b=a-2;
cout<<a<<b; | printf("%d%d",a,b);
}
3. a) Scriei definiia complet a unui subprogram sum care primete prin parametrul x un
numr natural de cel mult 4 cifre i returneaz suma divizorilor numrului x, diferii de 1 i de
el nsui.
Exemplu: dac x=10 se va returna valoarea 7 (7=2+5). (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<100), apoi n
numere naturale (cu cel mult 4 cifre fiecare). Programul determin, folosind apeluri utile ale
subprogramului sum, pentru fiecare numr natural, suma divizorilor si proprii i afieaz pe
ecran sumele determinate, n ordinea cresctoare a valorilor lor, separate prin cte un spaiu.
(6p.)
Exemplu: dac n=5 i numerele citite sunt 10 2 33 6 11
valorile afiate pe ecran vor fi: 0 0 5 7 14
deoarece suma divizorilor lui 10 este 7, suma divizorilor lui 2 este 0, suma divizorilor lui
33 este 14, suma divizorilor lui 6 este 5, suma divizorilor lui 11 este 0.
4. Fiierul text numere.in conine pe prima linie un numr natural n (0<n<1000), iar pe a
doua linie n numere naturale cu cel mult 9 cifre fiecare.
Scriei un program C/C++ care citete toate numerele din fiier i afieaz pe ecran,
separate prin cte un spaiu, numerele formate doar din cifre distincte i care au exact trei
cifre.
Exemplu: dac fiierul numere.in are urmtorul coninut
7
249 511 4329 2 4313 243 3562
atunci pe ecran se vor afia numerele 249 243 (nu neaprat n aceast ordine). (10p.)

Varianta 35 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 036

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena de instruciuni alturat,
variabilele x i y sunt de tip int. Care este
valoarea pe care trebuie s o aib iniial
variabila x dac la finalul executrii
secvenei s-a afiat un singur caracter
asterisc (*)? (4p.)
y=x;
while(x<=3)
{
cout<<"*"; | printf("*");
y=y+1; x=x+y;
}
a. 0 b. 2 c. 1 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei ce valoare se va afia dac se citesc, n
ordine, urmtoarele valori : 114, 123, 517, 3312,
14, 412, 22, 0. (6p.)
b) Scriei ce valoare se va afia dac se citesc, n
ordine, primele 99 de numere naturale nenule,
urmate de 0 (adic 1,2,3,4,,98,99,0). (4p.)
s0
citete v (valoare natural)
ct timp v 0 execut
a v%10
b [v/10]%10
s s + a*10 + b
citete v

scrie s

c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de un alt tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 036

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde rspunsului
corect.
1. tiind c n urma executrii secvenei
alturate s-a afiat succesiunea de caractere
EXAMEN, care este irul de caractere
memorat de variabila s? (4p.)
x=strlen(s);
for (i=0;i<x/2;i++)
cout<<s[i]<<s[x-i-1];
|printf(%c%c,s[i],s[x-i-1]);
a. EAENMX b. ENXEAM c. NEEXMA d. NEMAXE
2. Se consider o coad, n care au fost introduse iniial, n aceast ordine, dou
numere 2 i 1. Coninutul cozii este reprezentat n figura alturat. Notm cu
AD X operaia prin care se adaug informaia X n coad i cu EL operaia
prin care se elimin un element din coad. Asupra cozii se efectueaz, exact
n aceast ordine, operaiile AD 5; EL; AD 4; EL; AD 7. Care este coninutul
cozii dup executarea operaiilor de mai sus? (4p.)
a. 1 5 4 b. 5 4 7 c. 7 4 5 d. 2 1 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un graf neorientat cu 7 noduri numerotate de la 1 la 7 i muchiile
[1,2],[1,3],[2,3],[2,4],[2,5],[2,6],[4,6],[5,7],[6,7]. Care este numrul
minim de muchii care trebuie eliminate astfel nct graful parial rezultat s conin 3
componente conexe? Care sunt aceste muchii? (6p.)
4. Cte muchii trebuie eliminate dintr-un graf neorientat complet cu 20 de noduri, pentru ca graful
parial obinut s fie arbore? (6p.)
5. Se consider o matrice cu n linii i m coloane (1n30, 1m30), ce
memoreaz numere ntregi de cel mult 4 cifre fiecare. Scriei un program
C/C++ care citete de la tastatur valorile n, m i elementele matricei i
care afieaz pe ecran, separate prin cte un spaiu, valorile minime de
pe fiecare coloan, n ordine de la ultima la prima coloan.
Exemplu: pentru n=4, m=4 i matricea alturat se vor afia pe ecran
valorile 3 7 2 3. (10p.)

3 4 90 10
25 2 7 9
18 3 10 4
3 7 20 3

Varianta 36 - informatica
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
Subiectul III (30 de puncte) - Varianta 036

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Subprogramul scif returneaz suma cifrelor unui numr natural transmis ca parametru.
Care este valoarea expresiei scif(scif(518)+scif(518))? (4p.)
a. 10 b. 14 c. 28 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utilizm metoda backtracking pentru generarea tuturor modalitilor de a scrie numrul 9 ca
sum a cel puin dou numere naturale nenule distincte. Termenii fiecarei sume sunt n
ordine strict cresctoare. Soluiile se genereaz n ordinea: 1+2+6, 1+3+5, 1+8, 2+3+4,
2+7, 3+6 i 4+5. Se aplic exact aceeai metod pentru scrierea lui 12. Scriei, n ordinea
generrii, toate soluiile de forma 2+.... (6p.)
3. Scriei programul C/C++ care, pentru o valoare n (numr natural 0<n<100) citit de la
tastatur, afieaz pe ecran, n ordine cresctoare, separate prin cte un spaiu primele n
numere strict pozitive divizibile cu 5.
Exemplu: pentru n=4 se vor afia pe ecran valorile 5 10 15 20. (4p.)
4. Subprogramul cifra primete prin intermediul parametrului a un numr natural cu cel mult
4 cifre i returneaz ultima cifr par a sa. Dac numrul nu conine cifre pare,
subprogramul returneaz valoarea -1. De exemplu, dac a=8345, subprogramul va returna
4.
a) S se scrie definiia complet a subprogramului cifra. (10p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a
doua linie a fiierului se afl un ir de n numere naturale, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre.
Scriei un program C/C++ care citete numerele din fiier i afieaz pe ecran, folosind
apeluri utile la subprogramului cifra, cel mai mare numr care se poate forma prelund
ultima cifr par a fiecrui element, dac o astfel de cifr exist. n cazul n care toate
valorile din fiier conin doar cifre impare, atunci se va afia valoarea -1. (6p.)
Exemplu: dac fiierul bac.in are coninutul
alturat, pe ecran se va afia: 64220
7
369 113 2 0 33 1354 42

Varianta 36 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 037

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este valoarea pe care trebuie s o
aib iniial variabila ntreag x pentru ca, n
urma executrii secvenei alturate, s se
afieze irul de mai jos?
HHHHHH (4p.)
while (x!=3){
x=x-1;
cout<<"HH"; | printf(HH);
}
a. 0 b. 4 c. 6 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei numrul afiat dac se citesc valorile n=1232 i
k=2. (6p.)
b) Scriei toate perechile de valori care pot fi citite pentru
n i k, cu n<100, astfel nct n urma executrii
algoritmului valoarea afiat s aib 4 cifre. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de un alt
tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n,k
(numere naturale, k9)
nr0; p1
ct timp n 0 execut
c n%10
nr nr+c*p
p p*10
dac c=k atunci
nr nr+c*p
pp*10

n [n/10]

nnr
scrie n


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 037

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Fie declarrile alturate. Dac variabila x
reine informaii despre un elev, precizai
care este varianta corect ce afieaz prima
liter din numele acestuia? (4p.)
struct elev{
char nume[30];
float nota;};
elev x;
a. cout<<x; | printf(%c,x);
b. cout<<x.nume[0]; | printf(%c,x.nume[0]);
c. cout<<x.nume; | printf(%c,x.nume);
d. cout<<nume; | printf(%c,nume);
2. Se consider o coad, n care au fost introduse iniial, n aceast ordine, dou
numere 2 i 1. Coninutul cozii este reprezentat n figura alturat. Notm cu
AD X operaia prin care se adaug informaia X n coad i cu EL operaia prin
care se elimin un element din coad. Asupra cozii se efectueaz, exact n
aceast ordine, operaiile AD 5; EL; AD 4; EL; AD 7; EL; EL. Care este
coninutul cozii dup executarea operaiilor de mai sus? (4p.)
a. 7 b. 4 7 c. 4 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un graf orientat cu 5 vrfuri reprezentat n
figura alturat.
a) Care este matricea de adiacen corespunztoare
grafului? (6p.)
b) Scriei vrfurile care au gradul intern maxim. (6p.)


4. Un ir cu maximum 255 de caractere conine cuvinte separate prin unul sau mai multe spaii.
Cuvintele sunt formate numai din litere mici ale alfabetului englez. Scriei un program Pascal
care citete un astfel de ir i l afieaz modificat, prima i ultima liter a fiecrui cuvnt fiind
afiat ca liter mare.
Exemplu: pentru irul: maine este proba la informatica se va afia:
MainE EstE ProbA LA InformaticA (10p.)

Varianta 37 - informatica
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
Subiectul III (30 de puncte) - Varianta 037

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se utilizeaz un algoritm pentru a genera n ordine lexicografic invers toate permutrile
mulimii {1,2,3,4,5}. Primele patru permutri generate sunt: 54321, 54312, 54231,
54213. A cincea permutare este: (4p.)
a. 54321 b. 54132 c. 53421 d. 54123

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Considerm subprogramul f definit alturat.
Ce valoare are f(7,11)? Dar f(11,7)?
(6p.)
int f(int x,int y)
{if(x<=y) return x-y;
return f(y-x,x-1)+3;}
3. Scriei un program C/C++ care citete numerele naturale nenule n i k (kn100) i un
tablou unidimensional cu n elemente numere ntregi, fiecare avnd cel mult 4 cifre.
Programul modific tabloul, permutnd circular cu k poziii spre stnga, elementele acestuia
i afieaz pe ecran, pe o singur linie, separate prin cte un spaiu, elementele tabloului
obinut.
Exemplu: dac n=4, k=3 i tabloul v=(1,2,3,4), atunci se vor afia n ordine elementele:
4 1 2 3. (10p.)
a) Scriei doar antetul subprogramului nrdiv, care primete prin intermediul parametrului x
un numr natural nenul cu cel mult 4 cifre, i returneaz numrul de divizori primi ai lui x.
(4p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a
doua linie a fiierului se afl un ir format din n numere naturale nenule, desprite prin cte
un spaiu, fiecare numr fiind format din cel mult 4 cifre. Scriei un program C/C++ care
citete numerele din fiier i care afieaz pe ecran, folosind apeluri utile ale subprogramului
nrdiv, pentru fiecare valoare din ir numrul de divizori primi. Numerele afiate vor fi
separate prin cte un spaiu. (6p.)
4.
Exemplu: dac fiierul bac.in are coninutul alturat, pe
ecran se va afia: 3 3 3 2 2 1
6
30 105 140 10 20 5

Varianta 37 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 038

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile urmtoare, scrise n limbajul C/C++, are valoarea 1 dac i numai
dac valorile variabilelor ntregi x i y sunt numere pare? (4p.)
a. x-y==0 b. (x+y)%2==0
c. (x%2==0) || (y%2==0) d. (x%2==0) && (y%2==0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu [z] partea ntreag a numrului real z.
a) Scriei valorile afiate n urma executrii
algoritmului, dac se citete numrul n=3. (6p.)
b) Scriei cea mai mic valoare care poate fi citit
pentru n astfel nct, n urma executrii
algoritmului, n irul valorilor afiate s existe cel
puin 3 numere care au ultima cifr 0 i care s se
afle pe poziii consecutive. (4p.)
citete n (numr natural)
pentru i1,n execut
p1
pentru ji,2,-1 execut
pp*j

scrie [p/(i*2)]

c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se utilizeze o singur
structur repetitiv. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 038

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider o coad, n care au fost introduse iniial, n aceast ordine,
dou numere 2 i 1. Coninutul cozii este reprezentat n figura alturat.
Notm cu AD X operaia prin care se adaug informaia X n coad i cu EL
operaia prin care se elimin un element din coad. Asupra cozii se
efectueaz, exact n aceast ordine, operaiile AD 5; EL; AD 4; EL; EL; AD
8; AD 9; EL. Care este coninutul cozii dup executarea operaiilor de mai
sus? (4p.)
a. 8 9 b. 8 c. 9 d. 4 8 9
2. Considerm c variabila s memoreaz irul de
caractere examen. Care va fi valoarea lui s dup
executarea instruciunilor scrise alturat? (4p.)
s[0]= E;
s[strlen(s)-1]= A;
s[strlen(s)/2-1]= N;
s[strlen(s)/2]= M;
a. ExNMeA b. exAMen c. ExAMeN d. ExameN

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.

Se consider un graf neorientat cu 7 noduri, numerotate de la 1 la 7 i muchiile [1,5],
[2,3], [2,4], [2,5], [3,4], [4,5], [4,7], [5,6], [5,7].
a) Cte cicluri elementare distincte exist n graf? Dou cicluri sunt distincte dac difer prin
cel puin o muchie. (3p.)
b) Care este lungimea maxim a unui ciclu elementar din acest graf? (3p.)
c) Care este numrul minim de muchii care trebuie eliminate astfel nct graful parial obinut
s aib 3 componente conexe? (6p.)
4. Se consider o matrice ptratic cu n linii i n coloane (1n30), ce
memoreaz numere ntregi nenule de cel mult dou cifre fiecare.
Scriei un program C/C++ care citete de la tastatur valoarea n i
elementele matricei i care afieaz pe ecran ultima cifr a produsului
acelor elemente de pe diagonala secundar care au proprietatea c
sunt valori minime pe coloanele lor. Dac nu exist astfel de elemente
n matrice, se va afia mesajul NU EXISTA.
Exemplu: pentru n=4 i matricea alturat se va afia pe ecran
valoarea 1 (3*7=21). (10p.)



Varianta 38 - informatica
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
Subiectul III (30 de puncte) - Varianta 038

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utilizm metoda backtracking pentru generarea tuturor modalitilor de a scrie numrul 9
ca sum a cel puin dou numere naturale nenule distincte. Termenii fiecrei sume sunt
n ordine strict cresctoare. Soluiile se genereaz n ordinea: 1+2+6, 1+3+5, 1+8,
2+3+4, 2+7, 3+6 i 4+5. Se aplic exact aceeai metod pentru scrierea lui 8. Cte
soluii vor fi generate? (4p.)
a. 6 b. 4 c. 5 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a
subprogramului sc, ce valoare are
sc(1000)? Dar sc(901324)?
(6p.)
int sc(long x)
{if(x<10) return x;
return sc(x/10)+x%10;}
3. Scriei n limbajul C/C++ definiia complet a subprogramul Del care are doi parametri: x,
un numr ntreg de cel mult 9 cifre, i y, un numr natural nenul de o cifr. Subprogramul
determin eliminarea tuturor cifrelor lui x mai mari strict dect y i furnizeaz numrul
obinut tot prin intermediul parametrului x. Dac toate cifrele lui x sunt mai mari strict dect
y, atunci x va primi valoarea -1.
Exemplu: dac x=37659 i y=6, dup apel x=365, iar y=6. (10p.)
4. Se consider subprogramul inter, cu doi parametri: x i y (numere ntregi formate din cel
mult patru cifre fiecare); subprogramul interschimb valorile a dou variabile transmise prin
intermediul parametrilor x i y.
a) Scriei n limbajul C/C++ numai antetul subprogramului inter. (4p.)
b) Pe prima linie a fiierului bac.in se afl un numr natural nenul n1000, iar pe a doua
linie a fiierului se afl un ir de n numere naturale nenule, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre. Scriei un program C/C++ care afieaz pe
ecran, n ordine cresctoare, numerele aflate pe a doua linie a fiierului. Numerele vor fi
afiate pe o singur linie, iar ntre dou numere se va lsa un spaiu. Se vor folosi apeluri
utile ale subprogramului inter. (6p.)

Varianta 38 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 039

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este numrul total de atribuiri efectuate la executarea
secvenei de instruciuni alturate? (4p.)
x=4; y=6;
while (y==6) y=y+1;
if (x==y) x=x+1;
a. 4 b. 3 c. 2 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei numrul afiat dac se citete valoarea
n=12939. (6p.)
b) Scriei toate valorile care pot fi citite pentru
variabila n astfel nct, n urma executrii
algoritmului, valoarea afiat s fie 2009. (4p.)
citete n (numr natural)
nr0
p1
ct timp n0 execut
c n%10
dac c>0 i c < 9 atunci
cc+1

nr nr+c*p
p p*10
n [n/10]

scrie nr
c) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de un alt tip. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 039

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Stabilii care dintre urmtorii vectori este vector de tai pentru
arborele cu 7 noduri, numerotate de la 1 la 7, cu rdcina 1,
reprezentat prin matricea de adiacen alturat: (4p.)


0 1 0 0 1 0 0
1 0 1 1 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 1 1
0 0 0 0 1 0 0
0 0 0 0 1 0 0
a. (3, 1, 0, 2, 1, 5, 6) b. (1, 0, 2, 2, 1, 5, 5)
c. (0, 1, 2, 2, 1, 5, 5) d. (2, 1, 0, 2, 1, 5, 2)
2.
Un graf neorientat cu 7 noduri, numerotate de la 1 la 7 are muchiile [1,5], [2,3],
[2,4], [2,5], [3,4], [4,5], [4,7], [5,6], [5,7]. Cte cicluri elementare
distincte exist n graf? Dou cicluri sunt distincte dac difer prin cel puin o muchie. (4p.)
a. 7 b. 4 c. 5 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un graf neorientat cu 7 noduri, numerotate de la 1 la 7, i muchiile [1,5],
[1,6], [2,6], [3,4], [3,6], [4,6]. Dac se elimin nodul 6 i toate muchiile incidente
cu acesta cte componente conexe va avea subgraful rezultat ? (6p.)
4. Considerm declaraiile:
int i,j,a[10][10];
Ce se va afia dup executarea
secvenei de instruciuni alturate?
(6p.)
for(i=1;i<=3;i++)
for(j=1;j<=3;j++) a[i][j]=i+j;
for(i=1;i<=3;i++)
{ for(j=1;j<=3;j++)
cout<<a[i][j]; | printf(%d,a[i][j]);
cout<<endl; | printf(\n);
}
5. Un ir cu maximum 255 de caractere conine cuvinte separate prin cte un spaiu. Cuvintele
sunt formate numai din litere mici ale alfabetului englez. Scriei un program C/C++ care
citete de la tastatur un astfel de ir i l afieaz pe ecran modificat, inversnd prin
oglindire doar cuvintele care ncep cu vocal, ca n exemplu. Se consider vocale literele din
mulimea {a, e, i, o, u}.
Exemplu: pentru irul: maine este proba la informatica se va afia:
maine etse proba la acitamrofni (10p.)

Varianta 39 - informatica
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
Subiectul III (30 de puncte) - Varianta 039

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utilizm metoda backtracking pentru generarea tuturor modalitilor de a scrie numrul 6 ca
sum a cel puin dou numere naturale nenule. Termenii fiecrei sume sunt n ordine
cresctoare. Soluiile se genereaz n ordinea: 1+1+1+1+1+1, 1+1+1+1+2, 1+1+1+3,
1+1+4, 1+2+3, 1+5, 2+2+2, 2+4 i 3+3. Se aplic exact aceeai metod pentru scrierea
lui 9. Care este penultima soluie? (4p.)
a. 2+7 b. 3+3+3 c. 4+5 d. 3+6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului
f, ce valoare are f(3)? Dar f(8)? (6p.)
int f(int x)
{if(x<=4) return x*x-3;
return f(x-3)+4;}
Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a doua
linie a fiierului se afl un ir format din n numere naturale, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre. Scriei un program C/C++ care citete
valorile din fiier i care afieaz pe ecran mesajul DA dac toate elementele pare din ir
sunt n ordine cresctoare i mesajul NU n caz contrar.
3.
Exemplu: dac fiierul bac.in are coninutul
alturat, pe ecran se va afia: DA (10p.)
7
10 113 12 33 42 1354 421
4. Se consider subprogramul pr, care primete prin intermediul parametrului a un numr
natural nenul cu cel mult 9 cifre i returneaz 1 dac numrul este prim i 0 n caz contrar.
a) Scriei numai antetul subprogramului pr. (4p.)
b) Considerm un numr natural nenul n>99 cu cel mult 9 cifre. Din n se obine un ir de
valori prin eliminarea succesiv a ultimei cifre, apoi a ultimelor dou cifre, apoi a ultimelor
trei cifre etc., pn se obine un numr de dou cifre, ca n exemplu.
S se realizeze un program C/C++ care citete de la tastatur numrul n i care, folosind
apeluri utile ale subprogramul pr, afieaz pe ecran, separate prin cte un spaiu, doar
valorile prime din irul obinut din n conform descrierii de mai sus.
Exemplu: pentru n=193124 se obine irul de valori 19312,1931, 193, 19 din care se vor
afia pe ecran doar valorile 1931 193 19 (nu neaprat n aceast ordine). (6p.)

Varianta 39 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 040

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este valoarea expresiei C/C++ alturate? (4p.) 50-(100300/2/(2+3))
a. -30 b. 70 c. -20 d. 60

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei numerele afiate dac se citete valoarea
x=168. (6p.)
b) Scriei cea mai mare valoare din intervalul nchis
[1,50] care poate fi citit pentru variabila x
astfel nct, n urma executrii algoritmului, s se
afieze dou valori egale. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel
dat, n care s se nlocuiasc fiecare structur
ct timp...execut cu cte o structur
repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete x
(numr natural nenul)
d2; y0; z0
ct timp x 1 execut
p 0
ct timp x%d=0 execut
p p+1
x [x/d]

dac p0 atunci
dac y=0 atunci yd

zd

d d+1

scrie y
scrie z


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 040

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider vectorul de tai" al unui arbore cu rdcin t=(3,4,0,3,3,5) ale crui
noduri sunt numerotate de la 1 la 6. Alegei afirmatia corect: (4p.)
a. nodurile 1, 2, 6 sunt noduri de tip frunz b. nodul 3 are un singur descendent direct
(fiu)
c. nodul 6 este tatl nodului 5 d. nodurile 4 i 6 sunt noduri de tip frunz
2. Se consider o coad, n care au fost introduse iniial, n aceast ordine,
dou numere: 2 i 1. Coninutul cozii este reprezentat n figura alturat.
Notm cu AD X operaia prin care se adaug informaia X n coad i cu EL
operaia prin care se elimin un element din coad. Asupra cozii se
efectueaz, exact n aceast ordine, operaiile AD 10; AD 15; EL; AD 4;
EL; AD 20; EL. Care este coninutul cozii dup executarea operaiilor de
mai sus? (4p.)
a. 20 b. 15 4 c. 4 20 d. 15 4 20

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un graf neorientat cu 8 noduri numerotate de la 1 la 8 i muchiile [1,5],
[1,6], [2,6], [3,4], [3,6], [3,7], [4,6], [6,8], [7,8]. Dac se elimin nodul 6 i
toate muchiile incidente cu acesta cte componente conexe va avea subgraful rezultat?(6p.)
4. Considerm declarrile:
int i,j,a[10][10];
Ce se va afia dup executarea
secvenei de instruciuni alturate?
(6p.)
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
if(i<j)a[i][j]=i;
else a[i][j]=j;
for(i=1;i<=3;i++){
for(j=1;j<=3;j++)
cout<<a[i][j];|printf(%d,a[i][j]);
cout<<endl;|printf(\n);}
5. Un ir cu maximum 255 de caractere conine cuvinte formate numai din litere mici ale
alfabetului englez. Fiecare cuvant este urmat de un caracter *. Scriei un program C/C++
care citete un astfel de ir i afieaz pe ecran irul obinut prin eliminarea tuturor apariiilor
primului cuvnt, ca n exemplu.
Exemplu: pentru irul: bine*albine*foarte*bine* se va afia:
*albine*foarte** (10p.)



Varianta 40 - informatica
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
Subiectul III (30 de puncte) - Varianta 040

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utilizm metoda backtracking pentru generarea tuturor modalitilor de a scrie numrul 6 ca
sum a cel puin dou numere naturale nenule. Termenii fiecrei sume sunt n ordine
cresctoare. Soluiile se genereaz n ordinea: 1+1+1+1+1+1, 1+1+1+1+2, 1+1+1+3,
1+1+4, 1+2+3, 1+5, 2+2+2, 2+4 i 3+3. Se aplic exact aceeai metod pentru
scrierea lui 9. Cte soluii de forma 2+... vor fi generate? (4p.)
a. 4 b. 3 c. 2 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. n secvena alturat variabilele i, j i aux sunt ntregi, iar v
memoreaz un tablou unidimensional ale crui elemente au
urmtoarele valori: v[1]=2, v[2]=13, v[3]=1, v[4]=5,
v[5]=-4. Care este numrul de interschimbri care se
efectueaz n urma executrii secvenei alturate? Dai un
exemplu de alte 5 valori pentru elementele tabloului astfel nct,
n urma executrii secvenei alturate, s nu se efectueze nicio
interschimbare. (6p.)
for(i=1;i<5;i++)
for(j=5;j>i;j--)
if(v[i]<v[j])
{ aux=v[i];
v[i]=v[j];
v[j]=aux;
}
Pe prima linie a fiierului bac.in se afl un numr natural nenul n (n1000), iar pe a doua
linie a fiierului se afl un ir format din n numere naturale, desprite prin cte un spaiu,
fiecare numr fiind format din cel mult 4 cifre. Scriei un program C/C++ care citete
numerele din fiier i care afieaz pe ecran mesajul DA dac elementele pare n ir sunt n
ordine cresctoare, iar cele impare sunt n ordine descresctoare, i mesajul NU n caz
contrar.
3.
Exemplu: dac fiierul bac.in are coninutul
alturat, pe ecran se va afia: DA (10p.)
8
10 1133 12 331 42 1354 221 13
4. Considerm definite subprogramele:
- pr, care primete prin intermediul parametrului x un numr natural cu cel mult 4 cifre i
returneaz 1 dac numrul este prim i 0 n caz contrar;
- sdiv, care primete prin intermediul parametrului y un numr natural cu cel mult 4 cifre
i returneaz suma tuturor divizorilor numrului y.
a) Scriei numai antetul subprogramelor pr i sdiv. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (n<1000) i
care afieaz pe ecran toate numerele mai mici dect n cu proprietatea c suma divizorilor
lor este numr prim. Se vor utiliza apeluri utile ale subprogramelor pr i sdiv.
Exemplu: dac n=20, atunci programul va afia: 2 4 9 16. (6p.)

Varianta 40 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 041

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. tiind c variabilele x i y sunt de tip ntreg, care este instruciunea prin care variabilei x i
se atribuie ultima cifr a numrului natural memorat n variabila y? (4p.)
a. x=y%10; b. y=x%10; c. y=x/10; d. x=x/10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [x] partea ntreag numrului real x, iar cu
x%y restul mpririi numrului ntreg x la numrul ntreg
nenul y.
a) Scriei numrul care se afieaz dac se citete
valoarea 100. (6p.)
b) Scriei cel mai mare numr natural de dou cifre care
trebuie citit pentru variabila x, astfel nct algoritmul
s afieze exact dou valori. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
care s conin o singur structur repetitiv. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat
(10p.)
citete x (numr natural)
d2
scrie x
ct timp xd execut
ct timp x%d=0 execut
x[x/d]
scrie x

dd+1



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 041

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte dintre vrfurile grafului neorientat G, reprezentat prin matricea de
adiacen alturat, au gradul un numr par? (4p.)
0 1 0 0 1
1 0 1 1 0
0 1 0 1 1
0 1 1 0 1
1 0 1 1 0
a. 3 b. 1 c. 2 d. 5
2. ntr-o stiv iniial vid au fost executate urmtoarele operaii:
push 3; push 7; pop; push 5; push 1;
unde push a reprezint operaia prin care valoarea a se adaug n stiv, iar pop
reprezint operaia prin care se extrage un element din stiv.
Care este elementul situat n vrful stivei? (4p.)
a. 1 b. 5 c. 7 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Pentru reprezentarea unui arbore cu radacin cu 10 noduri, etichetate cu numere naturale
de la 1 la 10, se utilizeaz vectorul de tai: TATA=(4, 8, 8, 0, 10, 4, 8, 6, 2, 6).
Care sunt frunzele arborelui? (6p.)
4. Ce se afieaz pe ecran n urma executrii
secvenei de program alturate tiind c
variabila i este de tip char? (6p.)
for (i='a';i<='z';i++)
if (i<'d')
cout<<i; | printf("%c",i);
5. Scriei un program C/C++ care citete de la tastatur un numr natural n
(1n23) i apoi construiete n memorie o matrice cu n linii i n coloane,
numerotate de la 1 la n, astfel nct fiecare element situat pe o linie i
(1in) i pe o coloan j (1jn) va fi egal cu suma dintre i i j.
Programul va afia matricea pe ecran, cte o linie a matricei pe cte o linie a
ecranului, elementele de pe aceeai linie fiind separate prin cte un spaiu.
Exemplu: dac n=4, se va afia matricea alturat. (10p.)
2 3 4 5
3 4 5 6
4 5 6 7
5 6 7 8

Varianta 41 - informatica
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
Subiectul III (30 de puncte) - Varianta 041

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Cea mai mare dintre valorile strict negative memorate ntr-un tablou unidimensional NU
exist dac: (4p.)
a.
n tablou sunt memorate numai valori strict negative
b. n tablou exist cel puin o valoare negativ
c. n tablou sunt memorate valori nenule pozitive i negative
d. n tablou sunt memorate numai valori strict pozitive

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
tiind c p este un vector cu 3
componente ntregi (vector declarat
global) cu ce trebuie nlocuite i
n definiia subprogramului G astfel
nct n urma apelului G(0) s se
afieze toate numerele de 3 cifre,
fiecare cifr fiind nenul. Fiecare numr
va fi afiat o singur dat.
(6p.)
void G(int k)
{ int i;
for(i=1;i<=;i++)
{p[k]=i;
if()G(k+1);
else
cout<<p[0]<<p[1]<<p[2]<<endl; |
printf("%d%d%d\n",p[0],p[1],p[2]);
}
}
3. Scriei un subprogram MULT, cu doi parametri, care primete prin intermediul parametrului a
un tablou unidimensional cu cel mult 100 de elemente, numere naturale de cel mult 4 cifre
fiecare, i prin intermediul parametrului n un numr natural nenul, n<100, ce reprezint
numrul de elemente din tablou. Subprogramul verific dac tabloul conine toate valorile din
mulimea {1,2,,n}. n caz afirmativ subprogramul returneaz valoarea 1, iar altfel
subprogramul returneaz valoarea 0. (10p.)
4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie un ir de n numere naturale de o singur cifr, separate prin cte un spaiu. irul
conine cel puin o valoare par i una impar.
a) Scriei un program C/C++ care determin n mod eficient, din punct de vedere al timpului
de executare, cea mai mare cifr par i cea mai mic cifr impar dintre cele situate pe a
doua linie a fiierului. Cifrele determinate vor fi afiate pe ecran, pe o singur linie, separate
printr-un spaiu.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
7
3 5 2 1 6 3 1
atunci pe ecran se vor afia valorile: 6 1. (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 41 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 042

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. tiind c variabilele x i y sunt de tip ntreg, care este instruciunea prin care variabilei x i
se atribuie cifra zecilor numrului natural cu cel puin dou cifre memorat de variabila y?
(4p.)
a. x=y%10/10; b. x=y/10%10; c. x=y%10; d. x=x/100;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea care se va afia la finalul executrii
algoritmului dac se citesc valorile x=15 i y=25.
(6p.)
citete x,y (numere naturale)

ct timp y>0 execut
zx%y
x2*y
y2*z

scrie x
b) Dac pentru y se citete valoarea 3, scriei toate numerele formate dintr-o singur cifr
care pot fi citite pentru variabila x astfel nct, pentru fiecare dintre acestea, la finalul
executrii algoritmului s se afieze o valoare de forma 2
p
, unde p este un numr
natural. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat n care structura ct
timp...execut s fie nlocuit cu o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 042

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte dintre vrfurile grafului neorientat G, reprezentat prin matricea de
adiacen alturat, au gradul 0? (4p.)
0 0 0 1 1
0 0 0 0 0
0 0 0 0 0
1 0 0 0 0
1 0 0 0 0
a. 2 b. 1 c. 3 d. 0
2. ntr-o coad iniial vid au fost executate urmtoarele operaii:
add 1; add 2; out; add 3; add 4;
unde add x reprezint operaia prin care x se adaug n coad, iar out reprezint
operaia prin care se extrage un element din coad.
Ce valoare are elementul care a fost extras din coad? (4p.)
a. 3 b. 2 c. 1 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.
Pentru reprezentarea unui arbore cu radacin cu 9 noduri, etichetate cu numere naturale de
la 1 la 9, se utilizeaz vectorul de tai: T=(5,0,2,7,3,3,2,4,7).
a) Care este lungimea maxim a unui lan elementar care leag dou noduri oarecare din
acest arbore? (3p.)
b) Care sunt extremitile acestui lan? (3p.)
4. Variabila a memoreaz un tablou bidimensional cu 5
linii si 5 coloane, numerotate de la 1 la 5, ale crui
elemente sunt numere ntregi. Care este cel mai
mare element situat pe diagonala principal a
tabloului construit n urma executrii secvenei de
program alturate ? (6p.)
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
a[i][j]=j;
5. Scriei programul C/C++ care citete de la tastatur un ir de cel mult 40 de caractere,
format doar din litere mici ale alfabetului englez, i care afieaz pe ecran, pe o singur
linie, toate vocalele ce apar n irul citit. Vocalele vor fi afiate n ordinea apariiei lor n ir,
separate prin cte un spaiu, ca n exemplu. Se consider ca fiind vocale urmtoarele litere:
a, e, i, o, u. Dac irul citit nu conine nicio vocal, se va afia pe ecran mesajul
fara vocale.
Exemplu: dac se citete irul calculator atunci pe ecran se va afia: a u a o (10p.)

Varianta 42 - informatica
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
Subiectul III (30 de puncte) - Varianta 042

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz toate permutrile mulimii {1,2,3,4}. Dac
primele trei permutri generate sunt, n acest ordine: 1234, 1243, 1324 precizai care
este permutarea generat imediat dup 3412. (4p.)
a. 3214 b. 3413 c. 4123 d. 3421

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f are definiia alturat. Ce
valoare are f(7)? Dar f(100)? (6p.)
int f(int x)
{if(x%6==0)return x;
else return f(x-1);
}
3. Scriei definiia complet a unui subprogram P, cu trei parametri, care primete prin
intermediul primului parametru, a, un tablou unidimensional de cel mult 100 de numere
ntregi, cu cel mult 4 cifre fiecare, prin intermediul celui de-al doilea parametru, n, numrul
efectiv de elemente ale tabloului, iar prin parametrul k, un numr natural (k<101) i
returneaz cea mai mare sum de k termeni care se poate obine adunnd k elemente ale
tabloului.
Exemplu: dac n=6 i k=4, iar irul este format din elementele (5, 2, 5, 4, 1, 3),
atunci la apel se va returna 17. (10p.)
4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000) iar pe
doua linie, separate prin cte un spaiu, n numere naturale formate din cel mult dou cifre.
a) Scriei un program C/C++ care determin n mod eficient, din punct de vedere al timpului
de executare, dac numerele situate pe a doua linie a fiierului sunt n ordine strict
cresctoare. n caz afirmativ, programul va afia pe ecran mesajul DA, altfel va afia mesajul
NU.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
7
3 5 2 1 5 23 1
atunci pe ecran se va afia: NU (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 42 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 043

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este instruciunea prin care variabilei x i se atribuie valoarea sumei cifrelor numrului
natural format din exact trei cifre, memorat de variabila ntreag y? (4p.)
a. x=y/100+y/10%10+y%10; b. x=y+y/10+y/100;
c. x=y%10+y%10/10+y/100; d. x=y%10+y%100+y%1000;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea pe care o va afia algoritmul dac se
citesc, n aceast ordine, numerele 30 i 25. (6p.)
b) Dac se citete pentru variabila y valoarea 26, scriei
toate numerele naturale de cel mult dou cifre care pot fi
citite pentru variabila x, astfel nct la finalul executrii
algoritmului s se afieze valoarea 13. (4p.)
c) Scriei n pseudocod un algoritm care s fie echivalent
cu cel dat n care structura ct timp...execut s
fie nlocuit cu o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x,y (numere naturale)

ct timp x*y0 execut
daca x>y atunci
xx%y
altfel
yy%x


scrie x+y


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 043

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Un graf neorientat este reprezentat prin matricea de adiacen
alturat. Cte grafuri pariale distincte, formate doar din noduri cu
gradul egal cu 2, se pot obine din graful dat? Dou grafuri sunt
distincte dac matricele lor de adiacen difer. (4p.)
0 1 0 0 1
1 0 1 1 0
0 1 0 1 1
0 1 1 0 1
1 0 1 1 0
a. 3 b. 1 c. 2 d. 0
2. ntr-o coad iniial vid au fost executate urmtoarele operaii:
add 1; add 2; out; add 3; add 4; out;
unde add x reprezint operaia prin care valoarea x se adaug n coad, iar out
reprezint operaia prin care se extrage un element din coad.
Cte elemente conine coada dup efectuarea operaiilor de mai sus? (4p.)
a. 1 b. 2 c. 0 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Pentru reprezentarea unui arbore cu radacin cu 10 noduri, etichetate cu numere naturale
de la 1 la 10, se utilizeaz vectorul de tai: TATA=(4, 8, 8, 0, 10, 4, 8, 6, 2, 6).
Care este radcina arborelui i cte frunze are acesta? (6p.)
4. Ce se afieaz n urma executrii secvenei de
program alturate, tiind c variabilele a i b
pot memora cte un ir de cel mult 12
caractere? (6p.)
strcpy(a,"informatica");
strcpy(b,a);
cout<<strlen(b);
| printf("%d",strlen(b));
Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n23) i apoi
construiete n memorie o matrice cu n linii i n coloane astfel nct elementele situate pe
diagonala principal sa fie egale cu 2, cele situate deasupra diagonalei principale s fie
egale cu 1, iar cele situate sub diagonala principal s fie egale cu 3.
5.
Programul va afia matricea pe ecran, cte o linie a matricei pe o linie a
ecranului, cu cte un spaiu ntre elementele fiecrei linii.
Exemplu: dac n este 4 atunci programul va construi i va afia
matricea alturat: (10p.)
2 1 1 1
3 2 1 1
3 3 2 1
3 3 3 2

Varianta 43 - informatica
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
Subiectul III (30 de puncte) - Varianta 043

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz numerele formate din cte 3 cifre distincte din
mulimea {1,3,5,7}. Dac primele trei numere generate sunt, n acest ordine: 135,
137, 153 care este cel de-al patrulea numr generat? (4p.)
a. 315 b. 173 c. 157 d. 357

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Subprogramul f are definiia alturat. Ce
valoare are f(3)? Dar f(10)? (6p.)
int f(int x)
{if(x==0)return 0;
else return f(x-1)+2;
}
3. Scriei definiia complet a unui subprogram P cu doi parametri, care primete prin
intermediul primului parametru, n, un numr natural nenul (1n100) i prin intermediul
celui de-al doilea parametru, a, un tablou unidimensional cu elementele numerotate de la 1
la n, numere ntregi, de cel mult 4 cifre fiecare, i returneaz suma tuturor numerelor impare
aflate pe poziii pare n tablou.
Exemplu: dac n=6, iar irul este format din elementele (3, 2, 7, 1, 4, 3), atunci la
apel se va returna 4. (10p.)
4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie n cifre, separate prin cte un spaiu.
a) Scriei un program C/C++ care determin n mod eficient, din punct de vedere al timpului
de executare, cea mai mare cifr dintre cele situate pe a doua linie a fiierului numere.txt
i numrul de apariii ale acesteia. Valorile determinate se vor afia pe ecran, separate
printr-un spaiu.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
11
2 5 3 1 5 8 9 2 7 3 4
atunci pe ecran se va afia: 9 1. (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 43 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 044

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este instructiunea prin care variabilei ntregi x i se atribuie valoarea cifrei sutelor
numrului natural cu cel puin 4 cifre memorat n variabila ntreag y? (4p.)
a. x=y%10/10; b. x=y/10/10; c. x=y%100; d. x=y/100%10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mparirii numrului natural x la
numrul natural nenul y.
a) Scriei numrul care se afieaz dac se citete
valoarea 274. (6p.)
citete x (numr natural)

y0
ct timp x>y execut
yy*10+9-x%10;

scrie y
b) Scriei un numr natural de 3 cifre care poate fi citit pentru variabila x, astfel nct, la finalul
executrii algoritmului s se afieze valoarea 1111. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat n care structura ct
timp...execut s fie nlocuit cu o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 044

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Graful orientat G este reprezentat prin matricea de adiacen alturat.
Cte vrfuri din graful dat au gradul interior egal cu gradul exterior?
(4p.)
0 1 0 0 1
1 0 1 0 0
0 0 0 1 1
0 1 0 0 1
1 0 0 0 0
a. 0 b. 1 c. 3 d. 2
2. ntr-o stiv iniial vid au fost executate urmtoarele operaii:
push 1; pop; push 2; pop; push 3; push 4; pop; push 5;
unde push x reprezint operaia prin care x se introduce n stiv, iar pop reprezint
operaia prin care se extrage un element din stiv.
Cte elemente conine stiva dupa efectuarea operaiilor de mai sus? (4p.)
a. 3 b. 8 c. 3 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Pentru reprezentarea unui arbore cu radacin cu 9 noduri, etichetate cu numere naturale de
la 1 la 9, se utilizeaz vectorul de tai: T=(7,0,2,7,6,2,3,6,5). Care sunt nodurile
arborelui ce au exact 2 descendeni direci (fii)? (6p.)
4. Ce valoare se va afia pe ecran n urma
executrii secvenei de program alturate,
tiind c a este o variabil care
memoreaz un ir de caractere, iar i este
o variabil de tip ntreg? (6p.)
strcpy(a,"info");
for(i=2;i<strlen(a);i++)
cout<<a[i]; | printf("%c",a[i]);
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (0<n23) i apoi
construiete n memorie o matrice cu n linii si n coloane, format din numere naturale
nenule mai mici sau egale cu n, astfel nct s nu existe dou linii cu aceeai sum a
elementelor i nici dou coloane cu aceeai sum a elementelor.
Programul va afia matricea pe ecran, cte o linie a matricei pe o linie a ecranului, cu un
spaiu ntre elementele fiecrei linii.
Exemplu: dac n=3 atunci o soluie posibil este urmtoarea matrice:
1 1 1
1 1 2
1 2 3 (10p.)

Varianta 44 - informatica
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
Subiectul III (30 de puncte) - Varianta 044

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele variante reprezint antetul corect al unui subprogram care primete
prin parametrii x i y dou numere ntregi i returneaz, prin parametrul m, cea mai mic
dintre cele dou valori x i y? (4p.)
a. int minim(int x,int y,int m)
b. void minim(int x,int y,int &m)
c. int minim(int x,int y)
d. void minim(int x,int y,int m)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f are definiia alturat.
Ce valoare are f(6,5)? Dar f(5,10)?
(6p.)
int f(int x,int y)
{if(x==y)return x;
else if(x<y)return f(x+1,y-1);
else return f(x-1,y);
}
3. Scriei definiia complet a unui subprogram P, cu doi parametri, a i b, numere naturale cu
cel mult 4 cifre fiecare i afieaz pe ecran, separate prin cte un spaiu, numerele aflate n
intervalul nchis determinat de valorile a i b, care sunt ptratele unor numere prime.
Exemplu: pentru a=40 i b=1 se va afia: 4 9 25 (nu neaprat n aceast ordine).. (10p.)
4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale formate din cel mult dou cifre.
a) Scriei un program C/C++ care determin n mod eficient, din punct de vedere al timpului
de executare, toate numerele coninute de a doua linie a fiierului care apar de cel puin
dou ori n acest linie. Programul va afia pe ecran numerele determinate, o singur dat,
n ordine crescatoare, pe aceeai linie, separate prin cte un spaiu.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
44 2 54 74 2 44 9 2
atunci pe ecran se va afia: 2 44 (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 44 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 045

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este instruciunea prin care variabilei x i se atribuie numrul obinut prin inversarea
ordinii cifrelor numrului natural format din exact 2 cifre, memorat n variabila ntreag y?(4p.)
a. x=y/10*10+y%10; b. x=y%10*10+y/10;
c. x=y%10+y/10*10; d. x=y%10+y/10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod:
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea care va fi afiat de algoritm dac se
citesc, n aceast ordine, valorile 12 i 3. (6p.)
b) Dac valoarea citit pentru variabila y este 7, scriei
care este cea mai mare valoare care trebuie citit pentru
x, astfel nct algoritmul s afieze numrul 0. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel
dat n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv cu test
final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x,y (numere naturale)
z1
t0
ct timp xz execut
dac x%z=y atunci
tz

zz+1

scrie t

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 045

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Graful neorientat G este dat prin matricea de adiacen alturat.
Cte vrfuri ale grafului G au gradul 1? (4p.)
0 0 0 0 1
0 0 1 1 0
0 1 0 1 1
0 1 1 0 1
1 0 1 1 0
a. 1 b. 2 c. 3 d. 0
2. ntr-o stiv iniial vid au fost executate urmtoarele operaii:
push 1; pop; push 2; push 4; pop; push 5;
unde push x reprezint operaia ce introduce valoarea x n stiv, iar pop reprezint
operaia prin care se extrage un element din stiv.
Care este suma valorilor coninute de stiv dup efectuarea operaiilor de mai sus? (4p.)
a. 9 b. 7 c. 5 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Pentru reprezentarea unui arbore cu rdcin cu 9 noduri, etichetate cu numere naturale de
la 1 la 9, se utilizeaz vectorul de tai: T=(2,0,1,7,3,1,2,4,1). Care sunt
descendenii direci (fiii) ai rdcinii i cte frunze are arborele dat? (6p.)
4. Variabila a memoreaz elementele numere ntregi ale unui
tablou bidimensional cu 3 linii i 3 coloane. Care este suma
elementelor aflate pe diagonala secundar a tabloului
construit n urma executrii secvenei de program alturate ?
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=j;
5. Scriei programul C/C++ care citete de la tastatur un ir de cel mult 40 de caractere,
format doar din litere ale alfabetului englez, i care afieaz pe ecran toate irurile obinute
prin eliminarea succesiv a cte unei singure litere din irul citit, ca n exemplu. irurile se
vor afia cte unul pe cte o linie a ecranului.
Exemplu: dac se citete irul abbc atunci pe ecran se va afia:
bbc
abc
abc
abb (10p.)

Varianta 45 - informatica
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
Subiectul III (30 de puncte) - Varianta 045

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz toate cuvintele de cte 3 litere din mulimea
{a,b,c}. Dac primele patru cuvinte generate sunt, n acest ordine: aaa, aab, aac,
aba, care este cel de-al optulea cuvnt generat? (4p.)
a. acb b. acc c. aca d. bca

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Subprogramul f are definiia alturat. Ce valoare are
f(4)? Dar f(11)? (6p.)
int f(int x)
{if(x<1)return 1;
else return f(x-3)+1;
}
3. Scriei definiia complet a unui subprogram P, cu doi parametri, a i b, numere naturale cu
cel mult 4 cifre fiecare i afieaz pe ecran, separate prin cte un spaiu, numerele aflate n
intervalul nchis determinat de valorile a i b, care sunt cuburile unor numere prime.
Exemplu: pentru a=40 i b=1 se va afia: 8 27 (nu neaprat n aceast ordine). (10p.)
4. Fiierul text numere.txt conine pe prima linie un numr natural n (0<n<100000), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale formate din cel mult 2 cifre.
a) Scriei un program C/C++ care afieaz pe ecran, n mod eficient din punct de vedere al
timpului de executare, toate numerele situate pe a doua linie a fiierului, n ordinea
cresctoare a valorilor lor, separate prin cte un spaiu. Dac un numr apare n fiier de
mai multe ori el va fi afiat o singur dat.
Exemplu: dac fiierul numere.txt are urmtorul coninut:
7
12 21 22 11 9 12 3
atunci pe ecran se va afia: 3 9 11 12 21 22 (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 45 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 046

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag n memoreaz un numr natural impar. Care dintre urmtoarele expresii
C/C++ are valoarea 1? (4p.)
a.
!(n%2)
b.
n%2==0
c.
n%2!=0
d. !((n+1)%2==0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [a] partea ntreag a numrului real a.
a)
Scriei valoarea afiat dac se citete numrul
n=10326. (6p.)
b)
Scriei pentru cte numere de forma , unde a
este cifra sutelor, b este cifra unitilor i ab, valoarea
afiat este 1. (4p.)
c)
Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
d)
Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura ct timp...execut
cu o structur repetitiv cu test final. (6p.)
citete n
(numr natural)
s0
nr0
ct timp n0 execut
dac n%2=0 atunci
ss*10+n%10

n[n/10]

dac s0 atunci
nr1

scrie nr

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 046

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre urmtoarele propoziii este fals pentru graful orientat G dat
prin matricea de adiacen alturat? (4p.)
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
1 1 0 0 0
0 0 0 1 0
a. exist cel puin un nod n graful G care
are gradul intern egal cu cel extern
b. graful G nu are circuite
c. exist cel puin un drum ntre oricare
dou noduri ale grafului G
d. graful G are 9 arce
2. n secvena alturat, variabila v memoreaz
elementele unei matrice cu liniile i coloanele
numerotate de la 1 la n, iar toate celelalte
variabile sunt ntregi. Dac 1k<n, atunci
executarea secvenei determin: (4p.)
for ( i=k+1; i<=n; i++)
for (j=1; j<=n; j++)
v[i-1][j] = v[i][j];
n=n-1;
a. eliminarea liniei k din matrice b. adugarea liniei k n matrice
c. eliminarea coloanei k din matrice d. adugarea coloanei k n matrice

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care sunt nodurile de tip frunz ale arborelui cu rdcin, cu 9 noduri, numerotate de la 1 la 9,
al crui vector de tai este (6, 6, 8, 8, 7, 7, 0, 7, 7)? (6p.)
4. Notm cu Push(x) operaia prin care se introduce ntr-o stiv valoarea x, iar cu Pop
operaia prin care se extrage un element din stiv.
a) Cte elemente are stiva, iniial vid, dup executarea secvenei urmtoare de instruciuni?
Push(8); Push(2); Push(4); Pop; Push(3); Pop; Pop; (3p.)
b) Care este suma acestor elemente rmase n stiv? (3p.)
5.
Se consider un text format doar din spaii i litere mici ale alfabetului englez, care ncepe
cu o liter i care conine cel puin o vocal din multimea {a,e,i,o,u}. Scriei programul
C/C++ care citete de la tastatur un ir cu cel mult 100 de caractere, ca cel descris mai
sus i care determin transformarea acestuia prin nlocuirea fiecrei vocale din text cu litera
imediat urmtoare din alfabet (a se nlocuiete cu b, e se nlocuiete cu f .a.m.d.).
Programul va afia pe ecran irul obinut.
Exemplu: dac irul citit este examen de bacalaureat, dup modificare se afieaz:
fxbmfn df bbcblbvrfbt (10p.)

Varianta 46 - informatica
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
Subiectul III (30 de puncte) - Varianta 046

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un program genereaz, n ordine cresctoare, numerele naturale de exact 5 cifre din
mulimea {1, 2, 3, 4, 5}. Fiecare dintre numerele generate are cifrele distincte dou cte
dou. Primele 3 numere astfel generate sunt: 12345, 12354, 12435. Care este numrul
generat imediat dup 12543? (4p.)
a. 15342 b. 12534 c. 13245 d. 13452

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Se consider subprogramul f, definit
alturat:
Ce valoare are f(7)? Dar f(100)?
(6p.)
long f(int n)
{
if(!n) return 0;
else return f(n-1)+2*n;
}
3. Fiierul bac.txt conine pe prima linie un numr natural n (n100), iar pe a doua linie,
separate prin cte un spaiu, n numere naturale nenule, cu cel mult 4 cifre fiecare. Scriei
programul C/C++ care citete de la tastatur un numr natural k (k25), construiete n
memorie i afieaz pe ecran un tablou unidimensional ce conine, n ordinea n care au fost
citite, numerele de pe a doua linie a fiierului bac.txt care au cel puin k divizori.
Exemplu: dac k=5, iar fiierul are coninutul alturat, atunci
tabloul care se afieaz este:
100 400 56 (10p.)
6
100 9 400 56 7 10
4. a) Scriei n limbajul C/C++ doar antetul subprogramului cifre, care prin intermediul
parametrului nr primete un numr natural de cel mult 9 cifre i furnizeaz prin intermediul
parametrilor nc i sc numrul de cifre i respectiv suma cifrelor din scrierea lui nr. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (10 n 10
9
) i
verific, folosind apeluri utile ale subprogramului cifre, dac n scrierea n baza 10 a lui n
se gsete cel puin o cifr care s fie media aritmetic a celorlalte cifre din componena lui
n. Programul afieaz pe ecran mesajul DA n caz afirmativ i NU n caz contrar.
Exemplu: pentru n=27989 programul va afia mesajul DA, deoarece n scrierea lui n apare
cifra 7 care este media aritmetic a celorlalte cifre din scrierea lui n: 7=(2+9+8+9)/4.
Pentru n=7351 se va afia mesajul NU. (6p.)

Varianta 46 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 047

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele variabile nu i modific valoarea n urma
executrii secvenei de instruciuni alturate, oricare ar fi valorile lor
iniiale? (a,b,c sunt variabile de tip int). (4p.)
c=2*a-b;
a=a-b; a=c-a;
b=2*a-c;
a. niciuna b. doar c c. doar a i c d. doar a i b

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [a] partea ntreag a numrului real a.
a) Scriei valoarea afiat dac se citete numrul 27349.
(6p.)
b) Scriei cte numere naturale de trei cifre pot fi citite
pentru variabila n, astfel nct valoarea afiat s fie 3.
(4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat
n care s se nlocuiasc structura repet...pn
cnd cu o structur repetitiv cu test iniial. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
citete n
(numr natural nenul)
max0
repet
n[n/10]
dac max<n%10 atunci
maxn%10

pn cnd n=0
scrie max


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 047

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre urmtorii vectori NU poate reprezenta vectorul de tai al unui arbore cu
rdcin, cu 5 noduri, numerotate de la 1 la 5? (4p.)
a. 3 1 0 1 2 b. 2 0 1 1 2 c. 3 4 0 2 3 d. 4 1 1 0 2
2. Cele 5 vagoane, din figura alturat, numerotate de la
1 la 5, trebuie mutate de pe linia A pe linia B.
Vagoanele sunt manevrate unul cte unul. Orice
vagon poate fi mutat doar de pe linia A pe linia C sau
de pe linia C pe linia B. Oricare alt manevr nu este
posibil. Care dintre irurile de vagoane de mai jos,
citite de la stnga la dreapta, nu poate fi obinut pe
linia B? (4p.)

a. 5 3 4 2 1 b. 4 2 5 3 1 c. 3 2 4 1 5 d. 1 2 3 4 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Variabila s reine irul de caractere bacalaureat. Ce se afieaz la executarea
instruciunii de mai jos?
cout<<strchr(s,a); | printf(%s,strchr(s,a)); (6p.)
4. n declararea alturat, cmpurile a i b ale nregistrrii reprezint
numrtorul, respectiv numitorul unei fracii. Care este expresia cu
care se pot nlocui punctele de suspensie n secvena de mai jos
astfel nct dac fracia memorat n variabila f se simplific prin
numrul natural nenul k se afieaz mesajul DA?
if ( ) cout<< DA; | printf(DA); (6p.)
struct rap
{ int a, b; } f;
int k;
Scriei un program C/C++ care citete de la tastatur dou numere naturale nenule m i n
(m10, n10) i cele m*n elemente (numere naturale mai mici dect 100) ale unui tablou
bidimensional cu m linii, numerotate de la 1 la m, i n coloane, numerotate de la 1 la n;
programul construiete n memorie i afieaz pe ecran tabloul dup eliminarea liniilor de
rang impar.
5.
Exemplu: pentru m=4 i n=3 i tabloul:

21 22 23
24 25 26
27 28 29
30 31 32
se va afia:

24 25 26
30 31 32

(10p.)

Varianta 47 - informatica
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
Subiectul III (30 de puncte) - Varianta 047

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. ntr-un penar sunt opt creioane: trei sunt roii, dou albastre i trei negre. Dac scoatem din
penar cinci creioane, cte posibiliti exist ca cel puin dou dintre ele s fie roii? (4p.)
a. 6 b. 12 c. 15 d. 20

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Se consider subprogramul f definit
alturat.
Ce valoare are f(5)? Dar f(100)?
(6p.)
long f(int n)
{
if(n<0) return 0;
else return f(n-2)+n;
}
Fiierul text bac.txt conine pe prima linie un numr natural n (n<100), iar pe a doua
linie, separate prin cte un spaiu, n numere naturale, mai mici dect 30000 fiecare.
Scriei un program C/C++ care citete de la tastatur un numr natural k (k<50) precum i
numerele din fiierul bac.txt i afieaz pe ecran, cu cte un spaiu ntre ele, toate
numerele de pe a doua linie a fiierului care sunt puteri ale lui k. Dac nu exist un
asemenea numr pe a doua linie a fiierului, se afieaz pe ecran mesajul NU. Un numr
natural x este putere a lui k dac exist un numr natural y astfel nct x=k
y
.
3.
Exemplu: dac se citete de la tastatur
k=2, iar fiierul are coninutul alturat, atunci
pe ecran se afieaz numerele:
32 256 2 1 (10p.)
8
32 56 317 809 256 2 1 60
4. a) Scriei n limbajul C/C++ doar antetul unui subprogram cif, care primete prin
intermediul primului parametru, nr, un numr natural cu cel mult 9 cifre i furnizeaz prin
intermediul celui de-al doilea parametru, s, suma cifrelor din scrierea lui nr. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural n (0<n<25), apoi
un ir de n numere naturale nenule cu cel mult 9 cifre fiecare i care afieaz pe ecran,
separate prin cte un spaiu, numerele din ir care au suma cifrelor maxim, folosind apeluri
utile ale subprogramului cif.
Exemplu: dac pentru n=8 se citete irul de numere 274 56018 354 8219 293 287
932 634 atunci, pe ecran, se afieaz numerele 56018 8219. (6p.)

Varianta 47 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 048

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele a, b i c, de tip int, pot fi iniializate cu oricare numere naturale impare
distincte. tiind c c este divizor al lui a, iar b nu este multiplu al lui c, care dintre
urmtoarele expresii scrise n C/C++ are valoare 1? (4p.)
a. !((a % c!=0) || !(b % c!=0)) b. (a % c!=0) && !(b % c!=0)
c. (a % c!=0) || !(b % c!=0) d. !(c % a!=0) && (c % b!=0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [z] partea ntreag a numrului real z.
a) Scriei valorile afiate dac pentru n se citete valoarea
6, iar pentru x se citesc n ordine urmtoarele valori:
2008, 1965, 2727, 1861, 11021, 165. (6p.)
b) tiind c valoarea citit pentru n este 4, scriei un set
de valori distincte, numere naturale cu exact 3 cifre,
care trebuie citite pentru variabila x, astfel nct setul
de valori afiate n urma executrii algoritmului s fie
identic cu setul de valori citite pentru x . (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat, n
care s se nlocuiasc structura pentru...execut cu
o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n
(numr natural nenul )
pentru i1,n execut
citete x
(numr. natural)
nr0
ct timp x>0 execut
nrnr*100+x%10
x[x/100]

ct timp nr>0 execut
xx*10+nr%10
nr[nr/10]

scrie x



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 048

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Pe tija 1 sunt aezate 5 bile, numerotate de la 1 la 5, ca n figur. Bilele trebuie mutate pe
tija 3 putndu-se folosi ca manevr
tija 2. Variantele de mai jos
reprezint aezarea bilelor de la
stnga la dreapta, pe tija 3. tiind
c o bil nu poate trece de pe tija 2
pe tija 3 dect prin tija 1, pentru
care dintre ele s-au folosit cele mai
puine mutri? (o mutare reprezint
trecerea de pe o tij pe alta.) (4p.)
a. 1 2 4 5 3 b. 4 2 5 3 1 c. 2 1 4 3 5 d. 1 2 3 4 5
2. In secvena alturat, variabilele s1,
s2 i s3 rein iruri de caractere.
Dup executarea acesteia, variabila
ntreag val primete valoarea 1
dac (4p.)
if(!(strcmp(s1,s2) || strcmp(s1,s3)))
val=1;
else
val=2;
a. s1, s2, s3 rein iruri identice de
caractere
b. s1, s2, s3 rein iruri de caractere
ordonate lexicografic
c. s1, s2, s3 rein iruri de caractere de
lungimi diferite
d. s1 este obinut prin concatenarea irurilor
reinute n s2 i s3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care sunt arcele care alctuiesc un drum elementar de lungime
maxim de la nodul 1 la nodul 5 pentru graful orientat cu ase
noduri, numerotate de la 1 la 6, reprezentat prin matricea de
adiacen alturat? (6p.)

0 1 1 1 0 0
0 0 0 0 0 1
0 1 0 1 0 0
0 0 1 0 0 1
0 1 0 0 0 0
0 0 0 0 1 0
4. n declararea alturat variabila a reine n cmpurile x i y
coordonatele unui punct n planul xOy. Care este expresia a crei
valoare reprezint distana punctului respectiv fa de originea axelor
de coordonate? (6p.)
struct punct
{
float x,y;
}a;
Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n<10) i
care construiete n memorie i afieaz pe ecran un tablou bidimensional cu n linii i n
coloane astfel nct parcurgndu-l linie cu linie de sus n jos i fiecare linie de la stnga
la dreapta se obin primele n
2
numere pare nenule n ordine strict cresctoare, ca n
exemplu.
5.
Exemplu: pentru n=4, se construiete i se afieaz tabloul
alturat. (10p.)
2 4 6 8
10 12 14 16
18 20 22 24
26 28 30 32

4 5 2 3 1
Tija 2
Tija 3
Tija 1
Varianta 48 - informatica
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
Subiectul III (30 de puncte) - Varianta 048

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul f definit alturat.
Ce valoare are f(250)?
(4p.)
int f(int x)
{
if(x%3==0) return 0;
else return 1+f(x/3);
}
a. 1 b. 2 c. 3 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se genereaz prin metoda backtracking mulimile distincte ale cror elemente sunt numere
naturale nenule i care au proprietatea c suma elementelor fiecrei mulimi este egal cu
7. Astfel, sunt generate, n aceast ordine, mulimile: {1,2,4}, {1,6}, {2,5}, {3,4},
{7}. Folosind aceeai metod pentru a genera mulimile distincte ale cror elemente sunt
numere naturale nenule i care au proprietatea c suma elementelor fiecrei mulimi este
egal cu 9, stabilii n ce ordine sunt generate urmtoarele mulimi: M1={2,3,4};
M2={3,6}; M3={2,7}; M4={4,5}. (6p.)
3. Se consider subprogramul cmdiv care primete prin parametrii x i y dou valori ntregi
pozitive (0<x<100 i 0<y<100) i returneaz cel mai mare divizor comun al lor.
a) Scriei doar antetul subprogramului cmdiv. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n ( 1 n 100),
determin, utiliznd apeluri utile ale subprogramului cmdiv, i afieaz pe ecran numrul
fraciilor ireductibile de forma cu x numr natural (1xn).
Exemplu: pentru n=6 se afieaz 2, deoarece, dintre fraciile doar dou
sunt ireductibile : i . (6p.)
4. Fiierul text 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 de pe
a doua linie a fiierului care apar o singur dat pe aceast linie. Numerele determinate se
vor afia n ordinea cresctoare a valorilor lor, separate prin cte un spaiu.
Exemplu: dac pe prima linie a fiierului bac.in se afl 10, iar pe linia a doua se gsesc
numerele 2 4548 568 4548 57 89 5974 2 89 32 atunci valorile cutate sunt 32 57
568 5974. (10p.)

Varianta 48 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 049

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila a, de tip int, memoreaz un numr natural impar, iar variabila b, de tip int,
memoreaz un numr natural par. Care dintre urmtoarele expresii C/C++ are valoarea 1? (4p.)
a. a%2 && b%2 b. !(!(a%2) || b%2)
c. (a+b+1)%2 d. !(a%2) || b%2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [a] partea ntreag a numrului real a.
a) Scriei valoarea afiat dac pentru x se citete
numrul 210345. (6p.)
b) Scriei cea mai mare valoare format din cifre distincte
care poate fi citit astfel nct numrul afiat s fie 987.
(4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc fiecare structur ct
timp...execut cu cte o structur repetitiv cu test
final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x
(numr natural nenul)
k0
ct timp x0 execut
kk*10+x%10
x[x/10]

ct timp k0 execut
xx*10+k%10
k[k/100]

scrie x

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 049

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider stiva din desenul alturat. Primul element introdus n stiv
este 5. Dac se noteaz cu pop operaia prin care se extrage un element
din stiv i cu push(k) operaia prin care se introduce valoarea k n stiv,
care va fi coninutul ei dup efectuarea urmtoarelor operaii: pop; pop;
push(1); push(4); (4p.)

a. 4 1 1 4 b. 1 4 4 1 c. 1 4 1 4 d. 5 2 1 4
2. Fiind dat un tablou bidimensional cu 20 linii i 20 coloane, cte elemente se gsesc strict
deasupra diagonalei secundare a tabloului? (4p.)
a. 180 b. 200 c. 190 d. 210

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Variabila x declarat alturat memoreaz n cmpurile med1 i
med2 mediile semestriale ale unui elev. Scriei o expresie a crei
valoare va fi media anual a acestui elev. (6p.)
struct elev {
int matricol;
float med1,med2;
}x;
4.
Se consider un graf orientat cu 6 vrfuri numerotate de la 1 la 6, ale crui arce sunt:
(2,1),(3,6),(4,1),(4,3),(4,5),(5,2), (6,4),(1,4). Dou circuite sunt distincte
dac ele difer prin cel puin un arc.
a) Care este numrul total de circuite din acest graf? (3p.)
b) Care este numrul total de circuite elementare din acest graf? (3p.)
5. Un cuvnt s, de cel mult 20 caractere, format doar din litere mici ale alfabetului englez,
conine cel puin o consoan. Scriei programul C/C++ care citete de la tastatur cuvntul
s, construiete n memorie i afieaz pe ecran cuvntul obinut prin eliminarea tuturor
consoanelor din cuvntul s. Se consider consoan oricare liter care nu se afl n
mulimea {a, e, i, o, u}.
Exemplu: dac se citete cuvntul bacalaureat, pe ecran se afieaz: aaauea (10p.)

Varianta 49 - informatica
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
Subiectul III (30 de puncte) - Varianta 049

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se genereaz n ordine strict cresctoare 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. Cte numere generate prin aceast metod au
prima cifr 1 i ultima cifr 2? (4p.)
a. 1 b. 2 c. 4 d. 8

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Pentru o valoare natural mai mare dect 1
memorat n variabila global n,
subprogramul recursiv alturat afieaz cel
mai mare divizor al lui n, mai mic dect n, la
apelul divi(n).
Cu ce trebuie nlocuite i ?
(6p.)
void divi(long i)
{ if(==0)
cout<< ; | printf(%ld, );
else
divi(i-1);
}
3. Scriei un program C/C++ care citete de la tastatur un numr natural n ( 1 n 50) i un
ir de n numere naturale cu cel mult 4 cifre fiecare i care verific dac elementele irului
pot fi rearanjate astfel nct s respecte regula: al doilea element este cu 1 mai mare dect
primul, al treilea cu 2 mai mare dect al doilea, ... , ultimul este cu n-1 mai mare dect
penultimul. Programul afieaz pe ecran mesajul DA n caz afirmativ i mesajul NU n caz
contrar.
Exemplu: pentru n=4 i irul 8,5,11,6 se afieaz DA (elementele pot fi rearajate astfel
nct s respecte regula dat: 5,6,8,11). (10p.)
4. Se consider subprogramul cmax care prin parametrul a primete un numr natural nenul
mai mic dect 30000, iar prin parametrul b furnizeaz cifra maxim din numrul a.
a) Scriei, folosind limbajul C/C++, doar antetul subprogramului cmax. (4p.)
b) Fiierul bac.txt conine cel mult 1000 numere naturale nenule, mai mici dect 30000
fiecare, separate prin cte un spaiu. Scriei programul C/C++ care citete din fiierul
bac.txt toate numerele i care determin cea mai mare cifr din scrierea lor folosind
apeluri utile ale subprogramului cmax. Cifra determinat se va afia pe ecran.
Exemplu: dac fiierul bac.txt conine valorile: 23 12 64 12 72 345 67 23 71 634
atunci pe ecran se afieaz 7. (6p.)

Varianta 49 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 050

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele a i b sunt de tip int, iar variabilele c i d sunt de tip double. Care dintre
urmtoarele instruciuni de atribuire nu este corect din punct de vedere sintactic? (4p.)
a. c=d+2*c; b. c=2-d%2*a; c. c=sqrt(b*b); d. b=(d<=c);

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la numrul
ntreg nenul y i cu [a] partea ntreag a numrului real a.
a) Scriei numrul care va fi afiat dac pentru n se citete
valoarea 3, iar pentru x se citesc n ordine urmtoarele
valori: 90, 965, 727. (6p.)
b) tiind c valoarea citit pentru n este 4, scriei un set de
valori care pot fi citite pentru variabila x astfel nct la finalul
executrii algoritmului s se afieze numrul 9. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat, n
care s se nlocuiasc structura pentru...execut cu
o structur repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
citete n
(numr natural nenul)
k9
pentru i1,n execut
citete x
(numr. natural)
c[x/10]%10
dac c<k atunci
kc


scrie k

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

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

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Fie graful orientat din figura alturat. Care este numrul de
circuite elementare distincte? Dou circuite elementare sunt
distincte dac difer prin cel puin un arc. (4p.)

a. 0 b. 1 c. 2 d. 3
2. Elementele tabloului bidimensional din figura alturat, cu 4 linii
i 4 coloane, sunt toate numerele naturale cuprinse ntre 1 i 16
aezate n spiral, ncepnd cu primul element al primei linii i
continund n sens invers trigonometric ca n figur. Care este cel
mai mare numr situat n zona triunghiular de sub diagonala
secundar (exclusiv diagonala secundar), n cazul unui tablou
bidimensional cu 5 linii i 5 coloane generat dup aceeai
regul? (4p.)
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

a. 16 b. 15 c. 25 d. 22

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care dintre nodurile arborelui din figura alturat pot fi considerate
ca fiind rdcin astfel nct astfel nct n arborele cu rdcin
rezultat fiecare nod s aib cel mult doi descendeni direci (fii)? (6p.)

4. Se consider declararea alturat.
Scriei instruciunile prin care n variabila x vor fi
reinute titlul romanului Mara i numrul de 325
de pagini pe care acesta l are. (6p.)
struct carte
{char titlu[20];
int nr_pag;
}x;

5. Scriei programul C/C++ care citete de la tastatur un cuvnt s de cel mult 20 litere mici ale
alfabetului englez, construiete n memorie i afieaz pe ecran cuvntul s dup eliminarea
primei i a ultimei vocale. Cuvntul s conine cel puin dou vocale. Se consider vocale literele:
a, e, i, o, u.
Exemplu: dac se citete cuvntul bacalaureat, pe ecran se afieaz: bcalauret (10p.)


Varianta 50 - informatica
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
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 1 ?
(4p.)
int t(int i,int v[])
{
if(i==0) return 0;
else
if(v[i]!=v[i-1])
return t(i-1,v);
else
return 1;
}
a. t(3,v) b. t(5,v) c. t(4,v)+t(5,v) d. t(3,v)+t(2,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, 123323 etc.
a) Care este ultimul numr generat? (3p.)
b) Ce numr se genereaz imediat dup 332312? (3p.)
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 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.)

Varianta 50 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 051

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag x memoreaz un numr natural cu exact 4 cifre. Care dintre urmtoarele
instruciuni C/C++ determin, n urma executrii, eliminarea cifrei sutelor numrului
memorat de variabila x? (4p.)
a. x=x%10+x/10+x/1000; b. x=x%1000*100+x/100;
c. x=x%1000+x%100+x%10; d. x=x/1000*100+x%100;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y i cu [a] partea ntreag a numrului
real a.
a) Scriei ce valoare se va afia dac pentru x se citete
numrul 1234. (6p.)
b) Scriei cea mai mare valoare format din exact 4 cifre
distincte, care poate fi citit pentru variabila x, astfel
nct algoritmul s afieze un numr format din toate
cifrele lui x, dar n ordine invers. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura repetitiv cu test
final cu o structur repetitiv cu test iniial. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x
(numr natural nenul)
z 0
repet
c x%10
dac c%20 atunci
zz*10+c-1
altfel
zz*10+c

x [x/10]
pn cnd x = 0
scrie z


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 051

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. n secvena alturat, variabila a memoreaz elementele
unui tablou bidimensional cu 4 linii (numerotate de la 0 la
3) i 4 coloane (numerotate de la 0 la 3), iar toate
celelalte variabile sunt de tip ntreg.
Dup executarea secvenei de instruciuni scris alturat
a) ce valoare va avea elementul a[1][3]? (3p.)
b) care este suma elementelor de pe diagonala principal
a acestui tablou? (3p.)
x=1;
for (i=0;i<=3;i++)
for (j=0;j<=3;j++)
{ if (i==j)
a[i][j]=2*x;
else
a[i][j]=x;
x=x+1;
}

4. Se consider arborele cu rdcin avnd 10 noduri, numerotate de la 1 la 10 dat prin
vectorul Tata=(6, 0, 2, 2, 3, 3, 2, 7, 7, 9). Care este nodul rdcin i care sunt nodurile
terminale ale arborelui? (6p.)
5. Scriei un program C/C++ care citete de la tastatur un ir avnd maximum 30 de
caractere i afieaz pe ecran mesajul DA n cazul n care irul conine numai litere i spaii,
iar n caz contrar afiez mesajul NU.
Exemplu: dac se citete de la tastatur irul:
Ana, Bogdan au 18 ani.
atunci programul va afia mesajul Nu. (10p.)

1. Considerm declararea alturat
folosit pentru a memora numele,
prenumele i media unui elev.
Care dintre expresiile de mai jos are ca
valoare prima liter a numelui unui elev
ale crui informaii sunt memorate n
variabila p? (4p.)
struct elev{
char nume[10],prenume[20];
float medie;
}p;
a. p.nume[1] b. p.nume[0]
c. p.nume d. nume[1]
2. Se consider un graf neorientat cu 5 noduri i 9 muchii. Care dintre urmtoarele iruri de
numere pot fi gradele nodurilor grafului? (4p.)
a. 4, 2, 6, 4, 2 b. 2, 2, 1, 2, 2
c. 1, 1, 1, 1, 1 d. 4, 3, 3, 4, 4
Varianta 51 - informatica
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
Subiectul III (30 de puncte) - Varianta 051

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care este antetul corect al subprogramului cifre, care primete prin intermediul primului
parametru, x, un numr natural i returneaz prin intermediul celui de-al doilea parametru,
y, suma cifrelor numrului natural x? (4p.)
a. void cifre(int x, int &y) b. int cifre(int x)
c. void cifre(int x, int y) d. int cifre(int &x, int y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider un numr natural nenul, x, avnd exact 8 cifre, distincte dou cte dou;
printre cifrele sale se gsete i cifra 0. Permutnd cifrele lui x, se obin alte numere
naturale.
a) Cte dintre numerele obinute, inclusiv x, au exact 8 cifre? (3p.)
b) Cte dintre numerele obinute sunt divizibile cu 10? (3p.)
3. Se consider subprogramul divizor, care primete prin intermediul primului parametru, a,
un numr natural (1<a<10000) i returneaz cel mai mic divizor prim al numrului a.
a) Scriei n limbajul C/C++ definiia complet a subprogramului divizor. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a
doua linie n numere naturale mai mari dect 1, separate prin cte un spaiu, fiecare numr
avnd maximum 4 cifre. Scriei un program C/C++ care citete toate numerele din fiierul
date.in i afieaz pe ecran suma obinut adunnd, pentru fiecare dintre cele n numere
citite de pe a doua linie din fiier, cel mai mic divizor prim. Se vor utiliza apeluri utile ale
subprogramului divizor.
Exemplu: dac fiierul date.in are coninutul alturat, se
va afia 20 (20=2+5+2+7+2+2). (6p.)
6
16 25 6 77 10 4
4. Se consider expresia E(x)=a
0
X
n
+ a
1
X
n-1
+ a
2
X
n-2
+...+ a
n-1
X +a
n
. Scriei un
program C/C++ care citete de la tastatur un numr natural n (n9), cele n+1 numere
ntregi a
0
, a
1
, a
2
,, a
n-1
, a
n
, apoi o valoare ntreag x (-9x9). Programul
calculeaz i apoi afieaz pe ecran valoarea expresiei E(x).

(10p.)

Varianta 51 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 052

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Crui interval i aparine valoarea memorat de variabila real x astfel nct expresia
urmtoare, scris n limbajul C/C++, s aib valoarea 1?
(x<=-2) || (x>-1) && !(x>=1) || (x>50) (4p.)
a. (-,-2] (-1,1) (50, ) b. (-,-2) (-1,50)
c. (-,-2) (-1,1] (50, ) d. (-,-2) (-1,1) (50, )

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y i cu [a] partea ntreag a
numrului real a.
a) Scriei care este valoarea afiat dac se citesc,
n aceast ordine, numerele 5, 12, 4, 13, 25, 17.
(6p.)
b) Scriei un ir de date de intrare ce pot fi citite
astfel nct valoarea afiat s fie 4. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel
dat, n care s se nlocuiasc structura repetitiv
pentru... execut cu o structur repetitiv
cu test final. (6p.)
d) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete n
(numr natural nenul)
d 0
c 0
pentru i1,n execut
citete x
(numr natural nenul)
ct timp x%2=0 execut
x [x/2]; d d+1

ct timp x%5=0 execut
x [x/5]; c c+1


dac c<d atunci
scrie c
altfel
scrie d


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 052

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considerm declararea alturat folosit
pentru a memora numele, prenumele i cele
2 note ale unui elev.
Care dintre instruciunile de mai jos
calculeaz n variabila real m media
aritmetic a notelor elevului ale crui
informaii sunt memorate n variabila x? (4p.)
struct elev{
char nume[10],prenume[20];
float nota1,nota2;
} x;
a. m=(x.nota1+x.nota2)/2; b. m=(nota1+nota2)/2;
c. x.m=(x.nota1+x.nota2)/2; d. m=(x,nota1+x,nota2)/2;
2. Se consider graful neorientat din figura alturat. Care
este numrul minim de muchii ce se pot elimina astfel
nct graful parial obinut s aib exact 3 componente
conexe? (4p.)

a. 2 b. 4 c. 1 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. n secvena alturat, variabila a memoreaz elementele
unui tablou bidimensional cu 4 linii (numerotate de la 0 la
3) i 4 coloane (numerotate de la 0 la 3), iar toate
celelalte variabile sunt de tip ntreg.
Ce valoare va avea elementul a[3][3] i care este
suma elementelor de pe prima linie a tabloului dup
executarea secvenei de instruciuni scris alturat? (6p.)
x=1;
for (i=0;i<=3;i++)
for (j=0;j<=3;j++)
{ if(i==j) a[i][j]=x;
else a[i][j]=i+1;
x=x+1;
}

4. Se consider o stiv n care inial au fost introduse, n aceast ordine, valorile
1, 2, 3 ca n desenul alturat. Operaia prin care se adaug elementul a n
stiv s-a notat cu Push a iar operatia prin care se extrage un element din
stiv s-a notat cu Pop. Reprezentai, dup modelul din figura alturat,
coninutul stivei dup fiecare dintre operaiile care urmeaz: Push 4, Pop,
Pop, Push 5. (6p.)


5. Scriei un program C/C++ care citete de la tastatur o fraz avnd maximum 100 de
caractere, n care cuvintele sunt separate prin cte un spaiu; programul construiete n
memorie i afieaz pe ecran un ir ce conine doar primul caracter al fiecruia dintre
cuvintele frazei, n ordinea n care acestea apar n fraz, ca n exemplu.
Exemplu: dac se citete fraza
Ana sustine bacalaureatul la informatica
atunci se va afia Asbli (10p.)



Varianta 52 - informatica
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
Subiectul III (30 de puncte) - Varianta 052

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking, se genereaz n ordine lexicografic toate anagramele
cuvntului caiet (a anagrama nseamn a schimba ordinea literelor unui cuvnt pentru a
obine un alt cuvnt). Cte cuvinte care ncep cu litera a vor fi generate? (4p.)
a. 4 b. 20
c. 12 d. 24

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit alturat.
Ce valoare are f(4)? Dar f(20)? (6p.)
long f(unsigned int n)
{ if (n==0) return 0;
else return n*n+f(n-
1);
}
3. Subprogramul dist primete prin intermediul parametrului a un numr natural cu maximum
8 cifre i returneaz 1 dac cifrele numrului a au aceeai paritate (sunt toate pare sau
toate impare), altfel returneaz 0.
a) Scriei definiia complet a subprogramului dist. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a
doua linie n numere naturale, separate prin cte un spaiu, fiecare numr avnd maximum 8
cifre. Scriei un program C/C++ care citete toate numerele din fiier i afieaz pe ecran,
desprite prin cte un spaiu, numerele de pe a doua linie a fiierului date.in, ce au toate
cifrele cu aceeai paritate, folosind apeluri utile ale subprogramului dist. n cazul n care nu
exist niciun astfel de numr se va afia, pe ecran, valoarea -1.
Exemplu: dac fiierul date.in are coninutul
alturat, atunci se vor afia numerele:
1775 333 (nu neaprat n aceast ordine) (6p.)
6
16 1775 333 242477 123 55566
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n100) i
apoi n numere naturale, de maximum 4 cifre fiecare, reprezentnd elementele unui tablou
unidimensional. Programul afieaz mesajul Da n cazul n care elementele tabloului pot fi
rearanjate astfel nct s formeze un ir strict cresctor, iar n caz contrar afieaz mesajul
Nu.
4.
Exemplu: dac n=6 i tabloul unidimensional are
coninutul alturat, atunci se va afia Da.
(10p.)
54 162 2 18 486 6

Varianta 52 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 053

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag x memoreaz un numr natural. Care dintre urmtoarele expresii C/C++
are valoarea 0 dac i numai dac numrul memorat de x NU este divizibil cu 3? (4p.)
a. x%3 b. (1-x%3)+(2-x%3)
c. (1-x%3)*(2-x%3) d. 3-x%3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y i cu [a] partea ntreag a numrului
real a.
a) Scriei care este valoarea ce se va afia dac pentru
x se citete numrul 1234. (6p.)
b) Scriei cea mai mic valoare format din exact 4 cifre,
care poate fi citit pentru variabila x, astfel nct
algoritmul s afieze valoarea 0. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura repetitiv cu test
final cu o structur repetitiv cu test iniial. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x
(numr natural nenul)
z0
p1
repet
cx%10
dac c%20 atunci
zz+c*p
pp*10

x[x/10]
pn cnd x = 0
scrie z


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 053

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
n secvena alturat, variabila x
memoreaz un ir cu cel mult 100 de
caractere, iar variabila i este de tip ntreg.
for(i=0;i<=strlen(x)-1;i=i+3)
cout<<x[i]; | printf(%c,x[i]);
1.
Care este numrul maxim de caractere pe care l poate avea irul x astfel nct secvena
alturat s afieze exact 3 caractere ale acestuia? (4p.)
a. 7 b. 3 c. 9 d. 8
2. Se consider un graf orientat cu 5 vrfuri i 8 arce. Care dintre urmtoarele iruri de
numere pot fi gradele exterioare ale vrfurilor acestui graf? (4p.)
a. 2, 3, 1, 1, 1 b. 2, 2, 6, 5, 1
c. 1, 0, 1, 1, 1, 1 d. 1, 1, 0, 2, 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. In secvena de mai jos, variabila a memoreaz elementele unui tablou bidimensional cu 5
linii (numerotate de la 1 la 5) i 5 coloane (numerotate de la 1 la 5), iar celelalte variabile
sunt de tip ntreg.
Ce valoare se va afia n urma executrii secvenei dac se prelucreaz urmtoarea
matrice?
x=0;
for (i=1;i<=5;i++)
if(a[i][i]%2!=0)
x=x+a[i][6-i];
cout<<x; | printf(%d,x);
(6p.)
1 2 3 4 2
6 7 8 9 4
1 2 0 4 3
7 2 1 4 5
1 2 3 4 5
4. Se consider arborele din figura alturat.
Care este vectorul cu legturi de tip tat
pentru acest arbore? Care sunt descendenii
nodului 3?
(6p.)


5. Scriei un program C/C++ care citete de la tastatur 4 numere naturale nenule m, n, x i y
(2<m10, 2<n20, 1x10, 1y10) i elementele unui tablou bidimensional a cu m linii,
numerotate de la 1 la m, si n coloane, numerotate de la 1 la n; programul interschimb
elementele tabloului bidimensional de pe linia x cu cele de pe linia y. Tabloul bidimensional
astfel obinut se va afia pe ecran, cte o linie a tabloului pe cte o linie a ecranului, cu un
spaiu ntre elementele fiecrei linii.
Exemplu: pentru m=4, n=3, x=1, y=3 i matricea se va afia matricea


(10p.)

Varianta 53 - informatica
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
Subiectul III (30 de puncte) - Varianta 053

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Subprogramul f realizeaz interschimbarea valorilor a dou variabile ntregi transmise prin
intermediul parametrilor x i y. Care este antetul corect al subprogramului f? (4p.)
a. void f(int &x, int &y) b. int f(int x,int y)
c. void f(int x, int &y) d. void f(int &x, int y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f,
definit alturat. Ce valoare are
f(2138)? Dar f(513)? (6p.)
int f(unsigned int n)
{ if (n==0) return 0;
else if (n%2==0)
return n%10+f(n/10);
else
return f(n/10);
}
Se consider subprogramul cmmdc, care primete prin intermediul a doi parametri, a i b,
dou numere naturale nenule, cu maximum 8 cifre fiecare, i returneaz cel mai mare
divizor comun al valorilor parametrilor a i b.
a) Scriei numai antetul subprogramului cmmdc. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe a
doua linie un ir format din n numere naturale nenule, separate prin cte un spaiu, fiecare
numr avnd maximum 8 cifre. Scriei un program C/C++ care citete toate numerele din
fiierul text date.in i afieaz pe ecran numrul perechilor de elemente aflate pe poziii
consecutive n irul format cu elementele situate pe a doua linie a fiierului, care sunt prime
ntre ele, folosind apeluri utile ale subprogramului cmmdc.
3.
Exemplu: dac fiierul date.in are coninutul alturat, se va
afia 4 pentru c pechile (16,25), (12,7), (7,4), (4, 5)
sunt formate din numere prime intre ele. (6p.)
7
16 25 15 12 7 4 5
4. Scriei un program C/C++ care citete de la tastatur un numr natural nenul n
(n<=100), apoi un ir de n numere naturale cu cel mult 4 cifre fiecare, i afieaz pe ecran
irul i cele n-1 iruri ce se pot obine prin permutrile circulare, ctre stnga, ale
elementelor irului. Fiecare ir se afieaz pe cte o linie, elementele irului fiind separate
prin cte un spaiu.
Exemplu: dac n=4 , iar irul are coninutul alturat, atunci se
vor afia irurile:
10 20 30 49
20 30 49 10
30 49 10 20
49 10 20 30 (10p.)
10 20 30 49

Varianta 53 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 054

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Crui interval i aparine valoarea memorat de variabila real x astfel nct expresia
urmtoare, scris n limbajul C/C++, s aib valoarea 1?
!((x<=1) || (x>50)) (4p.)
a. (1,50) b. (-,1] (50, )
c. [1,50) d. (1,50]

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y i cu [a] partea ntreag a
numrului real a.
a) Scriei care este valoarea afiat dac se
citete numrul 1234. (6p.)

b) Scriei un numr natural, de exact 4 cifre,
care poate fi citit pentru variabila n, astfel nct
valoarea afiat s fie 3. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu
cel dat, n care s se nlocuiasc structura
repetitiv pentru...execut cu o structur
repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete n (numr natural nenul)

s0
ct timp n>0 execut
cn%10
dac c%2=0 atunci
p1
pentru i2,c execut
pp*i

ss+p

n[n/10]


scrie s



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 054

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf neorientat complet cu 10 vrfuri. Cte lanuri elementare distincte de
lungime 3 exist ntre vrful 2 i vrful 4? Dou lanuri sunt distincte dac difer prin cel
puin o muchie. (4p.)
a. 90 b. 28 c. 45 d. 56
2. Se consider graful orientat din figura
alturat. Cte dintre vrfurile grafului au
gradul intern egal cu gradul extern?
(4p.)

a. 3 b. 2 c. 1 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. n secvena alturat, variabila x
memoreaz un ir de caractere, iar toate
celelalte variabile sunt de tip ntreg.
Ce valori au variabilele k1 i k2 dup
executarea secvenei de instruciuni
alturate? (6p.)
strcpy(x,bac2008);
k1=strlen(x);
k2=0;
for (i=0;i<strlen(x);i++)
if( x[i]>=0 && x[i]<=9)
k2=k2+1;
Consideram urmtoarele declarri:
int a[10][10],i,k;
4.
Ce valoare are variabila k dup executarea
secvenei de instruciuni alturate, dac a
memoreaz elementele unui tablou
bidimensional cu 10 linii (numerotate de la
0 la 9) i 10 coloane (numerotate de la 0
la 9), ce are pe fiecare linie n ordine
cresctoare numerele 1, 2, ..., 10 ?
(6p.)
k=0;
for(i=0;i<=9;i++)
if((1-a[i][i]%3)*(2-a[i][i]%3)==0))
k++;

Scriei un program C/C++ care citete de la tastatur un numr natural n (3n10) i un
numr natural x, cu exact 2 cifre, i care construiete n memorie un tablou bidimensional
cu n linii (numerotate cu numere de la 1 la n) i n coloane (numerotate cu numere de la 1 la
n), ce are elementele de pe liniile de rang impar egale cu prima cifr a numrului x i
elementele de pe liniile de rang par egale cu ultima cifr a numrului x. Tabloul
bidimensional se va afia pe ecran, cte o linie a tabloului pe cte o linie a ecranului,
elementele fiecrei linii fiind separate prin cte un spaiu.
5.
Exemplu: dac se citesc de la tastatur n=4 i x=13 atunci se
afieaz tabloul bidimensional alturat. (10p.)
1 1 1 1
3 3 3 3
1 1 1 1
3 3 3 3

Varianta 54 - informatica
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
Subiectul III (30 de puncte) - Varianta 054

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking se genereaz n ordine lexicografic toate anagramele
cuvntului caiet (a anagrama nseamn a schimba ordinea literelor unui cuvnt pentru a
obine un alt cuvnt). Care este a asea soluie? (4p.)
a. catei b. actie
c. actei d. catie

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f,
definit alturat. Ce valoare are
f(97,2)? Dar f(175,2)? (6p.)
int f(int n, int x)
{
if (n<=1) return 0;
else if (x<=n/2)
if (n%x==0) return 0;
else return f(n,x+1);
else return 1;
}
3. Se consider subprogramul pal, care primete prin intermediul primului parametru, a, un
numr natural, cu minimum 2 cifre i maximum 8 cifre, i furnizeaz prin intermediul celui
de-al doilea parametru, b, cel mai apropiat numr de valoarea lui a, care este palindrom. n
cazul n care exist 2 astfel de numere, subprogramul va returna numrul mai mic. Un
numr natural x este palindrom dac este egal cu numrul obinut prin scrierea cifrelor lui x
n ordine invers.
Exemplu: dac a=16, atunci valoarea returnat este 11; dac a=128, valoarea returnat
este 121, iar dac a=33, atunci se returneaz 33.
a) Scriei definitia complet a subprogramului pal. (4p.)
b) Fiierul text date.in conine pe prima linie un numr natural nenul n (n100), iar pe
a doua linie n numere naturale nenule, separate prin cte un spaiu, fiecare numr avnd
minimum 2 cifre i maximum 8 cifre. Scriei un program C/C++ care citete toate
numerele din fiierul text date.in i afieaz pe ecran, desprite prin cte un spaiu,
pentru fiecare dintre cele n numere, cel mai apropiat numr palindrom, folosind apeluri utile
ale subprogramului pal.

Exemplu: dac fiierul date.in are coninutul alturat, atunci
se vor afia numerele: 11 1771 333 191 (6p.)
4
16 1775 333 190
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n<=100)
i apoi cele n numere naturale nenule, de maximum 4 cifre, reprezentnd elementele unui
tablou unidimensional v (cu indici de la 1 la n) i afieaz cte dintre elementele v
i
(2in-1) sunt egale cu suma celor dou elemente vecine. n cazul n care nu exist
niciun astfel de element n tabloul v, se va afia valoarea 0.
4.
Exemplu: dac n=7 i tabloul unidimensional v are
coninutul alturat, atunci se va afia valoarea 2
(deoarece 25=10+15, 45=15+30). (10p.)
10 25 15 45 30 2 1




Varianta 54 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 055

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ este
echivalent cu cea scris alturat? (4p.)
!((x>=5)&&(x<10))
a. (x<5) || (x>=10) b. (x<5) || (x>10)
c. (!(x>=5)) && (!(x>10)) d. (x>=5) || (x<10)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x la
numrul ntreg nenul y.
a) Scriei care este valoarea afiat dac se citesc, n
aceast ordine, valorile: 5, 12, 22, 1232, 3, 563.
(6p.)
b) Pentru n=7, scriei un set de valori ce trebuie citite n
continuare, astfel nct valoarea afiat s fie 4. (4p.)
c) Scriei n pseudocod un algoritm echivalent cu
algoritmul dat, n care s se nlocuiasc structura
repetitiv pentru...execut cu o structur
repetitiv cu test final. (6p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n
(numr natural nenul)
citete a
(numr natural)
k0
pentru i2,n execut
citete b
(numr natural)
dac a%10=b%10 atunci
kk+1
altfel
kk-1

ab

scrie k


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 055

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considerm declararea alturat. Care dintre urmtoarele
instruciuni este corect din punct de vedere sintactic?
(4p.)
struct punct{
int x,y;
} p;
a. p->y=p->y+1; b. p=9;
c. p.x=7; d. p=p+1;
2. Variabila n memoreaz un numr natural nenul. Care este numrul total de grafuri orientate
distincte care se pot forma cu aceste noduri? Dou grafuri orientate sunt distincte dac
matricele lor de adiacen sunt diferite. (4p.)
a. 4
n*(n-1)/2
b. 3
n*(n-1)/2

c. 4
n*(n-1)
d. 2
n*(n-1)/2


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Considerm urmtoarele declarri:
int i,aux,a[10][10];
Ce valori se afieaz n urma executrii
secvenei alturate dac liniile i coloanele
tabloului bidimensional sunt numerotate de la
0 la 9 i iniial fiecare linie a tabloului conine,
de la stnga la dreapta, n ordine
descresctoare, toate numerele naturale, de
la 10 la 1? (6p.)
for (i=0;i<=8;i++)
if( a[i][9-i]<a[i+1][8-i])
{aux=a[i][9-i];
a[i][9-i]=a[i+1][8-i];
a[i+1][8-i]=aux;}
cout<<a[0][9]<< <<a[9][0];
|printf(%d %d,a[0][9],a[9][0]);

4. Se consider o coad n care inial au fost introduse, n aceast ordine, valorile
1, 2, 3 ca n desenul alturat. Operaia prin care se adaug valoarea a n
coad s-a notat cu ADD a, iar operatia prin care se extrage un element din
coad s-a notat cu EL. Reprezentai coada, ca n modelul alturat, dup fiecare
dintre operaiile: ADD 4, EL, ADD 5. (6p.)

1 2 3


5. Scriei un program C/C++ care citete de la tastatur un ir format din maximum 100
caractere, construiete n memorie i afieaz un nou ir de caractere obinut din irul iniial
prin eliminarea tuturor caracterelor care nu sunt caractere cifr. n cazul n care noul ir are
lungimea 0 se va afia mesajul ir vid.
Exemplu: dac se citete de la tastatur irul de caractere.
Ana are 17 ani .
atunci irul cerut este:
17 (10p.)

Varianta 55 - informatica
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
Subiectul III (30 de puncte) - Varianta 055

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
Utiliznd metoda backtracking se genereaz toate matricele ptratice de ordinul 4 ale cror
elemente aparin mulimii {0,1}, cu proprietatea c pe fiecare linie i pe fiecare coloan
exist o singur valoare 1. Primele 4 soluii generate sunt, n aceast ordine:
1.
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0
0 0 0 1
0 1 0 0
Care este a opta soluie? (4p.)
a. 0 1 0 0
1 0 0 0
0 0 0 1
0 0 1 0
b. 0 1 0 0
1 0 0 0
0 0 1 0
0 0 0 1
c. 0 1 0 0
0 0 1 0
1 0 0 0
0 0 0 1
d. 0 0 1 0
1 0 0 0
0 1 0 0
0 0 0 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(5)?
Dar f(40)? (6p.)
int f(unsigned int n)
{ if (n>20) return 0;
else return 5+f(n+5);
}
3. Se consider subprogramul cifre, cu doi parametri, a i b, care primete prin intermediul
primului parametru, a, un numr natural cu maximum 8 cifre nenule i returneaz, prin
intermediul celui de-al doilea parametrul b, cel mai mic numr care se poate forma cu toate
cifrele lui a.
a) Scriei definiia complet a subprogramului cifre. (4p.)
b) Se consider fiierul text date.in ce conine pe prima linie un numr natural nenul n
(n100), iar pe a doua linie n numere naturale, separate prin cte un spaiu, fiecare numr
avnd maximum 8 cifre nenule. Scriei un program C/C++ care citete toate numerele din
fiierul text date.in i afieaz pe ecran, desprite prin cte un spaiu, numerele situate
pe a doua linie a fiierului, formate numai din cifre ordonate cresctor, folosind apeluri utile
ale subprogramului cifre. n cazul n care nu exist niciun astfel de numr se va afia
valoarea 0.

Exemplu: dac fiierul date.in are coninutul alturat,
atunci se vor afia numerele: 16 333 269 (6p.)
6
16 175 333 242477 321 269
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n100)
i 2*n numere naturale de maximum 3 cifre; primele n reprezint elementele tabloului
unidimensional a, iar urmtoarele n elementele tabloului unidimensional b; fiecare tablou
are elementele numerotate ncepnd de la 1. Programul construiete n memorie i afieaz
pe ecran, separate prin cte un spaiu, cele n elemente ale unui tablou unidimensional c, n
care orice element c
i
(1in) se obine conform definiiei urmtoare:
a
i
concatenat cu b
i
, dac a
i
< b
i

c
i
= b
i
concatenat cu a
i
, altfel

4.
Exemplu: dac n=3 i tablourile a i b au coninutul
alturat, atunci coninutul tabloului c este urmtorul:
112 123234 15345 (10p.)
a : (12, 123, 345)
b: (1, 234, 15)

Varianta 55 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 056

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi x i y memoreaz cte un numr natural nenul. Cel mai mic multiplu
comun al valorilor lor este egal cu numrul memorat n y dac i numai dac urmtoarea
expresie C/C++ are o valoare nenul: (4p.)
a. y%x b. y%x==0 c. x%y d. x%y==0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [x] partea ntreag a numrului real x i cu a%b
restul mpririi numrului ntreg a la numrul ntreg nenul b.
a) Scriei valoarea care se va afia pentru n=8291. (6p.)
b) Scriei o valoare de 5 cifre distincte care poate fi citit
pentru variabila n astfel nct numrul afiat s fie 7080.
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
citete n (numr natural)
r0
repet
r(r*10+n%10)*10
n[n/100]
pn cnd n<10
scrie r
d) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
repet...pn cnd cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 056

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila x este utilizat pentru a memora numele, prenumele i salariul unei persoane.
Numele i prenumele pot avea cel mult 20 de litere fiecare, iar salariul este un numr
natural nenul mai mic dect 30000 . Care dintre urmtoarele declarri este corect? (4p.)
a. float x[3][21]; b. int x[3][21];
c. struct persoana{
char nume[21],prenume[21];
int sal;} x;
d. struct persoana[
char nume[21],prenume[21];
int sal;] x;
2. Dac G este un graf neorientat cu 4 noduri, atunci numrul maxim de muchii pe care le
poate avea graful este: (4p.)
a. 5 b. 4 c. 3 d. 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Fie T un arbore cu rdcin. Arborele are 8 noduri numerotate de la 1 la 8 i este descris
prin urmtorul vector de tai: (4,1,6,0,1,1,4,7). Care sunt frunzele arborelui? (6p.)
4. Scriei o expresie C/C++ care s fie nenul dac i numai dac variabila c de tip char este
o liter mic a alfabetului englez. (6p.)
Scriei un program C/C++ care citete de la tastatur dou numere naturale n i k
(2<n<25, 0<k<n) i construiete n memorie o matrice cu n linii i n coloane format
numai din valori 1 i 2 astfel nct: elementele aflate pe primele k coloane sunt egale cu 1,
iar elementele aflate pe ultimele n-k coloane sunt egale cu 2 ca n exemplul de mai jos.
5.
Programul afieaz pe ecran matricea construit, fiecare
linie a matricei pe o linie a ecranului i elementele de pe
aceeai linie separate prin cte un singur spaiu.
Exemplu: pentru n=5, k=3 se construiete n memorie i se
afieaz matricea alturat. (10p.)
1 1 1 2 2
1 1 1 2 2
1 1 1 2 2
1 1 1 2 2
1 1 1 2 2

Varianta 56 - informatica
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
Subiectul III (30 de puncte) - Varianta 056

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz toate numerele naturale cu exact 2 cifre nenule. Cte numere se vor genera
n total? (4p.)
a. 100 b. 81 c. 90 d. 9

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(1)?
Dar f(20)? (6p.)
int f(int n)
{
if(n==0)return 0;
return 1+f(n/2);
}
3. Fiierul text numere.txt conine, pe o singur linie, cel mult 1000 de numere naturale
nenule de cel mult patru cifre fiecare, numerele fiind separate prin cte un spaiu. Scriei un
program C/C++ care citete toate numerele din fiierul numere.txt, creeaz fiierul text
pare.txt i scrie pe prima lui linie, separate prin cte un spaiu, toate numerele pare
citite, n ordinea n care acestea apar n fiierul numere.txt. Dac fiierul numere.txt nu
conine niciun numr par, atunci n fiierul pare.txt se va scrie mesajul nu exista.
Exemplu:
numere.txt pare.txt
2 3 1 4 7 2 5 8 6 2 4 2 8 6 (10p.)
4. Se consider subprogramul numar, cu doi parametri, x i nrp, care:
primete prin intermediul parametrului, x, un numr natural nenul de cel mult 4 cifre;
furnizeaz prin intermediul parametrului nrp numrul de numere prime mai mici sau
egale cu x.
a) Scriei numai antetul subprogramului numar. (4p.)
b) Scriei programul C/C++ care citete de la tastatur dou numere naturale nenule de
cel mult 4 cifre, a i b, i prin apeluri utile al subprogramului numar se verific dac
intervalul determinat de a i b conine cel puin un numr prim. Programul va afia pe ecran
n caz afirmativ mesajul DA, iar n caz contrar mesajul NU. Prin intervalul determinat de a i
b se nelege intervalul [a,b] dac a<b i [b,a] n caz contrar. (6p.)

Varianta 56 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 057

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi x i y memoreaz numere naturale nenule. Care dintre urmtoarele
expresii C/C++ este nenul dac i numai dac numrul obinut prin nsumarea valorilor
variabilelor x i y are ultima cifr 0? (4p.)
a. x%10+y%10==0 b. y%10==x%10
c. x+y%10==0 d. (x%10+y%10)%10==0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod:
S-a notat cu a%b restul mpririi numrului ntreg a la
numrul ntreg nenul b i cu [x] partea ntreag a
numrului real x.
a) Scriei valoarea care se va afia pentru n=20. (6p.)
b) Scriei o valoare care poate fi citit pentru variabila
n astfel nct numrul afiat s fie 9. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete n (numr natural)
q1
i1
ct timp i<[n/i] execut
dac n%i=0 atunci
qq+i

ii+3

scrie q
d) Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 057

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila t este utilizat pentru a memora valoarea i numele autorului unei cri. Valoarea
crii este un numr natural de cel mult 3 cifre, iar numele autorului nu poate avea mai mult
de 20 de litere. Care dintre urmtoarele declarri este corect? (4p.)
a. struct carte{ int val;char nume;} t;
b. struct carte{int val,nume;} t;
c. struct carte{ int val;char nume[21];} t;
d. struct carte{ int val[21][21];char nume;} t;
2. Care dintre urmtoarele afirmaii este adevrat pentru orice graf neorientat G cu 3 noduri
i 3 muchii? (4p.)
a. este conex b. are dou noduri izolate
c. nu poate avea cicluri d. are un nod izolat

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.
Fie T un arbore cu rdcin. Arborele are 8 noduri numerotate de la 1 la 8 i este descris
prin urmtorul vector de tai:(3,5,0,3,3,5,5,5).
a) Care este nodul cu cei mai muli descendeni direci (fii)? (3p.)
b) Care sunt nodurile frunz ale acestui arbore? (3p.)
4. Se consider mulimea vocalelor {a,e,i,o,u}. Scriei o expresie C/C++ care s fie
nenul dac i numai dac variabila c de tip char este o vocal. (6p.)
Scriei un program C/C++ care citete de la tastatur dou numere naturale n i a
(2<n<25, 0<a<n) i construiete n memorie o matrice cu n linii i n coloane numerotate
de la 1 la n, format numai din valori 0,1 i 2 astfel nct: elementele aflate pe linia a sunt
egale cu 0, cele de deasupra liniei a sunt egale cu 1, iar elementele aflate sub linia a sunt
egale cu 2 ca n exemplul de mai jos.
5.
Programul afieaz pe ecran matricea construit, fiecare linie a
matricei pe o linie a ecranului i elementele de pe aceeai linie
separate prin cte un singur spaiu.
Exemplu: pentru n=5, a=4 se construiete n memorie i se afieaz
matricea alturat. (10p.)
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
2 2 2 2 2


Varianta 57 - informatica
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
Subiectul III (30 de puncte) - Varianta 057

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se utilizeaz metoda backtracking pentru a genera cuvintele de cte patru litere distincte din
mulimea {d,a,n,s}. tiind c primul cuvnt generat este dans, iar al doilea este dasn, care
va fi al treilea cuvnt obinut? (4p.)
a. dnas b. dsan c. dnsa d. dsna

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f,
definit alturat. Ce se va afia la
apelul f(38);?
(6p.)
void f(int x)
{
if(x)
{
f(x/3);
printf("%d",x%3+1);| cout<<x%3+1;
}
}
3. Fiierul text INTRARE.TXT conine pe prima linie o valoare natural n (1<n<100), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale distincte, cu cel mult patru cifre.
Scriei un program C/C++ care creeaz fiierul text IESIRE.TXT i scrie n el, pe prima
linie, separate prin spaiu, toate valorile obinute ca sum de dou elemente distincte aflate
pe linia a doua n fiierul INTRARE.TXT.
Exemplu: dac fiierul INTRARE.TXT are urmtorul coninut:
4
1 4 3 2
atunci fiierul IESIRE.TXT va conine numerele:
5 4 3 7 6 5 (nu neaprat n aceast ordine) (10p.)
4. Se consider subprogramul multiplu, cu doi parametri, care:
primete prin intermediul parametrilor a i k dou numere ntregi de cel mult 4 cifre;
returneaz cel mai mic multiplu al lui k mai mare sau egal cu a.
a) Scriei numai antetul funciei multiplu. (4p.)
b) Scriei declarrile de date i programul principal C/C++ care citete de la tastatur trei
numere naturale nenule x, y, z, de cel mult 4 cifre fiecare, (xy), i care, prin apeluri utile
ale subprogramului multiplu, verific dac intervalul [x,y] conine cel puin un multiplu
al lui z. Programul va afia pe ecran, n caz afirmativ, mesajul DA, iar n caz contrar mesajul
NU. (6p.)

Varianta 57 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 058

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. tiind c variabila ntreag n memoreaz un numr natural cu cel puin 3 cifre, care dintre
urmtoarele expresii C/C++ are ca valoare numrul obinut dup eliminarea ultimelor 2
cifre ale lui n? (4p.)
a. n%10/10 b. n%10 c. n/100 d. n/10%10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [x] partea ntreag a numrului real x i cu a%b
restul mpririi numrului ntreg a la numrul ntreg nenul b.
a) Scriei valoarea care se va afia pentru n=53. (6p.)
b) Scriei o valoare care poate fi citit pentru variabila n
astfel nct numrul afiat s fie 1001. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm, echivalent cu cel dat,
n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de alt tip.
(6p.)
citete n (numr natural)
q1
ct timp n>0 execut
dac n%5=0 atunci
qq*10
altfel
qq*10+1

n[n/5]

scrie q

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 058

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila t este utilizat pentru a memora numrul de exemplare disponibile ntr-o
bibliotec i titlul unei cri. Numrul de exemplare este un numr natural de cel mult 2
cifre, iar titlul nu poate avea mai mult de 20 de litere. Care dintre urmtoarele declarri este
corect? (4p.)
a. struct carte {
float nr,titlu;
} t;
b. struct carte{
int nr;
char titlu[21];
} t;
c. struct carte{
char nr; int titlu;
} t;
d. struct carte{
long nr,titlu;
} t;
2. Dac G este un graf neorientat cu 4 noduri i 2 muchii, atunci numrul maxim de
componente conexe pe care le poate avea graful este: (4p.)
a. 1 b. 2 c. 3 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.
Se consider o stiv iniial vid n care se introduc, n aceast ordine, numerele
1,2,3,4,5, apoi se fac dou extrageri, se introduc, n aceast ordine, numerele 6,7 i 8 i
apoi se mai fac 4 extrageri.
a) Ce numr se va afla n vrful stivei dup finalizarea acestor operaii? (3p.)
b) Care este suma elementelor aflate n stiv dup efectuarea acestor operaii? (3p.)
4. Variabila a memoreaz o matrice cu 10 linii i 10 coloane, numerotate de la 1 la 10, iar i i
j sunt variabile ntregi cu valori cuprinse ntre 1 i 10. Scriei o expresie C/C++ care s fie
nenul dac i numai dac elementul a[i][j] nu se afl pe niciuna dintre diagonalele
acestei matrice. (6p.)
5. Scriei un program C/C++ care citete de la tastatur un ir de cel mult 50 de caractere
(litere mici i mari ale alfabetului englez, cifre i spaii), determin i afieaz pe ecran cte
litere mari, cte litere mici i cte caractere nu sunt litere n irul citit.
Exemplu: dac se citete irul: Voi lua 9 la matematica si 10 la informatica
atunci se va afia: 1 32 11. (10p.)

Varianta 58 - informatica
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
Subiectul III (30 de puncte) - Varianta 058

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele de
cte trei litere distincte din mulimea {d,a,n,s}. Care este cel de-al treilea cuvnt obinut?
(4p.)
a. ads b. abs c. dan d. and

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(88)?
Dar f(3713)? (6p.)
int f(int n){
if(n==0)
return 0;
return f(n/10)*10+1;
}
3. Fiierul text bac.txt conine, pe o singur linie, cel puin 2 i cel mult 100 de numere
naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program C/C++ care citete numerele din fiier i scrie pe ecran, n ordine
cresctoare, separate prin spaiu, cele mai mici dou numere dintre cele citite.
Exemplu: dac fiierul bac.txt conine numerele:
1017 48 310 5710 162
atunci se va afia: 48 162 (10p.)
4. Se consider subprogramul divizor, cu doi parametri, a i d , care:
primete prin intermediul parametrului a un numr natural strict mai mare dect 1, de cel
mult 4 cifre;
furnizeaz prin intermediul parametrului d cel mai mare divizor al lui a strict mai mic dect
a.
a) Scriei numai antetul subprogramului divizor. (4p.)
b) Scriei declarrile de date i programul principal C/C++ care citete de la tastatur un
numr natural strict mai mare dect 1, x, de cel mult 4 cifre i, prin apeluri utile ale
subprogramului divizor, verific dac x este numr prim. Programul va afia pe ecran n
caz afirmativ mesajul DA, iar n caz contrar mesajul NU. (6p.)

Varianta 58 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 059

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Fiecare dintre variabilele ntregi x, y i t memoreaz cte un numr natural de cel mult 4
cifre. tiind c x<y, care dintre urmtoarele expresii C/C++ este egal cu 1 dac i numai
dac numrul memorat de variabila t aparine intervalului nchis [x,y]? (4p.)
a. (t<x) && (t>y) b. (t>=x) && (t<=y)
c. (t>=x) || (t<=y) d. (t<x) || (t>y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [x] partea ntreag a numrului real x i cu a%b
restul mpririi numrului ntreg a la numrul ntreg nenul b.
a) Scriei valoarea care se va afia pentru n=76261. (6p.)
b) Scriei o valoare care poate fi citit pentru variabila n
astfel nct numrul afiat s fie 6. (4p.)
citete n (numr natural)
repet
nn+n%10
n[n/10]
pn cnd n<10
scrie n
c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
repet...pn cnd cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 059

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila s memoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++ este
nenul dac i numai dac lungimea efectiv a irului este strict mai mic dect 10? (4p.)
a. strlen(s)<10 b. strlen(s,10)<0
c. leng(s)<10 d. s-0<10
2. Care dintre urmtoarele afirmaii este adevrat? Orice graf neorientat cu 4 noduri i 4
muchii : (4p.)
a. are gradele tuturor nodurilor numere pare b. nu are cicluri
c. este conex d. este arbore

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Fie T un arbore cu rdcin. Arborele are 8 noduri numerotate de la 1 la 8 i este descris
prin urmtorul vector de tai: (4,5,0,3,4,5,4,5). Care sunt frunzele arborelui? (6p.)
4. Fie a o variabil care memoreaz o matrice cu 10 linii i 10 coloane numerotate de la 1 la
10, iar i i j dou variabile de tip int ale cror valori sunt cuprinse ntre 1 i 10. Scriei o
expresie n limbajul C/C++ care s fie nenul dac i numai dac a[i][j] se afl pe
penultima linie i sub diagonala principal a matricei a. (6p.)
5. Scriei un program C/C++ care citete de la tastatur un ir de cel mult 50 de caractere
(litere mici i mari ale alfabetului englez, cifre, puncte, virgule i spaii) i afieaz pe ecran
cifra care apare de cele mai multe ori n irul citit. Dac irul conine mai multe cifre cu
numr maxim de apariii, atunci se va afia cea mai mic dintre acestea. Dac irul nu
conine cifre, se va afia pe ecran mesajul NU.
Exemplu: dac se citete irul:
Voi lua 9,5 la matematica 10 la informatica si 10 la romana
atunci se va afia cifra 0 (pentru c cifrele 0 i 1 apar de cele mai multe ori n ir i 0 este
cea mai mic dintre ele) (10p.)

Varianta 59 - informatica
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
Subiectul III (30 de puncte) - Varianta 059

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele
care conin toate literele din mulimea {a,m,i,c}, astfel nct fiecare liter s apar exact o
dat ntr-un cuvnt. Cte soluii sunt generate dup cuvntul amic i nainte de cuvntul
cami? (4p.)
a. 6 b. 4 c. 1 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Se consider subprogramul f, definit
alturat. Ce valoare are f(10)?
Dar f(8261)? (6p.)
int f(int a)
{
if(a<10)
return 7;
return f(a/100)*10+8;
}
3. Fiierul text bac.txt conine, pe o singur linie, cel puin 2 i cel mult 100 de numere
naturale nenule distincte de cel mult 4 cifre fiecare, numerele fiind separate prin cte un
spaiu. Scriei un program C/C++ care citete toate numerele din fiier i scrie pe ecran
ultima cifr a produsului celor mai mari dou numere dintre cele citite.
Exemplu: dac fiierul bac.txt conine numerele:
1017 48 312 5742 162
atunci se va afia: 4 (ultima cifr a produsului numerelor 1017, 5742) (10p.)
4. Se consider subprogramul divizor, cu doi parametri, a i d , care:
primete prin intermediul parametrului a un numr natural nenul de cel mult 4 cifre, strict
mai mare ca 1;
furnizeaz prin intermediul parametrului d, cel mai mic divizor al lui a strict mai mare
dect 1.
a) Scriei numai antetul subprogramului divizor. (4p.)
b) Scriei declarrile de date i programul principal C/C++ care citete de la tastatur un
numr natural x (x>1), i, prin apeluri utile ale subprogramului divizor, verific dac x
este numr prim. Programul va afia pe ecran, n caz afirmativ, mesajul DA, iar n caz
contrar mesajul NU. (6p.)

Varianta 59 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 060

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Fiecare dintre variabilele ntregi x, y i t memoreaz cte un numr natural de cel mult 4
cifre. tiind c x<y, care dintre urmtoarele expresii C/C++ este egal cu 1 dac i numai
dac numrul memorat de variabila t nu aparine intervalului deschis (x,y)? (4p.)
a. (t<=x) || (t>=y) b. (t>x) || (t<y)
c. (t<=x) && (t>=y) d. (t>x) && (t<y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod:
S-a notat cu [x] partea ntreag a numrului real x i cu a%b
restul mpririi numrului ntreg a la numrul ntreg nenul b.
a) Scriei valoarea care se va afia pentru n=32751. (6p.)
b) Scriei cea mai mic valoare de 5 cifre distincte care
poate fi citit pentru variabila n astfel nct numrul
afiat s fie 5. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n (numr natural)
c10
ct timp n%2=1 execut
cn%10
n[n/10]

scrie c
d) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 060

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila s memoreaz un ir de caractere. Care dintre urmtoarele expresii C/C++ este
nenul dac i numai dac lungimea efectiv a irului este un numr par? (4p.)
a. s-2==0 b. strlen(s,2)=0
c. leng(s)%2 d. strlen(s)%2==0
2. Dac G este un graf neorientat cu 4 noduri i 2 componente conexe, atunci graful are cel
mult: (4p.)
a. 4 muchii b. 2 muchii c. 3 muchii d. o muchie

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Dac T este un arbore cu rdcin cu 100 de noduri, care este numrul minim de frunze pe
care le poate avea T? (6p.)
4. Fie a o matrice cu 5 linii i 5 coloane numerotate de la 1 la 5. Fiecare element a[i][j]
(1i5, 1j5) din matrice memoreaz valoarea expresiei (i-1)*5+j. Care este
valoarea sumei elementelor de pe ultima coloan a matricei? (6p.)
5. Scriei un program C/C++ care citete de la tastatur un ir de cel mult 50 de caractere
(litere mici i mari ale alfabetului englez, cifre i spaii) i afieaz pe ecran litera mic cel
mai des ntlnit n irul citit. Dac exist mai multe litere mici cu numr maxim de apariii,
programul o va afia pe prima dintre ele n ordine alfabetic. Dac irul nu conine litere
mici, atunci pe ecran se va afia mesajul nu.
Exemplu: dac se citete irul:
mergem la munte
atunci se va afia: e (pentru c literele e i m apar de cele mai multe ori n ir i e este prima
dintre ele n ordine alfabetic). (10p.)

Varianta 60 - informatica
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
Subiectul III (30 de puncte) - Varianta 060

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se utilizeaz metoda backtracking pentru a genera toate cuvintele care conin toate literele din
mulimea {i,n,f,o}, astfel nct fiecare liter s apar exact o dat ntr-un cuvnt; tiind c
primul cuvnt generat este info, iar al doilea este inof, care este ultimul cuvnt obinut? (4p.)
a. ofni b. oinf c. onif d. ofin

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(5)?
Dar f(23)? (6p.)
int f(int x)
{
if(x%2==0)
return 0;
return 1+f(x/2);
}
3. Fiierul text bac.txt conine, pe prima sa linie, 100 de numere naturale de cel mult 4 cifre
fiecare, numerele fiind ordonate cresctor i separate prin cte un spaiu, iar pe a doua linie
un singur numr natural x. Scriei un program C/C++ care citete toate numerele din fiier i
verific dac x se afl n irul celor 100 de numere aflate pe prima linie a fiierului. n caz
afirmativ, se va afia pe ecran mesajul DA, altfel se va afia mesajul NU.
Exemple: dac fiierul bac.txt conine:
17 38 40 45 50 51 52 53 54 55 ... 145
52
atunci se va afia: DA ;
dac fiierul bac.txt conine:
2 11 15 16 20 25 30 35 40 ... 495
33
atunci se va afia: NU. (10p.)
4. Se consider subprogramul radical, cu doi parametri, a i x ,care:
primete prin intermediul parametrului a, un numr natural nenul de cel mult 4 cifre;
furnizeaz prin intermediul parametrului x cel mai mare numr natural cu proprietatea c
x
2
este mai mic sau egal cu a; de exemplu, dac a=20, subprogramul va furniza prin x
valoarea 4.
a) Scriei numai antetul subprogramului radical. (4p.)
b) Scriei programul C/C++ care citete de la tastatur un numr natural nenul de cel mult 4
cifre, n, i prin apeluri utile ale subprogramului radical, verific dac n este ptrat perfect.
Programul va afia pe ecran n caz afirmativ mesajul DA, iar n caz contrar mesajul NU. (6p.)

Varianta 60 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 061
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi x i y memoreaz dou numere naturale cu cel mult 4 cifre fiecare. Care
dintre expresiile de mai jos are valoarea 1, dac i numai dac valoarea memorat de x
aparine intervalului [10,100] i valoarea memorat de y aparine intervalului [5,30]?
(4p.)
a. (x<=100 && x>10) && (y>=5 || y<30) b. (x<=100 && x>=10) && (y<5 && y<=30)
c. (x<=100 && x>=10)|| (y>=5 && y<=30) d. !((x>100 || x<10) || (y<5 || y>30))

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z], partea ntreag a
numrului real z.
a) Scriei ce valoare se va afia dac se citesc numerele
a=8231 i b=3074. (6p.)
b) Scriei cte perechi de numere formate din cte o
singur cifr pot fi citite pentru a i b (a>b), astfel
nct, de fiecare dat, valoarea afiat s fie nenul?
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d)
Scriei n pseudocod un algoritm echivalent cu cel dat
n care structura ct timp...execut s fie
nlocuit cu o structur repetitiv cu test final.
(6p.)
citete a,b
(numere naturale care au
acelai numr de cifre )
n0
ct timp ab execut
xa%10
yb%10
dac x<y atunci
nn*10+x
altfel
nn*10+y

a[a/10]
b[b/10]

scrie n


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 061

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul de componente conexe ale grafului
neorientat G, din desenul alturat?
(4p.)




a. 6 b. 1 c. 3 d. 2
2. Care vor fi valorile afiate
dup executarea secvenei
alturate? (4p.)
char s1[20]=variabila, s2[20]=varianta;
if(strcmp(s1,s2)<0 && strlen(s1)<strlen(s2))
printf(%s %s,s1,s2); | cout<<s1<< <<s2;
else
printf(%s %s,s2,s1); | cout<<s2<< <<s1;
a. variabila varianta b. variantavariabila
c. varianta variabila d. variabila variabila

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un arbore cu rdcin, cu 100 noduri, numerotate de la 1 la 100.
a) Care este numrul de muchii din arbore? (3p.)
b) Care este numrul maxim de cicluri pe care acesta l poate conine? (3p.)
4. Se consider o stiv, iniial vid, n care s-au introdus n ordine valorile x,z,y i o
coad, iniial vid, n care au fost introduse, n ordine, valorile a,b,c,d,e,f. Care va fi
elementul din vrful stivei dac se extrag toate elementele din coad i se adaug n
ordinea extragerii n stiv? (6p.)
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (2<n15) i
construiete n memorie o matrice ptrat cu n linii i n coloane n care:
- ultima linie conine, n ordine, numerele 1,2,3,..,n
- elementele situate deasupra diagonalei principale sunt nule
- oricare alt element este obinut prin nsumarea elementelor vecine cu el, aflate pe linia
imediat urmtoare, pe aceeai coloan cu el sau pe una din coloanele alturate.
Programul va afia pe ecran matricea obinut pe n linii, elementele fiecrei linii fiind
separate prin cte un spaiu.

Exemplu: pentru n=4 pe ecran se va afia:

(10p.)
27 0 0 0
9 18 0 0
3 6 9 0
1 2 3 4

Varianta 61 - informatica
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
Subiectul III (30 de puncte) - Varianta 061

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz, utiliznd metoda backtracking, toate modalitile de repartizare a n teme de
proiecte, numerotate de la 1 la n, pentru m elevi (n<m), numerotai de la 1 la m, astfel nct
fiecare tem s fie rezolvat de cel puin un elev. Care este numrul total de soluii
generate pentru m=3 i n=2, dac primele 3 soluii generate sunt, n ordine, 1 1 2, 1 2
1, 1 2 2? O soluie este scris sub forma t
1
, t
2
, ...,t
m
, unde t
i
reprezint tema
repartizat elevului i (1im, 1t
i
n). (4p.)
a. 12 b. 6 c. 4 d. 8

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit alturat. Ce
valoare are f(4)? Dar f(456)? (6p.)
int f(int x)
{if(x>=1)
return f(x-1)+1;
else
return 0;}
3. Subprogramul cifra primete prin parametrul x un numr real nenul pozitiv i furnizeaz
prin parametrul y valoarea cifrei unitilor prii ntregi a lui x.
Exemplu: dac x=34.567, atunci valoarea furnizat de subprogram este 4.
a) Scriei definiia complet a subprogramului cifra. (10p.)
b) Scriei un program C/C++ care citete de la tastatur dou numere reale cu cel mult dou
zecimale, numere reprezentnd mediile semestriale obinute de un elev. Programul stabilete,
folosind apeluri utile ale subprogramului cifra, dac cele dou medii citite se afl n aceeai
categorie de medii sau nu. Precizm c orice medie, n funcie de intervalul n care se
ncadreaz, face parte din una dintre categoriile: [3,3.99], [4,4.99], [5,5.99],
[6,6.99], [7,7.99], [8,8.99] sau [9,10]. n cazul n care ambele medii fac parte din
aceeai categorie, programul va afia mesajul Da, altfel va afia mesajul Nu. (6p.)
4. Scriei un program C/C++ care creeaz fiierul text SIR.TXT i scrie n el, n ordine
alfabetic, toate irurile formate din dou caractere distincte, litere mici ale alfabetului
englez. Fiecare ir va fi scris pe cte o linie a fiierului. (4p.)


Varianta 61 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 062

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Toate variabilele din secvena de instruciuni
C/C++ alturat sunt ntregi. Care dintre
urmtoarele afirmaii este adevarat? (4p.)
if (a>b)
{ aux=a;a=b; b=aux;}
for(i=a;i<=b;i++)
printf(%d,i); | cout<<i;

a. Secvena conine o instruciune repetitiv
inclus ntr-o instruciune alternativ.
b. Secvena conine o instruciune
alternativ urmat de o instruciune
repetitiv.
c. Secvena conine o instruciune
alternativ, urmat de o instruciune
repetitiv, urmat de o instruciune de
afiare.
d. Secvena conine o instruciune
alternativ inclus ntr-o instruciune
repetitiv.


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei valorile care se afieaz dac se citete
numrul x=1628. (6p.)
b) Scriei o valoare cu minimum 3 cifre ce poate fi citit
pentru x, astfel nct toate numerele afiate s fie
egale ntre ele. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d)
Scriei n pseudocod un algoritm echivalent cu cel
dat n care structura ct timp...execut s fie
nlocuit cu o structur repetitiv cu test final. (6p.)
citete x
(numr natural)
auxx
t1
ct timp aux>9 execut
auxaux/10
tt*10

auxx
repet
cx%10
x[x/10]
xc*t+x
scrie x
pn cnd x=aux


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 062

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre urmtoarele afirmaii referitoare la graful
neorientat G, reprezentat n figura alturat, este
adevrat? (4p.)

a. Graful parial al lui G obinut prin
eliminarea muchiei [5,2] este un arbore
b. Graful nu conine cicluri
c. Cel mai lung lan, care conine numai
noduri distincte, are lungimea 2
d. Numrul nodurilor de grad par este egal
cu numrul nodurilor de grad impar
2. Considernd declarrile alturate, care dintre
urmtoarele referiri este corect din punct de vedere
sintactic ? (4p.)
struct cerc
{float raza;
int x,y;};
cerc c;
a. cerc.x b. c.x c. c.cerc.x d. raza.x

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider graful orientat G cu 6 vrfuri numerotate cu numerele de la 1
la 6, definit cu ajutorul listelor de adiacen alturate. Care este numrul
de circuite distincte din graful G? Dou circuite sunt distincte dac difer
prin cel puin un arc.
(6p.)
1: 2 6
2: 3
3:
4: 3
5: 4 6
6: 3
4. Se consider o stiv S1, iniial vid, n care s-au introdus n ordine valorile a,b,c,d i o
alt stiv S2, iniial vid, n care au fost introduse, n ordine, valorile e,f,g,h. Care va fi
valoarea elementului din vrful stivei S1 i care va fi valoarea elementului din vrful stivei
S2 dac se extrag jumtate dintre elementele din stiva S2 i se adaug, n ordinea
extragerii, n stiva S1? (6p.)
5. Scriei un program C/C++ care citete de la tastatur un text de cel mult 255 de caractere,
dintre care cel puin unul este o liter mic a alfabetului englez, i afieaz pe ecran pe o
singur linie, desprite prin cte un spaiu, toate literele mici ale alfabetului englez care
apar n text. Fiecare liter va fi afiat o singur dat, n ordinea primei ei apariii n text.
(10p.)

Exemplu: pentru textul:
Calculati valoarea expresiei
Pe ecran se va afia:
a l c u t i v o r e x p s

Varianta 62 - informatica
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
Subiectul III (30 de puncte) - Varianta 062

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Utiliznd metoda backtracking pentru afiarea tuturor modalitilor de descompunere a unui
numr natural nenul ca o sum de numere naturale nenule, pentru n=3, se obin n ordine
soluiile: 1+1+1; 1+2; 3. Folosind aceeai metod pentru n=4, care este soluia generat
imediat dup 1+1+2? (4p.)
a. 1+3 b. 1+2+1 c. 1+1+1+1 d. 2+2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Considerm subprogramul f, definit alturat.
Ce se afieaz pe ecran la apelul
f(4962);? (6p.)

void f(int n)
{int c;
if(n!=0)
{c=n%10;
printf(%d,c);| cout<<c;
f(n/10);
printf(%d,c);| cout<<c;
}
}
3. Scriei definiia complet a unui subprogram fibo cu doi parametri, n i v, care primete
prin intermediul parametrului n un numr natural (1<n<30) i returneaz prin intermediul
parametrului v un tablou unidimensional care conine primii n termeni impari ai irului lui
Fibonacci (amintim c irul lui Fibonacci este: 1,1,2,3,5,8,13,21,).. (10p.)
4. a) Fiierul date.in conine un ir de cel mult 10000 numere naturale (printre care cel puin
un numr par i cel puin un numr impar), cu cel mult dou cifre fiecare, separate prin cte
un spaiu. Scriei un program C/C++ care citete numerele din fiierul date.in i scrie n
fiierul text date.out valorile distincte citite, separate prin cte un spaiu, respectndu-se
regula: pe prima linie vor fi scrise numerele impare n ordine cresctoare, iar pe linia a doua
numerele pare, n ordine descresctoare. Alegei o metod eficient din punctul de vedere
al timpului de executare.
Exemplu: dac pe prima linie a fiierului date.in se afl numerele:
75 12 3 3 18 75 1 3
atunci fiierul date.out va conine:
1 3 75
18 12 (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)

Varianta 62 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 063

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Considerm variabilele ntregi i i j. Care dintre urmtoarele secvene de instruciuni
C/C++ determin afiarea pe ecran , n urma executrii, a succesiunii de cifre 55? (4p.)
a. i=5; j=6;
while(j>4){
printf(%d,i); | cout<<i;
j--;
}
b. i=5; j=6;
while(j>4)
printf(%d,j); | cout<<j;
j--;
c. j=5;
for(i=5;i<=5;i++)
printf(%d,i); | cout<<i;
d. j=5;
for(i=1;i<2;i++)
printf(%d,j); | cout<<j;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural
x la numrul natural nenul y i cu [z] partea
ntreag a numrului real z.
a) Scriei ce se afieaz dac n=3, d=2, iar
valorile citite pentru x sunt, n ordine, 40, 19,
56. (6p.)
b) Pentru n=3 i d=2, scriei 3 valori distincte
care pot fi citite n ordine pentru x, astfel
nct valorile afiate s fie 0 0. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei un algoritm pseudocod echivalent cu
cel dat n care structura ct
timp...execut s fie nlocuit cu o
structur repetitiv cu test final. (6p.)
citete n, d
(numere naturale nenule)
b0
v0
pentru i1,n execut
citete x (numr natural nenul)
a0
auxx
ct timp x % d = 0 execut
aa+1
x[x/d]

dac a>b atunci
ba
vaux


scrie v, ,b


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 063

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un arbore G, cu rdcin, memorat cu ajutorul vectorului de tai urmtor:
T=(2,0,4,2,4,7,2). Care dintre urmtoarele afirmaii este adevrat? (4p.)
a. Nodurile 1,4 i 6 sunt frai. b. G este conex i prin eliminarea unei
muchii oarecare din G, graful obinut nu
este conex.
c. Prin eliminarea muchiei [6,7] se obine
un graf parial, conex.
d. Arborele G are 5 frunze.
2. Se consider un tablou bidimensional a, format din numere
naturale, cu n linii i n coloane, numerotate de la 1 la n. Ce
reprezinta valoarea variabilei x, dup executarea secvenei
de program alturate? (4p.)
x=a[n][1];
for(i=n;i>=1;i--)
if (x<a[i][n-i+1])
x=a[i][n-i+1];
a. cel mai mare numr de pe diagonalele
tabloului a
b. cel mai mare numr de pe diagonala
secundar a tabloului a
c. cel mai mare numr de pe diagonala
principal a tabloului a
d. cel mai mare numr din tabloul a

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Care dintre vrfurile grafului orientat din
figura alturat, au gradul interior un numr
par? (6p.)

4. Se consider variabilele s1 i s2 care memoreaz fiecare cte un ir de maximum 50 de
caractere. Scriei secvena de instruciuni care, n urma executrii, afieaz cele dou iruri
de caractere n ordinea cresctoare a lungimilor lor. (6p.)
5. Scriei un program n limbajul C/C++ care citete de la tastatur dou valori naturale n i
m(1n24, 1m24) i construiete n memorie un tablou bidimensional cu n linii i m
coloane format din toate numerele naturale de la 1 la n*m, ca n exemplu. Programul va
afia pe ecran, pe n linii, tabloul obinut, elementele fiecrei linii fiind separate prin cte un
spaiu. Exemplu: pentru n=5 i m=4 se va afia:
20 15 10 5
19 14 9 4
18 13 8 3
17 12 7 2
16 11 6 1

(10p.)

Varianta 63 - informatica
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
Subiectul III (30 de puncte) - Varianta 063

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz, prin metoda backtracking, toate partiiile mulimii A={1,2} obinndu-se
urmtoarele soluii: {1}{2};{1,2}. Se observ c dintre acestea, prima soluie e alctuit
din exact dou submulimi. Dac se folosete aceeai metod pentru a genera partiiile
mulimii {1,2,3} stabilii cte dintre soluiile generate vor fi alctuite din exact dou
submulimi. (4p.)
a. 2 b. 1 c. 3 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Se consider subprogramul f, definit alturat.
Ce valoare are f(2)? Dar f(10)? (6p.)
int f(int i)
{ if(i>=1)
return f(i-1)+i;
else return 0;
}
3. Subprogramul verif primete prin singurul su parametru, x, un numr natural nenul cu
cel mult 9 cifre i returneaz valoarea 1 dac numrul conine cel puin o secven de 3
cifre impare alturate i 0 n caz contrar.
Exemplu: dac x=7325972 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului verif. (6p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural nenul n cu exact
6 cifre i, folosind apeluri utile ale subprogramului verif, verific dac n are primele trei
cifre impare. Programul afieaz pe ecran mesajul Da n caz afirmativ i mesajul Nu n caz
contrar.
Exemple: dac se citete n=132567 se va afia mesajul Nu, iar dac n=979243, se va
afia mesajul Da. (4p.)
4.
Pentru un ir de numere naturale, numim nod al irului un termen din ir care are doi
vecini, termenul precedent i termenul urmtor din ir, i valoarea termenului respectiv este
strict mai mic dect suma valorilor celor doi vecini ai si.
Fiierul text date.in conine un ir de cel puin dou i cel mult 1000 de numere naturale
avnd maximum 6 cifre fiecare, numere separate prin cte un spaiu. Scriei un program
C/C++ care citete toate numerele din fiier i afieaz numrul de noduri ale irului citit.
Exemplu: dac fiierul date.in are urmtorul coninut:
51 20 100 43 43 618 5000 31 2020 114 116 4
atunci pe ecran se afieaz 6 (cele ase numere subliniate reprezint noduri ale irului).
(10p.)

Varianta 63 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 064
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag a memoreaz un numr natural format din exact trei cifre, toate cifrele
fiind nenule i distincte. Care dintre urmtoarele instruciuni C/C++ atribuie variabilei e
suma cifrelor lui a? (4p.)
a. e=a%10/10+a/100%10+a%10; b. e=a/10+a/100+a/1000;
c. e=a*10/1000+a/10%10+a%10; d. e=a*10/1000+a%100%10+a%10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
a) Scriei ce se afieaz pentru n=4. (6p.)
b) Scriei o valoare care poate fi citit pentru
variabila n astfel nct, n urma executrii
algoritmului, valoarea 20 s fie afiat de
exact 6 ori. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei un algoritm pseudocod echivalent cu
cel dat n care fiecare structur de tip
pentru...execut s fie nlocuit cu cte
o structur repetitiv de tip ct
timp...execut. (6p.)
citete n
(numr natural nenul)
k0
pentru i1,n execut
pentru j1,i execut
scrie i+j
kk+1


scrie k


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 064

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considernd declarrile alturate, care dintre
urmtoarele referiri este corect din punct de vedere
sintactic ? (4p.)
struct punct{float x,y;};
struct fig
{ char tip;
punct a,b,c;}
fig e;
a. e.fig.tip b. a.e c. e.punct.x d. e.a.x
2. Se consider un tablou bidimensional a cu n linii i n
coloane, numerotate de la 1 la n, cu elemente
numere ntregi. Ce reprezinta valoarea variabilei
ntregi x, dup executarea secvenei de program
alturate? (4p.)
x=0;
for(i=1;i<=n;i++)
x=x+a[i][i];
a. Suma elementelor de pe diagonala
principal a tabloului a
b. Suma elementelor de pe diagonala
secundar a tabloului a
c. Suma elementelor tabloului a d. Cel mai mare element de pe diagonala
principal a tabloului a

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider un graf neorientat reprezentat prin listele de adiacen
alturate. Construii matricea de adiacen corespunztoare grafului
dat. (6p.)

1: 2 3
2: 1 3 4
3: 1 2 4 5
4: 2 3 5
5: 3 4
4. ntr-un graf orientat G cu 6 vrfuri numerotate cu numere distincte de la 1 la 6, exist arc de la
vrful i la vrful j dac i numai dac i<j i j-i>1. Care sunt vrfurile din graf ce au
gradul interior mai mare dect gradul exterior? (6p.)
Scriei un program C/C++ care citete de la tastatur un text format din cel mult 200 de
litere ale alfabetului englez, n care cuvintele sunt separate printr-un singur spaiu i
afieaz pe ecran numrul de cuvinte din textul citit, care au prima, respectiv ultima liter,
vocal. n cazul n care n text nu exist un astfel de cuvnt, se va afia pe ecran mesajul
NU EXISTA. Se consider vocal orice liter din mulimea {a,A,e,E,i,I,o,O,u,U}.
5.
Exemplu: dac textul introdus este:
Eratostene a sugerat ca anii bisecti se repeta la fiecare patru ani
pe ecran se va afia :
4 (10p.)

Varianta 64 - informatica
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
Subiectul III (30 de puncte) - Varianta 064

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz, utiliznd metoda backtracking, toate modalitile de aezare a n ture pe o
tabl de ah cu n linii i n coloane, astfel nct s nu existe pe tabl ture care se atac ntre
ele (dou ture se atac reciproc dac se afl pe aceeai linie sau pe aceeai coloan). O
soluie generat are forma (c
1
,c
2
,,c
n
), unde c
i
reprezint coloana pe care se afl tura
de pe linia i.
Dac primele 2 soluii generate pentru n=5 sunt (1,2,3,4,5) i (1,2,3,5,4), care
este prima soluie generat n care primul numr este 4? (4p.)
a. (4, 1, 3, 2, 5) b. (4, 2, 5, 1, 3) c. (4, 3, 5, 3, 1) d. (4, 1, 2, 3, 5)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce se afieaz pe ecran la
apelul f(9,9);?

(6p.)
void f(int i,int j)
{ if(j>0) f(i,j-1);
printf(%d*%d=%d\n,i,j,i*j);
| cout<<i<<*<<j<<=<<i*j<<endl;
}
3. Subprogramul diviz, cu doi parametri, primete prin intermediul parametrului n un numr
natural nenul (2n200), iar prin intermediul parametrului a, un tablou unidimensional care
conine n valori naturale nenule, fiecare dintre acestea avnd cel mult patru cifre.
Elementele tabloului sunt numerotate de la 1 la n.
Subprogramul returneaz o valoare egal cu numrul de perechi (a
i
,a
j
), 1i<jn, n
care a
i
este divizor al lui a
j
, sau a
j
este divizor al lui a
i
.
Scriei definiia complet a subprogramului diviz, n limbajul C/C++.
Exemplu: pentru n=5 i a=(4,8,3,9,4) subprogramul returneaz valoarea 4. (10p.)
4. Fiierul text date.in conine pe prima linie, separate prin cte un spaiu, cel mult 1000 de
numere naturale, fiecare dintre ele avnd maximum 9 cifre.
a) Scriei un program C/C++ care citete numerele din fiierul date.txt, determin i
afieaz pe ecran numrul de elemente ale celei mai lungi secvene ordonate strict
descresctor, formate din valori citite consecutiv din fiier. Alegei o metod de rezolvare
eficient din punctul de vedere al timpului de executare.

Exemplu: dac fiierul date.in conine
5 2 19 4 3 6 3 2 1 0 8
(6p.)
pe ecran se afieaz:
5
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). ( 4p.)


Varianta 64 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 065
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele a,b i z sunt reale, iar ab. Care dintre expresiile C/C++ urmtoare are
valoarea 1 dac i numai dac valoarea variabilei z nu aparine intervalului nchis
determinat de valorile variabilelor a i b ? (4p.)
a. (z>a||(z>b) b. (z<a)||(z>b) c. z<a && z>b d. z>=a && z<=b

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valorile care se vor afia dac se citete
numrul n=1327. (6p.)
b) Scriei dou valori diferite, cu exact 4 cifre fiecare, ce
pot fi citite pentru variabila n astfel nct, n urma
executrii algoritmului, valoarea afiat pentru m s
fie 3. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat
n care structura repet... pn cnd s fie
nlocuit cu o structur repetitiv cu test iniial. (6p.)
citete n
(numr natural nenul, n10000)
m0
vn
un%10
repet
cn%10
vv*10+c
dac c=u atunci
mm+1

n[n/10]
pn cnd n=0
scrie v, m


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 065

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf G neorientat, conex, cu 54 de noduri i 53 de muchii.
Care dintre urmtoarele afirmaii este adevrat? (4p.)
a. G nu este arbore b. Prin eliminarea unei muchii din G se
menine proprietatea de conexitate
c. G nu are cicluri d. Gradul maxim al unui nod din G poate fi
52
2.
Dac variabila s a fost declarat astfel:
char s[15] = "INFORMATICA";
atunci strlen(s) are valoarea (4p.)
a. 10 b. 12 c. 15 d. 11

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Un arbore cu rdcin, cu 8 noduri, numerotate de la 1 la 8, este memorat cu ajutorul
vectorului de tai T=(0,1,1,1,3,5,3,3).
Care sunt fraii nodului 7? (6p.)
4. Se consider o stiv S1, iniial vid, n care s-au introdus n ordine valorile a,b,c,d,e,f i
o alt stiv S2, iniial vid, n care au fost introduse, n ordine, valorile g,h. Care va fi
elementul din vrful stivei S1 i care va fi elementul din vrful stivei S2 dac se extrag
jumtate din elementele din stiva S1 i se adaug n ordinea extragerii n stiva S2? (6p.)
5. Scriei un program n limbajul C/C++ care citete de la tastatur dou valori naturale n i m
(1n24, 1m24) i construiete n memorie un tablou bidimensional cu n linii i m coloane
format din toate numerele naturale de la 1 la n*m, ca n exemplu. Programul va afia pe
ecran, pe n linii, tabloul obinut, elementele fiecrei linii fiind separate prin cte un spaiu.


Exemplu: pentru n=4 i m=5 se va afia:
16 17 18 19 20
15 14 13 12 11
6 7 8 9 10
5 4 3 2 1
(10p.)

Varianta 65 - informatica
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
Subiectul III (30 de puncte) - Varianta 065

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz, utiliznd metoda backtracking, toate modalitile de aezare a numerelor
naturale de la 1 la 5, astfel nct oricare dou numere de aceeai paritate s nu se afle pe
poziii alturate. Dac primele 3 soluii generate sunt, n ordine: (1,2,3,4,5),
(1,2,5,4,3) i (1,4,3,5,2) care este prima soluie generat ce ncepe cu 3? (4p.)
a. (3, 2, 1, 4, 5) b. (3, 2, 5, 4, 1) c. (3, 4, 1, 2, 5) d. (3, 4, 5, 2, 1)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul recursiv alturat este
definit incomplet. Care este expresia
cu care se pot nlocui punctele de
suspensie astfel nct subprogramul
s returneze cel mai mare divizor
comun al numerelor primite prin
intermediul parametrilor a i b. (6p.)
int f(int a,int b)
{ if (...)
return a;
else
if (a>b) return f(a-b,b);
else return f(a,b-a);
}
3. Subprogramul sfx primete prin singurul su parametru, x, un numr natural din intervalul
[100,2000000000] i returneaz valoarea 1 dac ultimele trei cifre ale numrului sunt n
ordine strict descresctoare sau valoarea 0 n caz contrar.
Exemplu: dac x=24973 se va returna valoarea 1.
a) Scriei definiia complet a subprogramului sfx. (5p.)

b) Scriei un program C/C++ care citete de la tastatur un numr natural n format din exact
6 cifre i verific, utiliznd apeluri ale subprogramului sfx, dac acest numr are toate
cifrele n ordine strict descresctoare. Programul va afia mesajul Da n caz afirmativ i
mesajul Nu n caz contrar.
Exemplu: dac n=756543 se va afia Nu, iar dac n=976532 se va afia Da. (5p.)
4.
Pentru un ir de numere naturale, numim pol al irului un termen din ir care are doi vecini,
termenul precedent i termenul urmtor din ir, i valoarea termenului respectiv este strict
mai mare dect valoarea fiecruia dintre cei doi vecini ai si.
a) Fiierul text date.in conine un ir de cel puin dou i mult 10000 de numere naturale
avnd maximum 6 cifre fiecare, numere separate prin cte un spaiu. Scriei un program
C/C++ care citete toate numerele din fiier i afieaz numrul de poli ai irului citit,
folosind un algoritm eficient din punctul de vedere al memoriei utilizate. (6p.)
Exemplu: dac fiierul date.in are urmtorul coninut:
51 20 100 43 43 618 5000 31 2020 114 116 4
atunci pe ecran se afieaz 4 (cele patru numere subliniate reprezint poli ai irului)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)

Varianta 65 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 066

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x, y i z sunt ntregi, x memoreaz valoarea 7, y memoreaz
valoarea 20, iar z memoreaz valoarea 5. Care este rezultatul evalurii
expresiei aritmetice C/C++ alturate? (4p.)
x+y+x*z/y
a. 28.75 b. 28 c. 29 d. 27

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu a%b restul mpririi numrului ntreg a la
numrul ntreg nenul b.
a) Scriei ce se afieaz n urma executrii
algoritmului dac se citesc, n aceast ordine,
valorile 10, 13, 46, 70, 35, 0. (6p.)
b) Scriei un ir de valori care pot fi citite pentru
variabila x astfel nct programul s afieze, n
urma executrii, mesajul DA. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat n care s se nlocuiasc structura
repet...pn cnd cu o structur repetitiv cu
test iniial. (6p.)
n0
repet
citete x (numr natural)
dac x0 atunci
dac x%5=0 atunci
nn+1
altfel
nn-1


pn cnd x=0
dac n=0 atunci
scrie DA
altfel
scrie NU


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 066

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cum se poate accesa prima liter a denumirii unui
produs ale crui caracteristici sunt memorate n
variabila p, declarat alturat? (4p.)
struct produs{
char denumire[15];
int pret;}p;
a. produs.denumire[0] b. denumire.p[0]
c. p.denumire[0] d. P->denumire[0]
2. Se consider un graf neorientat complet cu trei noduri. Care este numrul minim de muchii care
trebuie eliminate din acest graf astfel nct graful parial rezultat s aib dou componente
conexe? (4p.)
a. 1 b. 2 c. 0 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Un arbore cu rdcin avnd 9 noduri, numerotate de la 1 la 9, este memorat cu ajutorul
vectorului de tai t=(2,5,5,3,0,2,4,1,1). Scriei toi ascendenii nodului 4. (6p.)
4. Se consider secvena alturat n care mat este un
tablou bidimensional cu 5 linii i 5 coloane, numerotate
de la 1 la 5, iar aux, j, x, y sunt variabile de tip ntreg.
tiind c orice element al tabloului este iniial egal cu
numrul de ordine al liniei pe care se afl, precizai care
sunt elementele tabloului mat dup executarea secvenei
alturate dac x memoreaz valoarea 2 i y memoreaz
valoarea 4? (6p.)
for(j=1;j<=5;j++)
{aux=mat[x][j];
mat[x][j]=mat[y][j];
mat[y][j]=aux;}
5. Scriei programul C/C++ care citete de la tastatur un cuvnt format din cel mult 50 de
caractere, litere mari ale alfabetului englez, i afieaz pe ecran, fiecare pe cte o linie,
toate prefixele acestuia, n ordine cresctoare a lungimilor. Un prefix de lungime k al unui
cuvnt este un subir format din primele k caractere ale acestuia. (10p.)

Exemplu: dac se citete cuvntul BACALAUREAT se vor afia prefixele:
B
BA
BAC
BACA
BACAL
BACALA
BACALAU
BACALAUR
BACALAURE
BACALAUREA
BACALAUREAT

Varianta 66 - informatica
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
Subiectul III (30 de puncte) - Varianta 066

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul recursiv
definit alturat. Ce se va afia n urma
apelului bac(5);? (4p.)
void bac(int x)
{ if (x!=0)
{ bac(x-1);
cout<<x; | printf(%d,x);
}
}
a. 55555 b. 54321 c. 12345 d. 11111

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se genereaz n ordine cresctoare, toate numerele naturale de 5 cifre distincte, care se
pot forma cu cifrele 2,3,4,5 i 6. S se precizeze numrul generat imediat naintea i
numrul generat imediat dup secvena urmtoare : 34256, 34265, 34526. (6p.)
3. S se scrie n limbajul C/C++ definiia complet a subprogramului calcul, care primete
prin intermediul parametrului n un numr natural nenul (1n10000), iar prin intermediul
parametrului a, un tablou unidimensional care conine n valori naturle, fiecare dintre aceste
valori avnd cel mult 9 cifre. Subprogramul returneaz cel mai mare divizor comun al
elementelor tabloului a. (10p.)

Exemplu: n urma apelului, pentru n=5 i tabloul unidimensional (12,36,48,6,60), se va
returna 6.
4. Fiierele text A.TXT i B.TXT conin cel mult 10000 de numere naturale cu cel mult 9 cifre
fiecare, scrise fiecare pe cte o linie.
a) Scriei un program C/C++ care citete numerele din cele dou fiiere i, printr-o metod
eficient din punct de vedere al timpului de executare i al spaiului de memorie utilizat,
afieaz pe ecran cte dintre numerele din fiierul A.TXT sunt strict mai mici dect toate
numerele memorate n fiierul B.TXT. (6p.)

Exemplu: dac fiierul A.TXT
are coninutul alturat,
41111
81111
11111
91111
51111
111111
31111
431111
61111
201111
iar fiierul B.TXT are coninutul
alturat:
91111
91111
61111
91111
91111
81111
61111
91111


atunci programul va afia valoarea 4, deoarece 41111, 11111, 51111, 31111 sunt mai
mici dect toate elementele din fiierul B.TXT.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia. (4p.)

Varianta 66 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 067

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x, y, z i w sunt ntregi, x memoreaz valoarea 2, y memoreaz valoarea 3, z
memoreaz valoarea 5, iar w memoreaz valoarea 7. Care dintre urmtoarele expresii,
scrise n limbajul C/C++, are valoarea 1? (4p.)
a. (y>z) || (x>3) b. (x==z) && ((y==3)||(w==7))
c. (z<=w) && (x>0) || (y>=x) d. (y>=3) && (w<7)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a numrului
real z.
a) Scriei valoarea afiat dac pentru n se citete
valoarea 52381. (6p.)
b) Scriei o valoare de 3 cifre care poate fi citit pentru
variabila n astfel nct s se afieze numrul 0. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura ct timp...execut
cu o structur repetitiv cu test final. (6p.)
citete n (numr natural)
z0
ct timp n>0 execut
cn%10
n[n/10]
dac c<5 atunci
zz*10+2*c


scrie z


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 067

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cum se poate accesa prima liter a numelui unei
persoane ale crei date de identificare sunt
memorate n variabila p, declarat alturat? (4p.)
struct persoana{
char nume[20],prenume[20];
int varsta;} p;
a. p.nume[0] b. persoana.nume[0]
c. p->nume[0] d. nume.p[0]
2. Se consider un graf neorientat cu patru noduri n care fiecare nod are gradul 2. Care este
numrul minim de muchii care trebuie eliminate astfel nct graful s aib dou componente
conexe? (4p.)
a. 1 b. 0 c. 2 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Un arbore cu rdcin avnd 8 noduri, numerotate de la 1 la 8, este memorat cu ajutorul vectorului
de tai t=(8,8,0,3,4,3,4,6). Scriei care sunt descendenii nodului 4? (6p.)
4. Se consider secvena alturat n care a este o matrice
ptratic cu 4 linii i 4 coloane, numerotate de la 1 la 4, iar
i i j sunt variabile de tip ntreg. Care este matricea a
obinut dup executarea secvenei? (6p.)
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
if (i<=j) a[i][j]=i;
else a[i][j]=j;
5. Scriei programul C/C++ care citete de la tastatur un cuvnt format din cel mult 50
caractere, litere mari ale alfabetului englez, i afieaz pe ecran, fiecare pe cte o linie,
toate sufixele acestuia, n ordine cresctoare a lungimilor. Un sufix de lungime k al unui
cuvnt este un subir format din ultimele k caractere ale acestuia. (10p.)

Exemplu: dac se citete cuvntul EXAMEN se vor afia sufixele :
N
EN
MEN
AMEN
XAMEN
EXAMEN


Varianta 67 - informatica
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
Subiectul III (30 de puncte) - Varianta 067

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul recursiv
definit alturat. Ce se va afia n urma
apelului bac(5);? (4p.)
void bac(int x)
{ if (x)
{ cout<<x; | printf(%d,x);
bac(x-1);
}
}
a. 54321 b. 12345 c. 11111 d. 55555

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se genereaz n ordine cresctoare, toate numerele naturale de 5 cifre distincte, care se
pot forma cu cifrele 5,6,7,8 i 9. S se precizeze numrul generat imediat naintea i
numrul generat imediat dup secvena urmtoare : 67589,67598,67859. (6p.)
3. S se scrie n limbajul C/C++ definiia complet a subprogramului calcul, care primete
prin intermediul parametrului n un numr natural nenul (1n10000), iar prin intermediul
parametrului a un tablou unidimensional care conine n valori naturale, fiecare dintre aceste
valori avnd cel mult 9 cifre. Subprogramul returneaz numrul de numere prime din tablou.
(10p.)

Exemplu: pentru n=5 i tabloul unidimensional (12,37,43,6,71) n urma apelului se va
returna 3.
4. Fiierul text NUMERE.TXT conine pe prima linie un numr natural n (1n10000) i pe a
doua linie un ir cresctor de n numere naturale, fiecare avnd cel mult 9 cifre. Numerele
de pe a doua linie sunt separate prin cte un spaiu.
a) Scriei un program C/C++ care, utiliznd o metod eficient din punct de vedere al
timpului de executare i al spaiului de memorie, afieaz pe ecran elementele distincte ale
irului aflat pe a doua linie a fiierului. (6p.)

Exemplu: dac fiierul NUMERE.TXT are
coninutul alturat
7
111 111 111 2111 4111 71111 71111


atunci programul va afia pe ecran 111 2111 4111 71111.
b) Descriei succint, n limbaj natural, metoda utilizat la punctul a), justificnd eficiena
acesteia. (4p.)


Varianta 67 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 068

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele x, y i z memoreaz valori reale, iar x<y. Care dintre expresiile de mai jos,
scrise n limbajul C/C++, are valoarea 1 dac valoarea variabilei z este situat n intervalul
nchis determinat de valorile memorate n variabilele x i y? (4p.)
a. (z>=x) && (z<=y) b. (z<=x) && (z<=y)
c. (y<x) || (z<=x) d. (z<x) || (z>y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea afiat n urma executrii algoritmului dac
se citesc, n ordine, valorile: 5, 14, 6, 15, 16, 90. (6p.)
b) tiind c valoarea citit pentru x este 7, scriei un ir
de numere distincte care pot fi citite n continuare astfel
nct valoarea afiat s fie 0. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura pentru...execut
cu o structur repetitiv ct timp...execut. (6p.)
citete x
(numr natural nenul)
nr 0
pentru i1,x execut
citete n (numr ntreg)
dac n%x=0 atunci
nrnr+1



scrie nr

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 068

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cum se poate accesa prima liter a denumirii unui material ale
crui caracteristici sunt memorate n variabila m, declarat
alturat? (4p.)
struct material{
char denumire[20];
int pret;} m;
a. denumire.m[0] b. m->denumire[0]
c. material.denumire[0] d. m.denumire[0]
2. Se consider graful neorientat cu matricea de adiacent alturat.
Care este numrul minim de muchii care trebuie eliminate astfel
nct graful s aib dou componente conexe? (4p.)
0 1 1 0 1
1 0 0 1 1
1 0 0 1 1
0 1 1 0 1
1 1 1 1 0
a. 3 b. 1 c. 2 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este vectorul de tai asociat arborelui cu
rdcin din figura alturat n care nodul 5 este nodul
rdcin? (6p.)

4. Care este funcia predefinit, n limbajul C/C++, care returneaz lungimea efectiv a unui ir
de caractere transmis ca parametru? (6p.)
5. Scriei programul C/C++ care citete de la tastatur dou numere naturale m i n
(1m50, 1n50) i m* n numere naturale de cel mult 5 cifre ce reprezint elementele
unui tablou bidimensional, i afieaz pe ecran ultima cifr a produsului elementelor pozitive
aflate pe linii cu numere de ordine pare i coloane cu numere de ordine impare.
Numerotarea liniilor, respectiv a coloanelor se va face ncepnd cu valoarea 1. Dac nu
exist elemente pozitive aflate pe linii cu numere de ordine pare i coloane cu numere de
ordine impare, se va afia mesajul NU EXISTA. (10p.)

Exemplu: pentru m=4, n=4 i matricea alturat se va afia 5
(care reprezint ultima cifr a valorii 355=5*71).
11 -21 31 41
5 -61 71 -81
91 11 21 31
-11 31 -41 0


Varianta 68 - informatica
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
Subiectul III (30 de puncte) - Varianta 068

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul recursiv definit
alturat. Cte apeluri ale funciei bac au loc
pentru x=5? Se va numra inclusiv apelul din
funcia principal. (4p.)
void bac(int x)
{ if (x)
{ bac(x-1);
cout<<x;| printf(%d,x);
}
}
a. 5 b. 6 c. 4 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se utilizeaz metoda backtracking pentru a genera toate submulimile cu p elemente ale
unei mulimi cu m elemente.
Dac m=7 i p=1,scriei care este numrul de submulimi generate.
Dar dac m=7 i p=4? (6p.)
3. S se scrie definiia complet a subprogramului calcul, care primete prin intermediul
celor doi parametri ai si dou numere ntregi, n i k (1n100000000 i 1k9), i
returneaz cifra de rang k a numrului n. Rangul unei cifre este numrul su de ordine,
numerotnd cifrele de la dreapta la stnga; cifra unitilor avnd rangul 1. Dac numrul k
este mai mare dect numrul de cifre ale lui n, atunci funcia returneaz valoarea -1.
Exemplu: dac n=9243 i k=3, n urma apelului se va returna 2. (10p.)
4. Fiierul text SIR.TXT conine pe prima linie un numr natural n (1n10000) i pe a doua
linie, separate prin spaii, un ir cresctor de n numere naturale cu cel mult 9 cifre fiecare.
Numim platou ntr-un ir de valori o secven de elemente identice situate pe poziii
alturate. Lungimea unui platou este egal cu numrul de elemente care l formeaz.
a) Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat, afieaz pe
ecran, separate printr-un spaiu, lungimea maxim a unui platou, precum i valoarea care
formeaz platoul. n cazul n care sunt mai multe platouri de aceeai lungime se va afia
valoarea cea mai mare care formeaz unul dintre aceste platouri. (6p.)

Exemplu: dac fiierul SIR.TXT
are coninutul alturat,
10
11 211 211 211 328 400 400 1201 1201 1201
atunci programul va afia pe ecran 3 1201.

b) Descriei succint, n limbaj natural, metoda utilizat la punctul a), justificnd eficiena
acesteia. (4p.)

Varianta 68 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 069

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena de instruciuni C/C++ alturat, variabilele x i y
sunt ntregi. Ce valoare va reine variabila x dup executarea
acesteia? (4p.)
x=20; y=5;
x=x+y;
y=x-2*y;
x=y+x;
a. -10 b. 25 c. 15 d. 40

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a
numrului real z.
a) Scriei valoarea afiat dac pentru x se citete
valoarea 4589 i pentru y se citete valoarea
723. (6p.)
b) Scriei toate perechile de valori care pot fi citite
pentru x i y astfel nct valoarea afiat s fie
200. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent
cu cel dat n care s se nlocuiasc structura
repet...pn cnd cu o structur
repetitiv cu test iniial. (6p.)
citete x,y
(numere naturale nenule)
t0
u1
repet
dac x%10 > y%10
atunci
z x%10
altfel
z y%10

tt+z*u
uu*10
x[x/10]
y[y/10]
pn cnd x=0 i y=0
scrie t

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 069

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cum se poate accesa prima liter a numelui unui
elev ale crui date de identificare sunt memorate
n variabila e, declarat alturat? (4p.)
struct elev{
char nume[20],prenume[20];
int varsta;}e;
a. e->nume[0] b. e.nume[0]
c. elev.nume[0] d. nume.e[0]
2. Se consider un graf neorientat conex cu ase noduri n care fiecare nod are gradul 2. Care este
numrul minim de muchii care trebuie eliminate din acest graf astfel nct graful parial rezultat s
aib dou componente conexe? (4p.)
a. 0 b. 3 c. 2 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este vectorul de tai asociat arborelui cu
rdcin din figura alturat n care nodul 1 este nodul
rdcin? (6p.)

4. Fie s i t dou variabile de tipul ir de caractere. Scriei o instruciune C/C++ prin care variabilei
t i se atribuie irul format din primele n caractere ale lui s. (6p.)
5. Scriei programul C/C++ care citete de la tastatur un numr natural n (1n50) i n* n
numere naturale de cel mult 5 cifre ce reprezint elementele unui tablou bidimensional a, cu
n linii i n coloane, i verific dac matricea este triunghiular superior. Programul va afia
pe ecran mesajul corespunztor: Este triunghiular superior respectiv Nu
este triunghiular superior. O matrice se numete triunghiular superior dac
toate elementele aflate sub diagonala principal a ei sunt nule. (10p.)

Exemplu: pentru n=3 i matricea alturat se va afia mesajul:
Este triunghiular superior
1 2 3
0 5 6
0 0 9


Varianta 69 - informatica
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
Subiectul III (30 de puncte) - Varianta 069

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se consider subprogramul recursiv
definit alturat. Cte apeluri ale funciei
bac au loc pentru x=5? Se va numra
inclusiv apelul din funcia principal.
(4p.)
void bac(int x)
{ if (x>0)
{ bac(x-2);
cout<<x; | printf(%d,x);
}
}
a. 4 b. 3 c. 6 d. 5

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele de
cte trei litere distincte din mulimea {v,a,l,s}. Care este primul cuvnt generat? Dar cel de-
al treilea ? (6p.)
3. S se scrie n limbajul C/C++ definiia complet a subprogramului calcul, care primete
prin intermediul parametrului ntreg n, un numr natural de cel mult 9 cifre i returneaz
valoarea absolut a diferenei dintre numrul de cifre pare i numrul de cifre impare
coninute de n. (10p.)
Exemplu: dac n=92465, n urma apelului se va returna valoarea 1.
4. Fiierul text NUMERE.TXT conine pe prima linie un numr natural n (1n10000) i pe a
doua linie n numere naturale cu cel mult 9 cifre fiecare. Aceste numere sunt dispuse n
ordine cresctoare i separate ntre ele prin cte un spaiu.
a) Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare, afieaz pe ecran, separate prin cte un spaiu, n
ordine cresctoare, numerele pare de pe a doua linie a fiierului, urmate de cele impare n
ordine descresctoare. (6p.)
Exemplu: dac fiierul NUMERE.TXT are
coninutul alturat,
6
212 412 5111 71113 81112 101112

atunci programul va afia pe ecran 212 412 81112 101112 71113 5111

b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia. (4p.)

Varianta 69 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 070

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre expresiile C/C++ de mai jos, are valoarea 1 dac valoarea variabilei ntregi x este
un numr ntreg par i strict pozitiv ? (4p.)
a. !((x%2!=0)||(x<=0)) b. (x%2!=0)||(x<0)
c. !((x%2==0)||(x>0)) d. ((x+1)%2==0)&&(x>=2)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu ab operaia de interschimbare a valorilor
variabilelor a i b.
a) Scriei ce valori se vor afia dac pentru x se
citete valoarea 19, iar pentru y se citete
valoarea 4. (6p.)
b) Scriei toate perechile de valori, fiecare valoare
fiind un numr de o cifr, care pot fi citite pentru
variabilele x i respectiv y, astfel nct valorile
afiate n urma executrii algoritmului s fie 2 1, n
aceast ordine. (4p.)
citete x,y
(numere naturale nenule)
dac x<y atunci
xy

n0
ct timp x>=y execut
xx-y
nn+1

scrie n, x
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)

d) Scriei n pseudocod un algoritm echivalent cu cel dat n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv cu test final. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 070

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. tiind c fiecare dintre variabilele var1, var2 memoreaz numele
i nota unui elev n forma dat de declararea alturat, indicai
care dintre urmtoarele expresii atribuie variabilei reale m media
aritmetic a notelor celor doi elevi. (4p.)
struct elev
{ char nume[30];
float nota;
}var1,var2;
a. m=(var1.nota+var2.nota)/2; b. m=var1.nota+var2.nota/2;
c. m=(var1+var2).nota/2; d. m=nota(var1+var2)/2;
2. Se consider graful neorientat reprezentat prin listele de adiacen
alturate.
Care este numrul minim de muchii care trebuie eliminate astfel
nct graful s aib dou componente conexe? (4p.)
1: 2,4,5
2: 1,3
3: 2,5,4
4: 1,3
5: 3,1
a. 0 b. 1 c. 3 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care este vectorul de tai asociat arborelui cu rdcin din
figura alturat n care nodul 5 este nodul rdcin? (6p.)

4. Considerm s o variabil de tip ir de caractere declarat astfel: char s[100];
tiind c aceast variabil memoreaz un cuvnt oarecare, scriei o instruciune n limbajul
C/C++, care permite afiarea pe ecran a ultimului caracter din cuvntul memorat n s. (6p.)
5. Scriei programul C/C++ care citete de la tastatur dou numere naturale m i n (1m24,
1n24), un numr natural x (1xm) i apoi m*n numere naturale de cel mult 5 cifre ce
reprezint elementele unui tablou bidimensional a, cu m linii, numerotate de la 1 la m, i n
coloane, numerotate de la 1 la n. Programul va determina eliminarea liniei cu numrul de
ordine x din matrice, modificarea corespunztoare a numrului de linii din matrice i afiarea
matricei obinute n urmtorul format: cte o linie a matricei pe cte o linie a ecranului,
elementele fiecrei linii fiind separate prin cte un spaiu. (10p.)

Exemplu: pentru m=3, n=4,
x=2 i matricea alturat
11 21 31 41 se va afia matricea
51 61 71 81
91 11 21 31
11 21 31 41
91 11 21 31


Varianta 70 - informatica
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
Subiectul III (30 de puncte) - Varianta 070

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider subprogramul recursiv definit
alturat. Cte apeluri ale funciei bac au loc
pentru x=4? Se va numra inclusiv apelul din
funcia principal.
void bac(int x)
{ if (x>0)
{ cout<<x; | printf(%d,x);
bac(x-2);
}
}
a. 6 b. 4 c. 5 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se utilizeaz metoda backtracking pentru a genera n ordine lexicografic toate cuvintele de
cte trei litere distincte din mulimea {d,a,n,s}. Care este primul cuvnt generat? Dar cel de-
al treilea ? (6p.)
3. S se scrie n limbajul C/C++ definiia complet a subprogramului calcul, care primete prin
parametrul n un numr natural nenul de cel mult 9 cifre i furnizeaz prin parametrul x numrul
obinut prin alturarea cifrelor pare ale lui n considerate de la dreapta ctre stnga. Dac n nu
conine nicio cifr par, x primete valoarea 0. (10p.)
Exemplu: n urma apelului calcul(9278,x), x primete valoarea 82.
4. Fiierul text NUMERE.TXT conine pe prima linie un numr natural n (1n10000) i pe a
doua linie, n numere naturale cu cel mult 9 cifre fiecare, numere nu neaprat distincte.
Aceste numere sunt dispuse n ordine cresctoare i separate ntre ele prin cte un spaiu.
a) Scriei un program C/C++ care citete valorile din fiier i, printr-o metod eficient din
punct de vedere al timpului de executare i al spaiului de memorie utilizat, afieaz pe
ecran, cu un spaiu ntre ele, valoarea care apare de cele mai multe ori n fiier i de cte ori
apare ea. Dac exist mai multe valori care apar de un numr maxim de ori, se va afia cea
mai mic dintre ele. (6p.)
Exemplu: dac fiierul
NUMERE.TXT are coninutul
alturat,
8
711 711 711 11111 11111 11111 191111 231111

atunci programul va afia pe ecran 711 3.

b) Descriei succint, n limbaj natural, metoda utilizat la punctul a, justificnd eficiena
acesteia. (4p.)

Varianta 70 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 071

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Variabila ntreag x reine un numr natural cu cel puin dou cifre. Care dintre urmtoarele
expresii C/C++ are valoarea egal cu cifra zecilor numrului natural memorat n variabila
x? (4p.)
a. x % 10 / 10 b. x (x / 10) * 10
c. x / 10 % 10 d. x (x / 10) % 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [a/b] ctul mpririi ntregi a numrului
natural a la numrul natural nenul b.
a) Scriei valoarea ce se va afia dac se citesc
pentru n valoarea 5 i pentru x, n aceast ordine,
valorile: 523, 4256, 324, 4, 86935. (6p.)
b) Dac n = 4, scriei un ir de valori pare care pot fi
citite pentru x astfel nct s se afieze 1234.
(6p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
s 0
citete n (numr natural, n<10)
pentru i1,n execut
citete x (numr natural)
ct timp x>9 execut
x [x/10]

pentru j1,i-1 execut
x x*10

s s + x

scrie s

d) Scriei n pseudocod un algoritm echivalent cu cel dat care s utilizeze n locul structurii
ct timp...execut o structur repetitiv condiionat posterior. (4p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 071

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul maxim de noduri frunz pe care le poate avea un arbore cu rdcin cu
15 noduri? (4p.)
a. 1 b. 15 c. 14 d. 0
2. Se d graful orientat definit prin matricea de
adiacen alturat. Precizai cte noduri ale
grafului au gradul interior egal cu gradul
exterior. (4p.)
0 1 0 1 0 0
1 0 1 0 0 0
1 1 0 0 0 1
0 0 0 0 1 0
0 0 1 0 0 1
0 0 0 0 1 0
a.
5
b.
6
c.
3
d.
4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider o stiv S1, iniial vid, n care s-au introdus n ordine valorile
a,b,c,d,e,f,g,h i o alt stiv S2, iniial vid. Care va fi elementul din vrful stivei S1 i
care va fi elementul din vrful stivei S2 dac se extrag jumtate din elementele din stiva S1
i se adaug n ordinea extragerii n stiva S2? (6p.)
4. Fiecare dintre variabilele declarate alturat memoreaz numele
i nota cte unui elev.
Scriei secvena de instruciuni prin care se citesc de la tastatur
numele i nota pentru fiecare dintre variabilele e1 i e2 i apoi
se afieaz numele elevului cu nota cea mai mare. Dac cele
dou medii sunt egale, se va afia numele elevului memorat n
variabila e1. (6p.)
struct elev{
char nume[20];
float nota;
};
elev e1,e2;
Scriei programul C/C++ care citete de la tastatur o valoare natural n (2n100),
construiete n memorie i apoi afieaz pe ecran o matrice a cu n linii i n coloane,
numerotate de la 1 la n, care conine numerele naturale, n ordine cresctoare, de la 1 la n
2
,
dispuse pe coloane, n ordine cresctoare. Astfel coloana 1 va conine numerele de la 1 la
n, coloana 2 numerele de la n+1 la 2*n, coloana 3 de la 2*n+1 la 3*n i aa mai departe,
ca n exemplu.
5.
Matricea se va afia pe ecran, cte o linie a matricei pe cte o linie a
ecranului, elementele fiecrei linii fiind separate ntre ele prin cte un
spaiu.
Exemplu: pentru n = 4 se va afia matricea alturat. (10p.)
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16

Varianta 71 - informatica
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
Subiectul III (30 de puncte) - Varianta 071

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz n ordine cresctoare toate numerele de exact 4 cifre care se pot forma cu
elementele mulimii {0,1,2,3,4}. Primele 8 soluii generate sunt, n ordine: 1000, 1001,
1002, 1003, 1004, 1010, 1011, 1012. Care sunt primele trei numere ce se vor genera
imediat dup numrul 3443? (4p.)
a. 4000,4001,4002 b. 3444,4443,4444
c. 3444,4444,4000 d. 3444,4000,4001

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce valoare va avea variabila ntreag x, n
urma apelului F(1, x), tiind c, nainte de
apel, variabila x are valoarea 0, iar
subprogramul F este definit alturat?
(6p.)

void F(int i, int &x)
{ if (i <= 10)
{ if(i%2!=0) x = x + 2;
else x = x 1;
F(i + 1, x);
}
}
3. Un numr natural se numete palindrom dac numrul citit de la stnga la dreapta este egal
cu numrul citit de la dreapta la stnga.
a) Scriei definiia complet a subprogramului Palindrom care primete prin intermediul
parametrului n un numr natural de cel mult nou cifre i returneaz 1 dac acesta este
palindrom i 0 n caz contrar. (10p.)
b) Fiierul text numere.in conine mai multe numere naturale de cel mult 9 cifre fiecare,
numerele fiind desprite prin cte un spaiu. Cel puin unul dintre numere este palindrom.
Scriei un program C/C++ care citete numerele din fiierul numere.in i, folosind apeluri
utile ale funciei Palindrom, determin n mod eficient care este cel mai mare numr
palindrom citit. Programul scrie n fiierul text numere.out numrul astfel determinat.
Exemplu: dac numere.in conine numerele:
23 565 78687 7887 7865 78687 7887 23 78687 98798
atunci numere.out va conine:
78687 (6p.)
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b (3 4 rnduri).
(4p.)

Varianta 71 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 072

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac numrul natural memorat de
variabila n este divizibil cu 12? (4p.)
a. (n%4 == 0) || (n%3 == 0) b. (n/4 == 0) && !(n%3)
c. (n%4 != 0) && n%3 d. (n%4 == 0) && (n%3 == 0)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
a) Scriei ce se va afia dac pentru n se
citete valoarea 5. (6p.)
b) Se nlocuiete prima structur
dac...atunci cu atribuirea j4.
Modificai condiia logic din cadrul
structurii ct timp...execut astfel
nct, pentru n=4, algoritmul s afieze:
****
***
**
* (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
citete n (numr natural nenul)
pentru i1,2*n-1 execut
b 0
dac n-i < 0 atunci
ji-n
altfel
jn-i

ct timp j 0 execut
scrie *
jj-1
b1

dac b 0 atunci
salt la rnd nou (sfrit de rnd)


d) Scriei n pseudocod un algoritm echivalent cu cel dat n care s se nlocuiasc prima
structur dac...atunci cu o operaie de atribuire. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 072

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Fie arborele cu 6 noduri etichetate cu numere naturale de la 1 la 6 i cu muchiile: [2,4]
[2,6] [5,7] [6,3] [6,8] [7,1] [7,2] [7,9]. Ci vectori de tai distinci se pot
construi pentru acest arbore? Doi vectori de tai sunt distinci dac exist cel puin o poziie
pentru care elementele corespunztoare din cei doi vectori sunt distincte. (4p.)
a. 4 b. 6! c. 6 d. 5
2. Variabilele x i s memoreaz iruri cu cel mult 20 de caractere: x memoreaz irul
primavara, iar variabila s memoraz irul anotimp. Ce se va memora n variabila s n
urma executrii instruciunii de mai jos?
strncat(s, x, 5); (4p.)
a. anotimpprima b. anotimpprimavara
c. primavara d. prima

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider un graf neorientat cu 8 noduri, numerotate de la 1 la 8 i muchiile: [1,4],
[1,8], [2,1], [2,3], [3,1], [4,5], [4,7], [5,7], [6,5]. Precizai cte
componente conexe va avea subgraful obinut prin eliminarea nodului 1. (6p.)
4. Se consider graful orientat cu 5 noduri, numerotate de la 1 la 5, definit
prin matricea de adiacen alturat. Indicai numrul minim de arce
care trebuie adugate grafului astfel nct, pentru orice dou noduri x i
y ale sale, s existe cel puin un drum de la x la y. (6p)
0 1 0 0 0
0 0 1 1 1
0 1 0 1 0
0 0 1 0 0
0 0 0 0 0
Scriei programul C/C++ care citete de la tastatur o valoare natural n (2n24) i
construiete n memorie, apoi afieaz pe ecran o matrice a cu n linii i n coloane, simetric
fa de diagonala secundar. Elementele matricei sunt numerele naturale de la 1 la
2
1) n(n +
. Elementele situate deasupra i pe diagonala secundar sunt dispuse n ordine
cresctoare pe linii astfel: prima linie conine numerele de la 1 la n, a doua linie conine
numerele de la n + 1 la 2*n 1 i aa mai departe. Matricea se va afia pe ecran, cte o
linie a matricei pe o linie a ecranului, elementele unei linii fiind separate ntre ele printr-un
spaiu.
5.
Exemplu: pentru n = 4 se va obine matricea alturat.
(10p.)
1 2 3 4
5 6 7 3
8 9 6 2
10 8 5 1

Varianta 72 - informatica
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
Subiectul III (30 de puncte) - Varianta 072

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz n ordine cresctoare toate numerele de 4 cifre, cu cifre distincte, astfel nct
diferena n valoare absolut dintre prima i ultima, respectiv a doua i a treia cifr este
egal cu 2. Primele 11 soluii generate sunt, n ordine: 1023, 1203, 1243, 1423, 1463,
1573, 1643, 1683, 1753, 1793, 1863. Care dintre urmtoarele numere se va genera
imediat naintea numrului 9317? (4p.)
a. 9247 b. 9357 c. 9207 d. 8976

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce se va afia n urma executrii
subprogramului alturat, la apelul
F(57);? (6p.)
void F(int x)
{ if(x)
{ F(x/2);
cout << x%2; | printf(%d,x%2);
}
}
3. a) Scriei n limbajul C/C++ definiia complet a subprogramului Cifre care primete prin
parametrii a i b dou numere naturale (0<a<200000000, 0<b<200000000) i returneaz
numrul de cifre comune ale celor dou numere.
Exemplu: dac a = 123446 i b= 248766 atunci subprogramul va returna 3, iar dac
a = 1244 i b = 4456 subprogramul va returna 1. (10p.)
b) Fiierul text numere.in conine pe prima linie a sa dou numere naturale, x, cu cel mult
nou cifre, i p, cu exact o cifr, iar pe a doua linie cel mult 1000 de numere naturale de cel
mult nou cifre fiecare.
Scriei programul C/C++ care citete numerele din fiierulu numere.in i, apelnd funcia
Cifre, scrie n fiierul text numere.out acele numere de pe a doua linie a fiierului
numere.in care au exact p cifre comune cu numrul x. Numerele vor fi scrise pe
aceeai linie, desprite prin cte un spaiu. (6p.)
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b (3 4 rnduri)
(4p.)
Exemplu:
numere.in numere.out
345638 3
123 45239 96583 900583 635 78900
45239 900583 635


Varianta 72 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 073

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele numerice a, b i aux sunt de acelai tip. Care dintre urmtoarele secvene
interschimb corect valorile variabilelor a i b? (4p.)
a. aux = b; b = a; a = aux; b. aux = a; b = a; b = aux;
c. aux = b; aux = a; a = b; d. b = aux; aux = a; a = b;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului
natural x la numrul natural nenul y, iar prin
[x/y] ctul mpririi ntregi a numrului natural
x la numrul natural nenul y.
a) Scriei ce se va afia dac se citesc
pentru a valoarea 260, pentru b valoarea
288 i pentru p valoarea 9. (6p.)
b) Dac a=110, iar p=18, scriei cel mai
mare numr care poate fi citit pentru b,
astfel nct s se afieze valoarea 0. (4p.)
citete a, b, p
(numere naturale nenule, a < b)
nr0
pentru ia,b execut
x i
ct timp x0 i x%p0 execut
x[x/10]

dac x 0 atunci
nrnr+1


scrie nr
c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat, n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv de un alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 073

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider arborele cu 12 noduri, numerotate de la 1 la 12, definit prin urmtorul vectori
de tai: (4, 8, 0, 3, 10, 1, 8, 3, 2, 4, 7, 10). Care dintre nodurile arborelui au exact un
descendent direct (fiu)? (4p.)
a. 6, 9, 11 b. 1, 2, 7 c. 5, 12, 6, 9, 11 d. 10, 1, 2, 7
2. Se consider declarrile alturate. Care este
tipul expresiei x.x.y ? (4p.)
struct A {
int x;
char y;
float z;};
struct B {
struct A x;
long y;};
B x, y;.
a. float b. int c. long d. char

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider graful orientat cu 6 noduri, numerotate de la 1 la 6, i arcele (1,2), (1,5),
(1,6), (2,3), (4,3), (4,5), (6,5). Care este numrul minim de arce care trebuie
adugate grafului astfel nct acesta s conin cel puin un circuit elementar de lungime 4?
Pentru graful rezultat, dai un exemplu de astfel de circuit. (6p.)
Variabilele n, i, p i q sunt de tip ntreg, iar variabila a memoreaz un tablou bidimensional
cu n linii i n coloane numerotate de la 1 la n (0<n<50), cu elemente numere reale.
4.
nlocuii punctele de suspensie din secvena de program
alturat cu instruciunile corespunztoare, astfel nct, n
urma executrii acesteia, s se interschimbe elementele
liniei q cu elementele liniei p ale tabloului a (1qn,
1pn). Dac sunt necesare i alte variabile, scriei
declarrile acestora. (6p.)
for(i = 1; i <= n; i++)
{........}
5. Se consider un text avnd maximum 255 de caractere, format numai din litere mici ale
alfabetului englez i spaii, n care oricare dou cuvinte alturate n text sunt desprite
printr-un singur spaiu. Ultimul caracter din text este diferit de spaiu.
Scriei un program C/C++ care citete de la tastatur un text ca cel descris mai sus i
afieaz pe ecran, desprite printr-un spaiu, numrul de cuvinte din text i cte dintre
acestea au prima liter vocal (a, e, i, o sau u).
Exemplu: pentru urmtoarul text ele sunt eleve in clasa a opta
se va afia: 7 5 (10p.)

Varianta 73 - informatica
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
Subiectul III (30 de puncte) - Varianta 073

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se genereaz n ordine cresctoare toate numerele de 4 cifre, cu cifre distincte, astfel nct
diferena n valoare absolut dintre ultimele dou cifre ale fiecrui numr generat este egal
cu 2. Primele opt soluii generate sunt, n ordine:1024, 1035, 1042, 1046, 1053, 1057,
1064, 1068. Care dintre urmtoarele numere se va genera imediat dup numrul 8975?
(4p.)
a. 8979 b. 9013 c. 8957 d. 9024

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Ce se va afia n urma executrii
subprogramului alturat, la apelul
F(56);? (6p.)
void F(int x)
{ if(x)
{ F(x/2);
cout << x%10; | printf(%d,x%10);
}
}
3. a) Scriei definiia complet a subprogramului Insereaza, cu patru parametri, n, x, k i v,
care primete prin intermediul parametrului n un numr natural (0<n<1000), prin intermediul
parametrului x un tablou unidimensional cu n elemente, numere reale, numerotate de la 1
la n, prin parametrul k un numr natural reprezentnd o poziie din tablou(1kn), iar prin
parametrul v un numr real. Subprogramul va insera valoarea v pe poziia k a tabloului x i
furnizeaz tabloul modificat, precum i numrul elementelor acestuia, actualizate. (10p.)
b) Fiierul text sir.in conine cel puin dou i cel mult 100 numere naturale de maximum
patru cifre fiecare, numerele fiind desprite prin cte un spaiu.
Scriei un program C/C++ care citete numerele din fiierul sir.in i, folosind apeluri ale
subprogramului Insereaza, construiete n memorie un tablou unidimensional care va
conine toate numerele din fiierul sir.in, iar ntre fiecare dou numere consecutive din
fiier insereaz media lor aritmetic. Programul scrie n fiierul text sir.out elementele
tabloului obinut, cu cel mult o zecimal, cte 10 elemente pe fiecare rnd (cu excepia
ultimului rnd, care poate s conin mai puine), elementele de pe acelai rnd fiind
desprite prin cte un spaiu. (6p.)
Exemplu: dac fiierul sir.in conine numerele: 7 5 635 456 0 8 587
atunci, dup executarea programului, fiierul sir.out va conine:
7 6 5 320 635 545.5 456 228 0 4
8 297.5 587
c) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul b (3 4 rnduri).
(4p.)

Varianta 73 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 074

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac variabila x memoreaz un
numr natural ptrat perfect? (4p.)
a. sqrt(x) == floor(sqrt(x)) b. sqrt(x) != floor(sqrt(x))
c. floor(sqrt(x))!=ceil(sqrt(x)) d. x-floor(x)==ceil(x)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural
x la numrul natural nenul y, iar cu [x/y] ctul
mpririi ntregi a numrului natural x la numrul
natural nenul y.
a) Scriei ce se va afia dac se citesc pentru
a valorea 625231, iar pentru b valoarea
425271. (6p.)
b) Dac a=12345 scriei o valoare de cinci
cifre care poate fi citit pentru b, astfel nct
s se afieze pentru p valoarea 42. (6p.)
citete a,b (numere naturale nenule)
c 0
p 0
ct timp a + b > 0 execut
dac a%10 = b%10 i a%2=0
atunci c c*10 + b%10
altfel p p*10 + a%10

a [a/10]
b [b/10]

scrie c, p

c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Efectuai un numr minim de modificri asupra algoritmului dat astfel nct prin
executarea algoritmul obinut s se calculeze n variabila c numrul de cifre pare,
comune i aflate pe poziii identice, pe care le au cele dou valori citite. (4p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 074

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider o stiv n care iniial au fost introduse, n aceast ordine, elementele 5, 6 i
10. Dac se noteaz cu PUSH x operaia prin care se adaug elementul cu informaia
x n stiv, i cu POP operaia prin care se elimin un nod din stiv, care este rezultatul
executrii secvenei PUSH 1; POP; POP; PUSH 8; PUSH 6; PUSH 5; POP; POP;
(4p.)
a.

b.

c.

d.

2. Ce se va afia n urma
executrii secvenei de
program alturate dac
variabila x memoreaz
cuvntul bacalaureat, iar
variabila y memoreaz
cuvntul banal? (4p.)
if(strcmp(x, y) > 0)
cout << x; | printf(%s,x);
else
if(strcmp(x,y) < 0)
cout << y; | printf(%s,y);
else
cout << imposibil; | printf(imposibil);
a. imposibil b. bacalaureat
c. banal d. bacalaureatimposibil

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider un arbore cu 9 noduri, numerotate de la 1 la 9, i cu vectorul de tai urmtor:
(8, 8, 8, 2, 6, 2, 9, 0, 2).
a) Enumerai descendenii nodului 2. (3p.)
b) Cte noduri de tip frunz are acest arbore? (3p.)
4. Se consider graful neorientat cu 6 noduri, numerotate de la 1 la 6 i urmtoarele muchii:
[1,3] [1,5] [2,3] [2,4] [2,6] [5,3] [6,4].
a) Care este numrul minim de muchii ce trebuie eliminate din acest graf, astfel nct graful
parial obinut s nu conin niciun ciclu? (3p.)
b) Care este numrul minim de muchii ce trebuie eliminate din graful iniial dat, astfel nct
graful parial obinut s aib exact dou componente conexe? (3p.)
Scriei programul C/C++ care citete de la tastatur o valoare natural n (2n100),
construiete n memorie i apoi afieaz pe ecran o matrice a, cu n linii i n coloane,
numerotate de la 1 la n, n care fiecare linie conine toate numerele naturale, de la 1 la n ,
dispuse dup cum urmeaz: pe liniile de indice impar numerele sunt n ordine cresctoare,
iar pe cele de indice par sunt n ordine descresctoare, ca n exemplu.
5.
Matricea se va afia pe ecran, cte o linie a matricei pe o linie a ecranului,
elementele unei linii fiind separate ntre ele prin cte un spaiu.
Exemplu: pentru n = 4 se va afia matricea alturat. (10p.)
1 2 3 4
4 3 2 1
1 2 3 4
4 3 2 1

Varianta 74 - informatica
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
Subiectul III (30 de puncte) - Varianta 074

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. ntr-un spectacol sunt prezentate cinci melodii numerotate cu 1, 2, 3, 4 i 5. Utiliznd
metoda backtracking, se genereaz toate posibilitile de a le prezenta pe toate, tiind c
melodia 2 trebuie prezentat dup melodia 3, nu neaprat pe o poziie consecutiv, iar
melodia 5 va fi prezentat tot timpul prima. Cte asemenea posibiliti exist? (4p.)
a. 24 b. 6 c. 12 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider funcia Suma, definit
alturat. Ce valoare are Suma(2)?
Dar Suma(8)? (6p.)
int Suma(int x)
{
if(x == 1 ) return 0;
if(x%2==0) return Suma(x-1)+(x-1)*x;
return Suma(x-1)-(x-1)*x;
}
3. Subprogramul Cifra, cu doi parametri, n i x, primete prin intermediul parametrului n un
numr natural de cel mult nou cifre i furnizeaz prin parametrul x cea mai mare cifr a
numrului transmis prin parametrul n.
a) Scriei definiia complet a subprogramului Cifra. (6p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n, n<1000000000,
i afieaz pe ecran mesajul Da n cazul n care numrul citit este format doar din cifre
aparinnd mulimii {0,1,2,3,4} i afieaz mesajul Nu n caz contrar. (4p.)
c) Fiierul text NUMERE.IN conine pe prima linie un numr natural n (0<n<1000), iar pe a
doua linie, separate prin cte un spaiu, n numere naturale cu cel mult nou cifre fiecare.
Scriei un program C/C++ care citete de la tastatur o cifr c, i, folosind apeluri utile ale
subprogramului Cifra, determin pentru cte dintre numerele de pe a doua linie a fiierului
NUMERE.IN, cifra c reprezint cifra maxim. Programul scrie pe primul rnd al fiierul text
NUMERE.OUT mesajul DA dac exist astfel de valori i pe al doilea rnd numrul acestora,
iar dac nu exist va scrie n fiier mesajul NU. (10p.)
Exemplu: dac cifra citit este 8
NUMERE.IN conine NUMERE.OUT va conine
10
725 3695 423 0 7895 0 100 101 870 568
DA
2



Varianta 74 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 075

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Care dintre urmtoarele instruciuni C/C++ sunt corecte sintactic dac x i y sunt dou
variabile de tip ntreg? (4p.)
a. if (x < 2) && (x > - 5)
{x=x+1; y=y-1;}
b. if -5 < x < 2
{ x=x+1; y=y-1;}
c. if x < 2 && x >-5
{ x=x+1; y=y-1;}
d. if (x < 2 && x > -5)
{x=x+1; y=y-1;}

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [a/b] ctul mpririi ntregi a
numrului natural a la numrul natural nenul b.
a) Scriei ce se va afia dac se citesc, n
aceast ordine, valorile: 62521, 2571, 2,
56, 614. (6p.)
b) Scriei un set de date de intrare, format din
exact ase numere, pentru care algoritmul
s afieze valoarea 12345678. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
a0
k0
repet
citete x (numr natural)
ct timp x > 99 execut
x [x/10]

dac x > 9 atunci
aa*100 + x
kk+1

pan cnd k = 4
scrie a
d) Scriei n pseudocod un algoritm echivalent cu cel dat n care structura repet...pn
cnd s fie nlocuit cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 075

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Ce se va afia n urma executrii secvenei
de program alturate tiind c i este o
variabil de tip ntreg, iar variabila x
memoreaz iniial irul de caractere
ExAMeNe? (4p.)
for(i = 0; i < strlen(x); i++)
if(x[i] >= A && x[i] <=N)
x[i] = x[i] + a-A;
cout << x;
a. exAmeNe b. ExAmene c. EXAMENE d. examene
2. Se consider graful neorientat cu 6 noduri, numerotate de la 1
la 6 definit prin listele de adiacent alturate. Cte muchii
trebuie adugate n acest graf astfel nct el s devin graf
complet? (4p.)
1: 3 5
2: 3 4 6
3: 1 2 5
4: 2 6
5: 1 3
6: 2 4.
a.
16
b.
14
c.
6
d.
8

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare:
3. Se consider o coad n care iniial au fost introduse, n aceast ordine, elementele 1, 2 i
3. Se noteaz cu ADD x operaia prin care se adaug informaia x n coad i cu ELIM
operaia prin care se elimin un nod din coad. Completai punctele de suspensie din
secvena urmtoare cu operaiile necesare astfel nct n urma executrii secvenei: ADD 4;
ELIM; ELIM; ... ADD 6; ... ADD 7; coada s conin, n aceast ordine,
elementele: 4, 5, 6, 7. (6p.)
4. Se consider graful orientat cu 7 vrfuri, numerotate de la 1 la 7, i arcele (1,2), (2,5),
(3,2), (3,4), (3,6), (5,6), (5,7), (6,1). Care este numrul minim de arce care trebuie
adugate acestui graf astfel nct, pentru orice dou noduri x i y, din mulimea {1,2,3,4}
s existe cel puin un drum de la x la y? Enumerai arcele care trebuie adugate. (6p.)
Scriei programul C/C++ care citete de la tastatur dou valori naturale m i n (1<m, n<51)
i construiete n memorie i apoi afieaz o matrice cu m linii, numerotate de la 1 la m, i n
coloane, numerotate de la 1 la n; liniile matricei, dou cte dou, sunt completate alternativ
numai cu 0 sau numai cu 1, ca n exemplu. Astfel,
- elementele liniei 1 i 2 sunt egale cu 0;
- elementele liniei 3 i 4 sunt egale cu 1;
- elementele liniei 5 i 6 sunt egale cu 0; i aa mai departe.
5.
Matricea astfel obinut se va afia pe ecran, cte o linie a matricei
pe o linie a ecranului, cu cte un spaiu ntre elementele fiecrei
linii.
Exemplu: pentru m = 7 i n = 5 se va afia matricea alturat.
(10p.)
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1

Varianta 75 - informatica
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
Subiectul III (30 de puncte) - Varianta 075

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Ce valoare are F(2758), pentru
funcia F, definit alturat?
(4p.)
int F(int x)
{
if(x == 0) return 0;
if(x%10%2 == 0) return 2 + F(x/10);
return 10 F(x/10);
}
a. 0 b. 20 c. 12 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. n secvena alturat, variabila x memoreaz un
tablou unidimensional, iar toate celelalte variabile
sunt de tip ntreg.
Ce se va afia n urma executrii secvenei dac
n=6, iar elementele tabloului sunt: x
0
=10, x
1
=5,
x
2
=-6, x
3
=7, x
4
=0, x
5
=-2? (6p.)
for(int i = 0; i <n/2; i++)
{
aux = x[i];
x[i] = x[ni-1];
x[n-i-1] = aux;
}
for(i = 0; i < n; i++)
cout << x[i] << ;
| printf(%d , x[i]);
3. Scriei n limbajul C/C++ definiia complet a subprogramului Invers, cu doi parametri, n i
x, care primete prin intermediul parametrului n un numr natural de cel mult nou cifre i
furnizeaz prin parametrul x numrul obinut prin inversarea ordinii cifrelor sale, ca n
exemplu.
Exemplu: dac n=78904 atunci, dup apel, x=40987. (10p.)
4.
Pentru un ir de numere naturale, numim punct de minim al irului un termen din ir care
are doi vecini, termenul precedent i termenul urmtor din ir, i valoarea termenului
respectiv este strict mai mic dect valoarea fiecruia dintre cei doi vecini ai si.
a) Fiierul text date.in conine un ir de cel puin dou i mult 10000 de numere naturale
avnd maximum 6 cifre fiecare, numere separate prin cte un spaiu. Scriei un program
C/C++ care citete toate numerele din fiier i afieaz numrul de puncte de minim ale
irului citit, folosind un algoritm eficient din punctul de vedere al memoriei utilizate. (6p.)
Exemplu: dac fiierul date.in are urmtorul coninut:
51 20 100 43 43 618 5000 31 2020 4
atunci pe ecran se afieaz 2 (cele dou numere subliniate reprezint punctele de minim ale
irului)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)


Varianta 75 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 076

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac valoarea real
memorat de variabila y nu aparine intervalului deschis determinat de valorile reale distincte
memorate de variabilele x i z (x<z)? (4p.)
a. !((z<x) || (z>y)) b. (z>x) && (z<y)
c. !((y>x) && (y<z)) d. (z<x) && (z>y)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, reprezentat n
pseudocod.
S-a notat cu x|y relaia x divide pe y sau y este divizibil cu
x i cu [z] partea ntreag a numrului real z.
a) Scriei valoarea care se va afia dac se citete
numrul a=245. (6p.)
b) Scriei un numr par, de trei cifre, care poate fi citit
pentru variabila a astfel nct s se afieze o valoare
egal cu cea citit. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc fiecare structur ct
timpexecut cu cte o structur repetitiv de alt
tip. (6p.)
citete a (numr natural)
x2
p1
ct timp a>1 execut
c0
ct timp x|a execut
cx
a[a/x]

dac c0 atunci
pp*c

xx+1

scrie p

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 076

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect. foaia de examen litera corespunztoare rspunsului corect.
1. n secvena de program alturat variabila t
memoreaz o matrice cu 5 linii i 5 coloane,
numerotate de la 0 la 4, cu elemente
numere ntregi, iar celelalte variabile sunt
ntregi. Executarea acestei secvene de
program determin memorarea n variabila
x a sumei elementelor situate: (4p.)
x=0;
for(i=0;i<5;i++)
for(j=i+1;j<5;j++)
x=x+t[i][j];
a. deasupra diagonalei principale, inclusiv
diagonala principal
b. strict deasupra diagonalei principale
c. strict sub diagonala principal d. strict deasupra diagonalei secundare
2. Fie graful orientat cu 8 vrfuri, numerotate de la 1 la 8, i arcele (1,2), (2,3), (3,1),
(4,5), (6,5), (5,7), (7,6), (7,4), (8,7). Numrul minim de arce care trebuie
adugate astfel nct, pentru oricare dou vrfuri x i y din graf s existe cel puin un drum
de la nodul x la nodul y este: (4p.)
a. 2 b. 4 c. 0 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3.
ntr-o stiv ale crei elemente rein informaii numere ntregi, au fost introduse, n aceast
ordine, numerele 1,2,3,4. Asupra stivei se efectueaz, n aceast ordine, urmtoarele
operaii: se elimin un element, se adaug dou elemente cu valorile 5 i respectiv 6 i apoi
se elimin 3 elemente.
a) Care este valoarea memorat n elementul din vrful stivei dup efectuarea acestor
operaii? (3p.)
b) Care este suma elementelor aflate n stiv dup efectuarea acestor operaii? (3p.)
4. Care este vectorul de tai pentru arborele cu 8 noduri, numerotate de la 1 la 8, i muchiile
[1,5], [2,3], [3,6], [3,8], [4,6], [5,7], [6,7], dac se alege ca rdcin nodul
numerotat cu 6? (6p.)
5. Scriei programul C/C++ care citete de la tastatur un cuvnt de maximum 20 de litere i
minimum o liter i afieaz pe ecran toate cuvintele obinute din cuvntul citit prin
eliminarea primei i a ultimei litere. Prima prelucrare se refer la cuvntul citit, iar
urmtoarele la cuvntul rezultat din prelucrarea anterioar. Procedeul de eliminare i afiare
se va repeta pn cnd se obine cuvntul vid, ca n exemplu. Fiecare cuvnt obinut se va
afia pe cte o linie a ecranului.
Exemplu : dac se citete cuvntul bacalaureat, se va afia:
bacalaureat
acalaurea
calaure
alaur
lau
a (10p.)

Varianta 76 - informatica
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
Subiectul III (30 de puncte) - Varianta 076

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Dac se utilizeaz metoda backtracking pentru a genera toate permutrile de 4 obiecte i
primele 5 permutri generate sunt, n aceast ordine, 4 3 2 1, 4 3 1 2, 4 2 3 1, 4 2 1
3, 4 1 3 2, atunci a 6-a permutare este: (4p.)
a. 3 2 1 4 b. 3 4 2 1 c. 1 4 3 2 d. 4 1 2 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Pentru definiia alturat a subprogramului
sub, scriei ce valoare are sub(3).
Dar sub(132764)? (6p.)
long sub(long n)
{if (n!=0)
if(n%2!=0) return n%10*sub(n/10);
else return sub(n/10);
else return 1;
}
3. Scriei definiia complet a unui subprogram s, cu trei parametri, n, c, k, care primete
prin intermediul parametrului n un numr natural de maximum 9 cifre, prin intermediul
parametrului c o cifr i furnizeaz prin intermediul parametrului k numrul de cifre ale lui n
care aparin intervalului [c-1,c+1].
Exemplu: pentru n=1233 i c=3, k va avea valoarea 3, iar pentru n=650 i c=3, k va avea
valoarea 0. (10p.)
4. Pe prima linie a fiierului BAC.TXT se gsete un numr natural n (0<n<1000), pe linia a
doua se gsesc n numere naturale, ordonate cresctor, cu cel mult 4 cifre fiecare, iar pe
linia a treia un numr natural a (a<10000). Numerele de pe a doua linie a fiierului sunt
separate prin cte un spaiu. S se scrie un program care citete toate numerele din fiier i
afieaz pe ecran mesajul DA dac numrul a se afl printre cele n numere de pe linia a
doua a fiierului, sau mesajul NU n caz contrar.
Exemplu: dac fiierul conine:
7
2 3 3 4 5 8 9
8
atunci se va afia: DA
a) Descriei n limbaj natural o metod de rezolvare eficient ca timp de executare. (4p.)
b) Scriei programul C/C++ corespunztor metodei descrise la punctul a). (6p.)


Varianta 76 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 077

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag n memoreaz un numr natural de exact 5 cifre. Instruciunea care
determin eliminarea din numrul n a primei i ultimei cifre este: (4p.)
a. n=n%100/10; b. n=n/10%1000;
c. n=n/10%10000; d. n=n%10/1000;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, reprezentat n
pseudocod:
a) Scriei valoarea care se va afia dac se citesc, n
acest ordine, valorile: 2, 4, 6, 5, 7, 3, 9, 8, 0. (6p.)
b) Scriei toate irurile de date de intrare avnd suma
elementelor egal cu 4, care s determine afiarea
valorii 0. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
algoritm n care s se nlocuiasc structura ct
timpexecut cu o structur repetitiv de alt tip. (6p.)
citete a (numr natural)
k0
ct timp a0 execut
citete b (numr natural)
dac a < b atunci
kk+1

ab

scrie k


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 077

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila t memoreaz o matrice cu 8 linii i 8
coloane, numerotate de la 0 la 7, cu elemente
numere ntregi, iar variabilele i i j sunt ntregi.
Secvena de program alturat determin n
urma executrii ei, memorarea n variabila
ntreag z a sumei tuturor elementelor situate:
(4p.)
z=0;
for(i=0;i<8;i++)
for(j=0;j<i;j++)
z=z+t[i][j];
a. strict sub diagonala principal b. deasupra diagonalei principale, inclusiv
diagonala principal
c. strict deasupra diagonalei principale d. strict deasupra diagonalei secundare
2. Numrul minim de noduri cu gradul 1 pentru un graf neorientat conex cu 21 noduri i 20
muchii este: (4p.)
a. 11 b. 3 c. 2 d. 1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Care sunt noduri de grad 1 din arborele cu rdcin, cu 7 noduri, numerotate de la 1 la 7,
descris prin urmtorul vector de tai: (5,1,4,5,0,4,3) (6p.)
4. ntr-o stiv ale crei elemente rein informaii numere ntregi, au fost introduse, n aceast
ordine, numerele 5,4,3,2,1. Asupra stivei se efectueaz urmtoarele operaii: se elimin
2 elemente, se adaug un element cu valoarea 6 i apoi se elimin 3 elemente.
a) Care este valoarea memorat n elementul din vrful stivei dup efectuarea operaiilor n
ordinea precizat? (3p.)
b) Care este suma valorilor aflate n stiv dup efectuarea acestor operaii? (6p.)
5. Scriei programul C/C++ care citete de la tastatur un text de cel mult 50 de caractere,
(litere mici ale alfabetului englez i spaii), text format din mai multe cuvinte, separate prin
cte un spaiu, i afieaz pe ecran textul obinut din cel iniial prin transformarea primei
litere i a ultimei litere a fiecrui cuvnt n majuscul.
Exemplu: dac se citete textul
azi este examen de bacalaureat
se va afia
AzI EstE ExameN DE BacalaureaT (10p.)

Varianta 77 - informatica
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
Subiectul III (30 de puncte) - Varianta 077

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. La un concurs particip 50 de sportivi mprii n 5 echipe, astfel nct n fiecare echip s
fie cte 10 sportivi. Problema determinrii tuturor grupelor de cte 5 sportivi, cte unul din
fiecare echip, este similar cu generarea tuturor: (4p.)
a. elementelor produsului cartezian
AxAxAxAxA, unde A={1,2,,10}
b. submulimilor cu 5 elemente ale mulimii
{1,2,,10}
c. permutrilor mulimii {1,2,3,4,5} d. partiiilor mulimii {1,2,,10}

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a
subprogramului sub, scriei ce valoare
are sub(4).
Dar sub(132764)? (6p.)
int sub(long n)
{if (n!=0)
if(n%2!=0) return n%10+sub(n/10);
else return sub(n/10);
else return 0;
}
3. Fiierul text numere.in are pe prima linie un numr natural n (0<n<1000) i pe
urmtoarea linie n numere reale. Scriei un program C/C++ care citete numerele din fiier
i afieaz pe ecran media aritmetic a numerelor aflate pe a doua linie a fiierului, care au
partea ntreag format din cel puin dou cifre. (10p.)
4. a) Scriei doar antetul unui subprogram prim, cu doi parametri, n i v, care primete prin
intermediul parametrului n un numr natural i furnizeaz prin intermediul parametrului p
valoarea 1 dac n este prim i 0 n caz contrar. (2p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (3<n<100) i
apoi n numere naturale cu maximum 4 cifre fiecare i afieaz pe ecran, desprite prin cte
un spaiu, toate numerele prime dintre cele n numere citite, n ordinea invers fa de cum
au fost citite, utiliznd apeluri utile ale subprogramului prim. (8p.)
Exemplu: pentru n=12 i numerele 1 2 2 3 7 2 9 3 3 9 7 1 se vor afia valorile :
7 3 3 2 7 3 2 2


Varianta 77 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 078

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag n memoreaz un numr natural de exact 7 cifre. Instruciunea care
determin eliminarea din numrul n a celor 3 cifre din mijlocul lui este: (4p.)
a. n=n/100000*100+n%100; b. n=n%10000/100+n/100;
c. n=n/10%10000; d. n=n/1000;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, reprezentat n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y .
a)
Scriei valoarea care se va afia dac se citesc, n
acest ordine, valorile: 23, 423, 673, 55, 77, 3, 93,
38, 0. (6p.)
b) Dac se citete un ir de numere naturale distincte
dou cte dou, numere de exact dou cifre, scriei
care poate fi valoarea maxim afiat. (4p.)

citete a (numr natural)
k0
ct timp a0 execut
citete b (numr natural)
dac a%10 = b%10 atunci
kk+1

ab

scrie k

c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm, echivalent cu cel dat, n care s se nlocuiasc
structura ct timpexecut cu o structur repetitiv de alt tip. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 078

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Variabila t memoreaz o matrice cu 8 linii i 8
coloane, numerotate de la 0 la 7, cu elemente
numere ntregi, iar celelalte variabile sunt
ntregi. Secvena de program alturat
determin n urma executrii ei, memorarea n
variabila ntreag z a sumei tuturor elementelor
situate: (4p.)
z=0;
for(i=0;i<8;i++)
for(j=0;j<8-i;j++)
z=z+t[i][j];
a. strict sub diagonala secundar b. deasupra diagonalei principale, inclusiv
diagonala principal
c. deasupra diagonalei secundare, inclusiv
diagonala secundar
d. strict deasupra diagonalei secundare
2. Un graf neorientat are 40 de noduri si 40 de muchii. Numrul minim i numrul maxim de
componente conexe ale grafului este (4p.)
a. 1, respectiv 30 b. 1, respectiv 31 c. 1, respectiv 40 d. 2, respectiv 30

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Fie graful orientat cu 7 vrfuri numerotate de la 1 la 7 i arcele (1,2) (2,3) (3,1)
(4,5) (5,6) (5,7) (6,7) (7,4). Care este numrul minim de arce i care sunt acele
arce care ar trebui eliminate pentru ca graful parial obinut s nu mai conin circuite? (6p.)
4. ntr-o coad ale crei elemente rein informaii numere ntregi, au fost introduse, n aceast
ordine, numerele 1,2,3,4,5. Asupra cozii se efectueaz, n aceast ordine, urmtoarele
operaii: se elimin un element, se adaug dou elemente cu valorile 6 i respectiv 7 i apoi
se elimin 2 elemente, se adaug elementul cu valoarea 8 i se elimin un element.
a) Care este valoarea ultimului element eliminat? (3p.)
b) Care este suma elementelor alfate n coad dup efectuarea acestor operaii? (3p.)
5. Scriei programul C/C++ care citete de la tastatur un text cu cel mult 100 de caractere i
un cuvnt cu cel mult 15 litere. Pe ecran se va afia irul obinut prin inserarea n textul
iniial a caracterului ? dup fiecare apariie a cuvntului citit. Literele textului i ale cuvntului
sunt litere mici ale alfabetului englez. Dac n text nu apare cuvntul citit, se va afia
mesajul NU APARE.
Exemplu: dac se citete de la tastatur textul
examenului examenul de bacalaureat si examenul de atestat
i cuvntul examenul
se va afia:
examenului examenul? de bacalaureat si examenul? de atestat (10p.)

Varianta 78 - informatica
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
Subiectul III (30 de puncte) - Varianta 078

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un program construiete i afieaz elementele produsului cartezian AxBxC pentru
mulimile A={1,2,3,4}, B={1,2,3}, C={1,2}. Care dintre urmtoarele triplete NU va fi
afiat? (4p.)
a. (3,2,1) b. (1,3,2) c. (1,2,3) d. (2,2,2)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Pentru definiia alturat a subprogramului
sub, scriei ce valoare are sub(4). Dar
sub(123986)? (6p.)
int sub(long n)
{if (n!=0)
if(n%2!=0) return 1+sub(n/10);
else return sub(n/10);
else return 0;
}
3. Se citete de la tastatur un numr natural n, cu cel mult patru cifre, n2. S se scrie n
fiierul prime.out, pe aceeai linie, n ordine cresctoare, separate prin cte un spaiu,
toate numerele prime mai mici sau egale cu n.
Exemplu: pentru n=10, n fiierul prime.out vor fi scrise numerele 2 3 5 7 . (10p.)
4. a) Scriei definiia complet a unui subprogram max_neg cu trei parametri, n, v, max, care
primete prin intermediul parametrului n (0<n<100) un numr natural, prin intermediul
parametrului v un tablou unidimensional cu n numere ntregi cu cel mult 4 cifre fiecare i
furnizeaz prin intermediul parametrului max cea mai mare valoare strict negativ dintre
numerele din tablou sau valoarea 0 dac nu exist astfel de numere. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (3<n<100) i
apoi n numere ntregi cu cel mult 4 cifre fiecare i afieaz pe ecran, separate prin spaiu,
cea mai mare valoare strict negativ i cea mai mic valoare strict pozitiv dintre cele n
citite, folosind pentru determinarea ambelor valori apeluri utile ale subprogramului max_neg.
Dac nu exist valori strict negative se va afia mesajul NU EXISTA VALORI STRICT
NEGATIVE, respectiv mesajul NU EXISTA VALORI STRICT POZITIVE dac nu exist
valori strict pozitive.
Exemplu: pentru n=12 i numerele 11 2 2 -3 2 2 3 -13 2 3 2 10 se va afia:
-3 2 (6p.)


Varianta 78 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 079

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Stabilii ce se afieaz n urma executrii secvenei
de instruciuni C/C++ alturate, dac y este o
variabil real, iar x o variabil ntreag. (4p.)
y=10.1234;
x=(int)(y*100)/100;
printf(%d,x); | cout<<x;
a. 1012.34 b. 10.12 c. 0.12 d. 10

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, reprezentat n
pseudocod.
S-a notat cu x|y relaia x divide pe y sau y este divizibil cu
x i cu [z] partea ntreag a numrului real z.
a) Scriei valoarea care se va afia dac se citete
numrul 245. (6p.)
b) Scriei dou numere naturale care pot fi citite pentru
variabila a astfel nct valoarea afiat n fiecare caz
s fie 10. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
algoritm n care s se nlocuiasc fiecare structur ct
timp...execut cu cte o structur repetitiv de alt
tip. (6p.)
citete a (numr natural)
x2
k0
ct timp a>1 execut
c0
ct timp x|a execut
cx
a[a/x]

dac c0 atunci
kk+x

xx+1

scrie k

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 079

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect. foaia de examen litera corespunztoare rspunsului corect.
1. Variabila t memoreaz o matrice cu 8 linii i 8
coloane, numerotate de la 0 la 7, cu elemente
numere ntregi, iar celelalte variabile sunt
ntregi. Secvena de program alturat
determin, n urma executrii ei, memorarea n
variabila ntreag z a sumei tuturor elementelor
situate: (4p.)
z=0;
for(i=0;i<8;i++)
for(j=7-i;j<8;j++)
z=z+t[i][j];
a. sub diagonala secundar, inclusiv
diagonala secundar
b. deasupra diagonalei principale, inclusiv
diagonala principal
c. strict sub diagonala principal d. strict deasupra diagonalei secundare
2. Se consider un graf orientat cu 6 vrfuri, numerotate de la 1 la 6, cu proprietatea c exist
un arc cu extremitea iniial n vrful i i extremitea final n vrful j dac i este divizor al
lui j. Gradul interior (intern) maxim al vrfurilor din acest graf este: (4p.)
a. 3 b. 5 c. 4 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider arborele cu 13 noduri numerotate de la 1 la 13 i mulimea muchiilor
{[1,4],[2,5],[3,8],[4,7],[4,9],[4,11],[6,3], [6,10], [6,12], [5,6],
[13,2], [2,9]}. Dac se alege nodul numerotat cu 2 drept rdcin, care este
vectorul de tai pentru acest arbore? (6p.)
4. Fie graful neorientat cu 6 noduri numerotate de la 1 la 6 i muchiile [1,2], [1,3], [1,4],
[2,3], [2,4], [3,4], [3,5], [4,5], [4,6], [5,6]. Care este numrul maxim de muchii
care pot fi eliminate astfel nct graful parial obinut s i pstreze proprietatea de graf
conex? (6p.)
5. Scriei programul C/C++ care citete de la tastatur un text cu cel mult 100 de caractere
(litere ale alfabetului englez i spaii), construiete n memorie i apoi afieaz pe ecran
irul de caractere obinut din irul iniial n care se insereaz dup fiecare vocal caracterul
*. Se consider vocale literele a, e, i, o, u, A, E, I, O, U. Dac textul citit nu conine vocale,
se va afia mesajul FARA VOCALE.
Exemplu: dac se citete de la tastatur textul Examenul de bacalaureat se va afia:
E*xa*me*nu*l de* ba*ca*la*u*re*a*t. (10p.)

Varianta 79 - informatica
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
Subiectul III (30 de puncte) - Varianta 079

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Problema generrii tuturor codurilor formate din exact 4 cifre nenule, cu toate cifrele
distincte dou cte dou, este similar cu generarea tuturor: (4p.)
a. aranjamentelor de 9 elemente luate cte
4
b. permutrilor elementelor unei mulimi cu
4 elemente
c. elementelor produsului cartezian
AxAxAxA unde A este o mulime cu 9
elemente
d. submultimilor cu 4 elemente ale mulimii
{1,2,3,4,5,6,7,8,9}

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(8). Dar
f(1209986)?
(6p.)
int f(long x)
{ int y,z;
if (x==0) return x;
else {y=x%10;
z=f(x/10);
if(y>z) return y ;
else return z;
}
}
3. Scriei definiia complet a unui subprogram max_d cu trei parametri, n, m1, m2, care
primete prin intermediul parametrului n un numr natural cu cel puin dou cifre i cel mult
nou cifre i care returneaz prin intermediul parametrilor m1 i m2 cele mai mari dou cifre
ale numrului n. Cifra returnat prin intermediul parametrului m1 va fi mai mare sau egal cu
cea returnat prin intermediul parametrului m2.
Exemplu: pentru n=128773, subprogramul returnez prin intermediul parametrului m1
valoarea 8 i prin intermediul parametrului m2 valoarea 7. (10p.)
4. Se citete de pe prima linie a fiierului text numere.in un numr natural n (0<n<10000) i,
de pe a doua linie a fiierului, n numere naturale din intervalul [1,100] i se cere s se
afieze pe ecran, desprite prin cte un spaiu, numrul sau numerele ntregi din intervalul
[1,100] care nu apar printre numerele citite. Dac pe a doua linie a fiierului apar toate
numerele din intervalul precizat, se va afia mesajul NU LIPSESTE NICIUN NUMAR.
Alegei un algoritm de rezolvare eficient din punctul de vedere al timpului de executare.
Exemplu: pentru fiierul numere.in cu urmtorul coninut
12
4 2 3 1 6 5 7 8 9 11 10 100
se vor afia valorile 12 13 99.
a) Explicai n limbaj natural metoda utilizat justificnd eficiena acesteia (4-6 rnduri) (4p.)
b) Scriei programul C/C++ ce rezolv problema enunat, corespunztor metodei descrise
la punctul a). (6p.)


Varianta 79 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 080

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele n, z i u sunt ntregi, iar n memoreaz un numr natural cu cel puin 2 cifre.
Secvena C/C++ care determin interschimbarea ultimelor dou cifre din scrierea numrului
memorat de n este: (4p.)
a. n=(n/100*10+n%10)*10+n%100/10; b. u=n%10;
z=n/100%10;
n=n/100+u*10+z;
c. n=(n/100*10+n%10)*10+n/100%10; d. u=n%10;
z=n/100%10;
n=n/100*100+z*10+u;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, reprezentat n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la numrul
natural nenul y i cu [z] partea ntreag a numrului real z.
a) Scriei valoarea care se va afia dac se citete numrul
a=245903. (6p.)
b) Scriei o valoare care poate fi citit pentru variabila a
astfel nct s se afieze o valoare egal cu cea citit.
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc structura ct timpexecut cu
o structur repetitiv de alt tip. (6p.)
citete a
(numr natural)
b0
p1
ct timp a>0 execut
ca%10
dac c%20 atunci
bb+p*c
pp*10

a[a/10]

scrie b

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 080

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. n secvena de program alturat, variabila a
memoreaz o matrice cu 8 linii i 8 coloane
(numerotate de la 1 la 8), cu elemente numere
ntregi, iar toate celelalte variabile sunt ntregi.
Ce valoare va avea elementul a[8][8] dup
executarea secvenei? (4p.)
for(i = 1; i<=8; i++)
{ k=i;
for(j = 1; j<=8; j++)
{ a[i][j]=k; k=k+1; }
}
a. 16 b. 15 c. 64 d. 10
2. Se consider un graf neorientat cu 7 noduri, numerotate de la 1 la 7, cu proprietatea c
exist muchie cu extremitile n nodurile i i respectiv j dac numerele i i j sunt de
aceeai paritate sau dac i este divizor al lui j. Gradul minim al unui nod din acest graf
este: (4p.)
a.
1 b. 2 c. 4 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Fie graful orientat cu 9 vrfuri numerotate de la 1 la 9 i arcele (1,2) (2,3) (3,1)
(4,5) (5,6) (5,7) (6,7) (7,4) (8,7) (8,9) (9,8). Care sunt vrfurile cu
proprietatea c gradul interior este egal cu gradul exterior ? (6p.)
4. ntr-o coad ale crei elemente rein informaii numere ntregi, au fost introduse, n aceast
ordine, numerele 6,5,4,3,2,1. Asupra cozii se efectueaz, n aceast ordine,
urmtoarele operaii: se elimin dou elemente, se adaug dou elemente cu valorile 6 i
respectiv 7 i apoi se elimin dou elemente. Care sunt ultimele trei valori eliminate? (6p.)
5. Scriei programul C/C++ care citete de la tastatur un cuvnt cu cel puin una i cel mult
20 de litere ale alfabetului englez, construiete i afieaz pe ecran cuvntul obinut prin
interschimbarea primei consoane cu ultima vocal din cuvnt. n cazul n care cuvntul este
format numai din vocale sau numai din consoane, programul afieaz pe ecran mesajul
IMPOSIBIL. Se consider vocale literele a, e, i, o, u, A, E, I, O, U.
Exemplu: dac se citete cuvntul Marmorat se va obine i afia cuvntul aarmorMt
(10p.)

Varianta 80 - informatica
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

Subiectul III (30 de puncte) - Varianta 080

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. O clas de 28 de elevi este la ora de educaie fizic i profesorul dorete s formeze o
echip de 4 elevi; ordinea elevilor n cadrul echipei nu are importan. Algoritmul de
generare a tuturor posibilitilor de a forma o asfel de echip este similar cu algoritmul de
generare a tuturor: (4p.)
a. aranjamentelor de 28 de elemente luate
cte 4
b. combinrilor de 28 de elemente luate
cte 4
c. partiiilor unei mulimi cu 28 de elemente d. elementelor produsului cartezian
AxAxAxA, A fiind o mulime cu 28 de
elemente

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a
subprogramului sub, scriei ce valoare
are sub(9).
Dar sub(132764)? (6p.)
int sub(long n)
{if (n!=0)
if(n%2!=0) return n%10+sub(n/10);
else return sub(n/10);
else return 0;}
3. Scriei programul C/C++ care citete de la tastatur un numr natural nenul n
(0<n<100000) i afieaz pe ecran, n ordine cresctoare, numerele naturale nenule mai
mici sau egale cu n care sunt ptrate perfecte i nu sunt divizori ai numrului n. Numerele
vor fi afiate cte 5 pe linie, cu excepia ultimei linii pe care pot fi mai puine numere. Pe
linie, numerele sunt desprite prin cte un spaiu.
Exemplu: pentru n=80 se afieaz:
9 16 25 36 49
64 (6p.)
4. a) Scriei definiia complet a unui subprogram cu numele ordonat care primete prin
intermediul singurului su parametru, n, un numr natural cu cel mult 9 cifre i returneaz
valoarea 1 dac numrul are cifrele ordonate strict descresctor, de la stnga la dreapta,i
valoarea 0 n caz contrar. (4p.)
b) Scriei un program C/C++ care citete de pe prima linie a fiierului text numere.in un
numr natural n (0<n<1000) i de pe a doua linie a fiierului n numere naturale cu cel mult
9 cifre i afieaz pe ecran, desprite prin cte un spaiu, numerele naturale distincte,
coninute de a doua linie a fiierului care au cifrele ordonate strict descresctor, de la stnga
la dreapta. Se vor utiliza apeluri utile ale subprogramului ordonat . (10p.)
Exemplu: dac fiierul numere.in are urmtorul coninut:
134 6420 1243 9802 731 6420
pe ecran se vor afia numerele:
6420 731 (nu neaprat n aceast ordine).


Varianta 80 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 081

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Precizai valoarea expresiei: 8/4/2*2*4*8 (4p.)
a. 64 b. 1 c. 16 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valoarea care se vor afia dac se citesc
numerele a=12 i n=10. (6p.)
b) Dac pentru a se citete numrul 32, scriei o valoare
care poate fi citit pentru n astfel nct s se afieze
34. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
care s nu conin nicio structur repetitiv. (4p.)
citete a,n
(numere naturale)
pentru i=1,n execut
dac i%2=0 atunci
aa-i
altfel
aa+i


scrie a

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 081

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. tiind c s-au fcut declarrile alturate, stabilii
care dintre urmtoarele expresii este corect din
punct de vedere sintactic? (4p.)
struct elev{
char nume[30];
float nota;} a[100];
a. elev[1].nota b. a[1].nota[1] c. a.nota[1] d. a[1].nota
2. Graful neorientat cu 5 noduri numerotate de la 1 la 5, este
reprezentat cu ajutorul matricei de adiacen alturate. Numrul
maxim de muchii ce pot fi eliminate astfel nct graful parial rezultat
s aib 2 componente conexe este: (4p.)
0 1 1 1 1
1 0 1 1 0
1 1 0 1 0
1 1 1 0 1
1 0 0 1 0
a. 5 b. 4 c. 6 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. ntr-o coad ale crei elemente rein informaii numere ntregi, au fost introduse, n aceast
ordine, numerele 6,5,4,3,2,1. Asupra cozii se efectueaz, n aceast ordine,
urmtoarele operaii: se elimin un element, se adaug dou elemente cu valorile 6 i
respectiv 7 i apoi se elimin trei elemente. Care sunt ultimele trei valori eliminate? (6p.)
4. Variabila cuv reine un cuvnt format din cel mult 25 litere mici ale alfabetului englez. Scriei
o secven de program C/C++ care afieaz pe ecran litera din mijloc a cuvntului, dac
acesta are un numr impar de caractere, sau cele dou litere din mijloc ale cuvntului, dac
acesta are un numr par de caractere.
Exemplu: dac se citete cuvntul mihai se afieaz litera h. (6p.)
5. Scriei un program C/C++ care citete de la tastatur dou numere naturale n i m (n10,
m10), apoi elementele unui tablou bidimensional cu n linii i m coloane, numere ntregi
distincte, de maximum 4 cifre fiecare, i care determin cel mai mic i cel mai mare numr
din tablou i le interschimb. Matricea modificat va fi afiat pe ecran, cte o linie a
matricei pe o linie a ecranului, elementele fiecrei linii fiind separate prin cte un spaiu.
(10p.)

Exemplu: pentru n=5,
m=4 i tabloul
2 24 -5 8
3 25 17 9
4 -2 13 10
5 14 12 70
6 57 36 43

se va afia tabloul 2 24 70 8
3 25 17 9
4 -2 13 10
5 14 12 -5
6 57 36 43


Varianta 81 - informatica
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
Subiectul III (30 de puncte) - Varianta 081

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Folosind cifrele {1,2,3} se genereaz, n ordinea cresctoare a valorii, toate numerele
pare formate din trei cifre distincte. Astfel, se obin n ordine, numerele: 132, 312. Folosind
aceeai metod, se genereaz numerele pare formate din patru cifre distincte din mulimea
{1,2,3,4}. Care va fi al 4-lea numr generat ? (4p.)
a. 2134 b. 1432 c. 2314 d. 1423

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(0). Dar f(5552)?
(6p.)
int f(int x)
{ if(x==0)
return 0;
else
return f(x/10)+1;
}
3. Subprogramul ordonat are 4 parametri:
- n, prin care primete un numr natural (1n100) ;
- v, prin care primete un tablou unidimensional cu n elemente, numerotate de la 1 la n,
numere naturale cu cel mult patru cifre fiecare;
- k1 i k2 dou numere ntregi (1k1k2n).
Subprogramul returneaz valoarea 1 dac elementele din tablou, cu indici n intervalul
[k1,k2], se afl n ordine cresctoare, i 0 n caz contrar .
a) Scriei numai antetul subprogramului ordonat. (4p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural n (1n100) i
cele n elemente, numerotate de la 1 la n, ale unui tablou unidimensional. Elementele sunt
numere naturale, cu cel mult 4 cifre fiecare. Programul determin i afieaz pe ecran,
separate printr-un spaiu, dou valori, k1 i k2, astfel nct secvena format din elementele
cu indici n intervalul [k1,k2], pe poziii consecutive n tablou, s fie ordonat cresctor i
s aib o lungime maxim. Dac sunt mai multe secvene de lungime maxim se vor afia
indicii corespunztori unei valori minime a lui k1. Se vor utiliza apeluri utile ale
subprogramului ordonat.
Exemplu: dac n=7 i tabloul este (4, -6, 1, 2, 1, 4, 5) se va afia 2 4. (10p.)
4. Fiierul text NUMERE.IN conine, pe fiecare linie a sa, cte dou numere naturale mai mici
sau egale cu 10000, desprite printr-un spaiu. Scriei programul C/C++ care s afieze pe
ecran, unul sub altul, cel mai mare numr de pe fiecare linie, ca n exemplu. (6p.)
Exemplu: dac
fiierul NUMERE.IN
are coninutul
alturat:
12 14
110 12
4 -8

atunci pe ecran se
afieaz:
14
110
4

Varianta 81 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 082

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi a i b memoreaz numere naturale. Care dintre
expresiile C/C++ de mai jos este echivalent cu expresia alturat?
(4p.)
(a+b)%2==0
a. (a%2==0) && (b%2==0)&& (a%2==1) && (b%2==1)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (a%2==0) && (b%2==0) || (a%2==1) && (b%2==1)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei valorile care se vor afia dac numerele citite
sunt m=5, n=5, apoi, n aceast ordine: 25, 40, 8, 15,
133. (6p.)
b) Scriei care este cea mai mare valoare care poate fi
citit pentru m dac n=4, iar pentru x se citesc, n
ordine, valorile 121, 781, 961, 4481 astfel nct, la
finalul executrii algoritmului, s se afieze numai
valoarea 781. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de un alt tip.
(6p.)
citete m
(numr natural, m<10)
citete n
(numr natural, n>1)
pentru i1,n execut
citete x
(numr natural)
auxx
ok0
ct timp x>0 execut
dac x%10=m atunci
ok1

x[x/10]

dac ok=1 atunci
scrie aux



Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 082

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful orientat cu nodurile numerotate de la 1 la 5 i arcele (1,2),
(1,5),(2,1), (2,3), (2,5), (3,4), (5,2), (5,4). Care este lungimea maxim a unui
drum format din noduri distincte, de la nodul 1 la nodul 4? (4p.)
a. 5 b. 6 c. 4 d. 7
2. Se consider o stiv n care au fost introduse, n aceast ordine, numerele 1, 2 i 3. Care
dintre valorile din stiv va fi eliminat prima? (4p.)
a. 1 b. 2 c. 3 d. oricare dintre ele

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. tiind c variabila s reine un ir de caractere,
scriei ce se va afia la executarea secvenei
alturate. (6p.)

strcpy(s,barba);
for(i=0;i<strlen(s);i++)
if(s[i]==b)
s[i]=t;
cout<<s; | printf(%s,s);
4. Un graf neorientat cu nodurile numerotate de la 1 la 4 este reprezentat
prin matricea de adiacen alturat.
a) Scriei nodurile din acest graf care au grad par. (3p.)
b) Scriei nodurile din acest graf care au grad impar. (3p.)
0 1 1 0
1 0 0 0
1 0 0 1
0 0 1 0
5. Scriei un program C/C++ care citete de la tastatur o valoare natural nenul n (n10) i
apoi n*n numere ntregi distincte, fiecare avnd cel mult 4 cifre, reprezentnd elementele
unui tablou bidimensional cu n linii i n coloane. Programul determin cel mai mic i cel mai
mare numr de pe diagonala principal, le interschimb, apoi afieaz pe ecran matricea
obinut dup modificare. Fiecare linie a matricei se afieaz pe cte o linie a ecranului, iar
elementele unei linii sunt separate prin cte un spaiu. (10p.)

Exemplu: pentru n=4 i tabloul:

2 24 15 -8
3 25 17 9
4 -2 73 10
5 14 12 10
se va afia 73 24 15 -8
3 25 17 9
4 -2 2 10
5 14 12 10


Varianta 82 - informatica
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
Subiectul III (30 de puncte) - Varianta 082

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Folosind cifrele {1,2,3} se genereaz, n ordinea cresctoare a valorii, toate numerele
pare formate din trei cifre distincte. Astfel se obin, n ordine, numerele: 132, 312.
Folosind aceeai metod, se genereaz numerele pare formate din patru cifre distincte din
mulimea {1,2,3,4}. Care va fi al 5-lea numr generat ? (4p.)
a. 1432 b. 2134 c. 2314 d. 1423

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(2). Dar f(123)?
(6p.)

int f(int x)
{ if(x==0)return 0;
else if(x%2==0)return 1+f(x/10);
else return 2+f(x/10);
}

3. Scriei n C/C++ definiia complet a subprogramului medie, care are doi parametri:
- n, prin care primete un numr natural (1n100) ;
- v, prin care primete un tablou unidimensional cu n elemente, fiecare element avnd cel
mult patru cifre.
Funcia returneaz media aritmetic a elementelor impare din tablou sau valoarea 0 dac, n
tablou, nu exist elemente impare. (10p.)
Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale
nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desprite prin cte un
spaiu.
a) Scriei programul C/C++ care afieaz pe ecran, n ordine cresctoare, toate numerele
care au aprut o singur dat n fiierul NUMERE.IN, desprite prin cte un spaiu.
4.
Exemplu: dac fiierul NUMERE.IN conine numerele scrise alturat, se vor
afia valorile urmtoare: 3 4 5 6 34 . (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a)
(3 4 rnduri). (4p.)
2 23 34 3
8 9 9 23
6 8 9 2
4 5 23 9


Varianta 82 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 083

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi a i b memoreaz numere naturale. Care dintre
expresiile C/C++ de mai jos este echivalent cu expresia alturat? (4p.)
(a+b)%2==1
a. (a%2==0) && (b%2==1)|| (a%2==1) && (b%2==0)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (a%2==0) && (b%2==0) && (a%2==1) && (b%2==1)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei ce se afieaz la executarea algoritmului
dac se citete valoarea x=125. (6p.)
b) Scriei cea mai mare valoare cu exact 3 cifre care
poate fi citit pentru x astfel nct s se afieze
mesajul nu. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de alt
tip. (6p.)
citete x (numr natural, x>1)
auxx
ok11
ct timp x10 execut
dac x%10>[x/10]%10 atunci
ok10

x[x/10]

dac ok1=1 atunci
scrie aux
altfel
scrie nu


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 083

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful orientat cu nodurile numerotate de la 1 la 5 i arcele (1,2), (1,4),
(2,1), (2,5), (3,2), (4,3), (5,1), (5,4). Care este numrul minim de arce care
poate fi adugat pentru ca toate nodurile s aib i gradul extern i gradul intern numere
pare? (4p.)
a. 1 b. 2 c. 3 d. 4
2. Se consider o coad n care au fost introduse, n aceast ordine, numerele 1, 2 i 3. Care
dintre valorile din coad va fi eliminat prima? (4p.)
a. 1 b. 2 c. 3 d. oricare dintre ele

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un graf neorientat cu 5 noduri, n care nodurile au urmtoarele grade:
2,2,2,1,1. tiind c graful are dou componente conexe, scriei matricea de adiacen a
acestuia. (6p.)
4. Variabila cuv reine un cuvnt format din cel mult 25 litere mici ale alfabetului englez. Scriei
o secven de program C/C++ care afieaz pe ecran vocalele cuvntului, n ordinea
apariiei lor n cuvnt.
Exemplu: dac cuv reine cuvntul examen se afieaz eae (6p.)
5. Scriei un program C/C++ care citete de la tastatur o valoare natural nenul n (n10) i
apoi n*n numere ntregi distincte, fiecare avnd cel mult 4 cifre, reprezentnd elementele
unui tablou bidimensional cu n linii i n coloane. Programul determin cel mai mic i cel mai
mare numr de pe diagonala secundar, le interschimb, apoi afieaz pe ecran matricea
obinut dup modificare. Fiecare linie a matricei se afieaz pe cte o linie a ecranului, iar
elementele unei linii sunt separate prin cte un spaiu. (10p.)

Exemplu: pentru n=4 i tabloul:

2 24 15 -8
3 25 17 9
4 -2 73 10
5 14 12 10
se va afia 2 24 15 17
3 25 -8 9
4 -2 73 10
5 14 12 10



Varianta 83 - informatica
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
Subiectul III (30 de puncte) - Varianta 083

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Subprogramul cmmdc are doi parametri i returneaz cel mai mare divizor comun al
valorilor celor doi parametri, iar subprogramul max are doi parametri i returneaz cea mai
mare dintre valorile celor doi parametri.
Care este rezultatul evaluarii expresiei: max(cmmdc(max(194,87),342),3)? (4p.)
a. 87 b. 194 c. 3 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(2). Dar f(123)?
(6p.)

int f(int x)
{ if(x==0)return 0;
else
if(x%2==0)return 3+f(x/10);
else return 4+f(x/10);
}
3.
Scriei n C/C++ definiia complet a subprogramului medie, care are doi parametri:
- n, prin care primete un numr natural (1n100) ;
-v, prin care primete un tablou unidimensional cu n elemente, numere ntregi, fiecare avnd
cel mult patru cifre.
Funcia returneaz media aritmetic a elementelor pare din tablou sau valoarea 0 dac,n
tablou, nu exist elemente pare. (10p.)
Fiierul text NUMERE.IN conine, pe mai multe linii, cel mult 30000 de numere naturale
nenule mai mici sau egale cu 500, numerele de pe fiecare linie fiind desprite prin cte un
spaiu.
a) Scriei programul C/C++ care afieaz pe ecran, n ordine descresctoare, desprite prin
cte un spaiu, toate numerele care au aprut exact o singur dat n fiierul NUMERE.IN.
4.
Exemplu: dac fiierul NUMERE.IN conine numerele scrise alturat, se vor
afia valorile urmtoare: 34 6 5 4 3 (6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit la punctul a)
(3 4 rnduri). (4p.)
2 23 34 3
8 9 9 23
6 8 9 2
4 5 23 9

Varianta 83 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 084

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag n memoreaz un numr natural cu exact 4 cifre.
Care dintre expresiile C/C++ de mai jos este echivalent cu cea
alturat? (4p.)
n/100%10%2==0
a. n%100/10%2!=1 b. n%1000%2==0
c. n/100%2==0 d. n/10%10!=1

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a)
Scriei ce se afieaz dac numrul citit este
n=4576. (6p.)
b)
Scriei cea mai mare valoare cu exact 3 cifre,
care poate fi citit pentru n astfel nct s se
afieze, n aceast ordine, numerele 8 6. (4p.)
c)
Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d)
Scriei n pseudocod un algoritm echivalent cu cel
dat care s utilizeze o structur repetitiv de alt
tip n locul structurii ct timp...execut. (6p.)
citete n
(numr natural, n>1)
ok0
ct timp n>0 execut
cn%10
dac c>5 i c%2=0 atunci
ok11
altfel
ok10

dac ok1=1 atunci
scrie c,
ok1

n[n/10]

dac ok=0 atunci
scrie nu


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 084

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat cu nodurile numerotate de la 1 la 6 i avnd muchiile
[1,2], [1,4], [2,3], [3,5], [3,6], [4,5], [5,6]. Cte lanuri elementare distincte
exist de la nodul 1 la nodul 6 n graful dat? Dou lanuri sunt distincte dac difer prin cel
puin o muchie. (4p.)
a. 4 b. 2 c. 6 d. 0
2. Un arbore cu 9 noduri, numerotate de la 1 la 9, este memorat cu ajutorul vectorului de tai
t=(9,3,4,7,3,9,0,7,2). Numrul tuturor descendenilor nodului 2 este: (4p.)
a. 3 b. 1 c. 0 d. 2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider variabila c, de tip char, care memoreaz o liter a alfabetului englez, diferit
de z sau Z. Scriei secvena de program C/C++ care afieaz pe ecran litera care i
urmeaz n alfabet.
Exemplu: dac litera memorat este g se va afia h. (6p.)
4. Scriei secvena de program C/C++ care
afieaz pe ecran numele, prenumele i
media unui elev, reinute de variabila el,
declarat alturat. (6p.)
struct elev {
char nume[40];
char prenume[40];
float mediabac;
}el;
5. Scriei programul C/C++ care citete de la tastatur un numr natural n (1n10), apoi n*n
numere ntregi, mai mici dect 32000, reprezentnd elementele unui tablou bidimensional
cu n linii i n coloane, i care determin i afieaz pe ecran ultima cifr a produsului
numerelor pare de pe diagonala principal a tabloului sau mesajul imposibil dac nu
exist numere pare. (10p.)

Varianta 84 - informatica
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
Subiectul III (30 de puncte) - Varianta 084

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Folosind cifrele {2,3,4} se genereaz, n ordinea cresctoare a valorii, toate numerele
pare formate din trei cifre distincte. Astfel se obin, n ordine, numerele: 234, 324, 342,
432. Folosind aceeai metod, se genereaz numerele pare formate din patru cifre
distincte din mulimea {2,3,4,5}. Care va fi al doilea numr generat? (4p.)
a. 2354 b. 3254 c. 5432 d. 2534

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(99). Dar f(0)?
(6p.)

int f(int x)
{
if(x==100)return 1;
else return 1+f(x+1);
}
3. Scriei programul C/C++ care citete de la tastatur un numr natural n (1n100), un ir
de cte n numere ntregi, cu cel mult 5 cifre fiecare, notat a
1
,a
2
,a
3
,a
n
, apoi un al doilea
ir de n numere ntregi, cu cel mult 5 cifre fiecare, notat b
1
,b
2
,b
3
,b
n
. Programul
construiete n memorie i afieaz pe ecran un ir c format din n numere calculate astfel:
c
i
=a
i
+b
i
, pentru i=1,2,3,n. Numerele afiate vor fi separate prin cte un spaiu.
Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 43,3,1,8 se afieaz 45 6 8 16.
(10p.)
4. Se consider subprogramul CMMMC care primete prin cei doi parametri, x i y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mic multiplu comun al lor.
a) Scriei numai antetul subprogramului CMMMC. (4p.)
b) Fiierul text NUMERE.IN conine, pe fiecare linie, cte dou numere naturale nenule mai
mici sau egale dect 10000, desprite printr-un spaiu. Scriei un program C/C++ care,
pentru fiecare linie k din fiierul NUMERE.IN, citete cele dou numere de pe aceast linie
i scrie n fiierul text NUMERE.OUT , tot pe linia k, cel mai mic multiplu comun al acestora,
ca n exemplu. Se vor utiliza apeluri utile ale subprogramului CMMMC. (6p.)
Exemplu: dac fiierul
NUMERE.IN are coninutul
alturat:
12 14
11 12
4 8
atunci fiierul
NUMERE.OUT va avea
urmtorul coninut:
84
132
8


Varianta 84 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 085

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabilele ntregi n i m memoreaz numere naturale nenule pare, iar n<m. Care dintre
expresiile C/C++ de mai jos are valoarea egal cu numrul de valori impare din intervalul
nchis [n,m] ? (4p.)
a. (m-n)/2+1 b. m/2-n/2 c. (m-n)/2-1 d. m%2-n%2

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei ce se afieaz dac numrul citit este
n=9458. (6p.)
b) Scriei cea mai mare valoare cu exact 3 cifre,
care poate fi citit pentru n astfel nct s se
afieze, n aceast ordine, numerele 9 7. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent celui
dat n care s se nlocuiasc structura ct
timp...execut cu o structur repetitiv de alt
tip. (6p.)
citete n
(numr natural, n>1)
ok0
ct timp n>0 execut
cn%10
dac c%2=1 atunci
ok11
altfel
ok10

dac ok1=1 atunci
scrie c,
ok1

n[n/10]

dac ok=0 atunci
scrie nu


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 085

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful orientat cu vrfurile numerotate de la 1 la 7 i arcele (1,2),
(1,7), (2,3), (3,2), (3,4), (4,3), (5,4), (5,6), (6,4), (7,6). Cte
noduri cu gradul extern par exist n graful dat? (4p.)
a. 3 b. 2 c. 4 d. 0
2. Un arbore cu 9 noduri, numerotate de la 1 la 9, este memorat cu ajutorul vectorului de tai
t=(9,3,4,7,3,9,0,7,2). Lungimea celui mai lung lan elementar care pornete din
rdcin este: (4p.)
a. 1 b. 5 c. 3 d. 4

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei secvena de program C/C++ care
citete de la tastatur numele, prenumele i
salariul unei persoane, memorate de variabila
p, declarat alturat. (6p.)
struct persoana
{ char nume[40];
char prenume[40];
int salariu;
}p;
4. Se consider un graf neorientat cu 5 noduri, n care nodurile au urmtoarele grade:
1,2,1,1,1. tiind c graful are dou componente conexe, scriei matricea de adiacen a
acestuia. (6p.)
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (1n10) i n
2

numere ntregi mai mici dect 32000, reprezentnd elementele unui tablou bidimensional A
cu n linii i n coloane i apoi n
2
numere ntregi mai mici dect 32000 reprezentnd
elementele unui tablou bidimensional B cu n linii i n coloane. Programul construiete n
memorie i afieaz pe ecran tabloul C, cu n linii i n coloane, construit dup regulile de mai
jos, ca n exemplu:
- elementele de deasupra diagonalei principale sunt comune cu ale matricei A, situate pe
acealeai poziii
- elementele de pe diagonala principal sunt egale cu cel mai mic dintre elementele situate
pe aceleai poziii n matricele A i respectiv B
- elementele situate sub diagonala principal sunt egale cu ale matricei B, situate pe
aceleai poziii
Fiecare linie a matricei se afieaz pe cte o linie a ecranului, iar elementele de pe aceeai
linie sunt separate prin cte un spaiu. (10p.)

Exemplu:
pentru n=4
i matricea A:
1 2 3 4
5 6 7 8
9 15 11 12
1 8 7 5
i matricea B: 9 12 3 6
8 2 6 5
4 10 60 12
0 9 5 3
se obine
matricea C:
1 2 3 4
8 2 7 8
4 10 11 12
0 9 5 3


Varianta 85 - informatica
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
Subiectul III (30 de puncte) - Varianta 085

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Folosind cifrele {1,2,3} se genereaz, n ordinea cresctoare a valorii, toate numerele
impare formate din trei cifre distincte. Astfel se obin, n ordine, numerele: 123, 213, 231,
321. Folosind aceeai metod, se genereaz numerele impare formate din patru cifre
distincte din mulimea {1,2,3,4}. Care va fi al 2-lea numr generat ? (4p.)
a. 1423 b. 1243 c. 4321 d. 1234

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Pentru definiia alturat a subprogramului f,
scriei ce valoare are f(21). Dar f(30)?
(6p.)

int f(int x)
{
if(x==20)return 20;
else if(x%2==1)
return 1+f(x-1);
else
return 2+f(x-1);
}
3. Scriei programul C/C++ care citete de la tastatur un numr natural n (1n100), un ir
de cte n numere ntregi, cu cel mult 5 cifre fiecare, notat a
1
,a
2
,a
3
,a
n
, apoi un al doilea
ir de n numere ntregi, cu cel mult 5 cifre fiecare, notat b
1
,b
2
,b
3
,b
n
. Programul
construiete n memorie i afieaz pe ecran un ir C format din n numere calculate astfel:
c
i
=a
i
-b
i
, pentru i=1,2,3,n. Numerele afiate sunt separate prin cte un spaiu.
Exemplu: pentru n=4 i numerele 2,3,7,8 respectiv 43,3,1,8 se afieaz:
-41 0 6 0. (10p.)
4. Se consider subprogramul CMMDC care primete prin cei doi parametri, x i y, dou
numere naturale (1x10000, 1y10000) i returneaz cel mai mare divizor comun al lor.
a) Scriei numai antetul subprogramului CMMDC. (4p.)
b) Fiierul text NUMERE.IN conine, pe fiecare linie, cte dou numere naturale nenule mai
mici sau egale dect 10000, desprite printr-un spaiu, reprezentnd numitorul i
numrtorul cte unei fracii. Scriei un program C/C++ care, pentru fiecare linie k din
fiierul NUMERE.IN, citete numitorul i numrtorul fraciei de pe aceast linie i scrie n
fiierul text NUMERE.OUT , tot pe linia k, numitorul i numrtorul acestei fracii, adus la
forma ireductibil, ca n exemplu. Se vor utiliza apeluri apeluri utile ale subprogramului
CMMDC. (6p.)
Exemplu: dac fiierul
NUMERE.IN are coninutul
alturat:
12 14
11 12
2 2
4 8
atunci fiierul
NUMERE.OUT va avea
urmtorul coninut:
6 7
11 12
1 1
1 2

Varianta 85 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 086

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag n memoreaz un numr natural, cu cel puin dou cifre. Care dintre
instruciunile C/C++ de mai jos determin nlocuirea cu 0 a ultimei cifre a numrului
memorat n variabila n? (4p.)
a. n=n*(n%10); b. n=n/10; c. n=n-n%10; d. n=n-n/10;

2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei valorile care se vor afia dac se citesc, n
ordine, numerele 7 i 5. (6p.)
b) Dac n=11, scriei cea mai mic valoare care poate fi
citit pentru k astfel nct, n urma executrii
algoritmului, s se afieze, n ordine, toate numerele
naturale din intervalul nchis [1,11]. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n, k
(numere naturale nenule)

pentru i1,n execut
dac [i/k]=0 atunci
scrie i
kk-1
altfel
scrie i%k



d) Scriei n pseudocod un algoritm echivalent cu cel dat n care s se nlocuiasc structura
pentru...execut cu o structur repetitiv cu test final. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 086

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este suma gradelor grafului neorientat cu 4 noduri
numerotate de la 1 la 4, reprezentat prin matricea de
adiacen alturat?
(4p.)
0 1 1 1
1 0 1 0
1 1 0 0
1 0 0 0
a. 4 b. 10 c. 6 d. 8
2. Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de mai jos?
strncpy(s,strstr(examen,am),4); s[4]='\0'; (4p.)
a. amen b. exam c. menn d. men

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei matricea de adiacen a arborelui cu 6 noduri, numerotate de la 1 la 6, definit prin
urmtorul vector "de tai": (0, 1, 1, 1, 3, 3). (6p.)
4. n secvena alturat, i, j, m i n sunt variabile
ntregi iar T este o matrice format din m linii i n
coloane numerotate de la 1 la m, respectiv de la 1 la
n. Ce valoare are elementul maxim al acestei
matrice, n urma executrii secvenei, dac m=3 i
n=5? (6p.)
for(i=1; i<=m; i++)
for(j=1; j<=n; j++)
if ((i+j)%2==0)
T[i][j]=(-1)*(i+j);
else T[i][j]=i+j;
5. Scriei un program C/C++ care citete de la tastatur un numr natural n (1n10) apoi
construiete n memorie o matrice cu 2*n linii i 2*n coloane, numerotate de la 1 la 2*n,
astfel nct parcurgnd doar liniile impare ale matricei de sus n jos i fiecare linie impar de
la stnga la dreapta se obin n ordine strict cresctoare toate numerele impare cuprinse n
intervalul [1,4*n
2
], iar parcurgnd doar liniile pare ale matricei de sus n jos i fiecare linie
par de la dreapta la stnga se obin n ordine strict cresctoare toate numerele pare
cuprinse n intervalul [1,4*n
2
], ca n exemplu.

Programul afieaz pe ecran matricea obinut, cte o linie a matricei pe
cte o linie a ecranului, elementele fiecrei linii fiind separate prin cte un
spaiu.
Exemplu: pentru n=2 se obine matricea alturat. (10p.)
1 3 5 7
8 6 4 2
9 11 13 15
16 14 12 10

Varianta 86 - informatica
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
Subiectul III (30 de puncte) - Varianta 086

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. La examenul de bacalaureat, un elev primete un test format dintr-un subiect de tip I, unul
de tip II i unul de tip III. Stiind c pentru fiecare tip de subiect sunt elaborate exact 100
de variante, algoritmul de generare a tuturor posibilitilor de a forma un test este similar
cu algoritmul de generare a: (4p.)
a. elementelor produsului cartezian b. aranjamentelor
c. permutrilor d. submulimilor

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce se afieaz la apelul f(4);?
(6p.)
void f(int n)
{
cout<<"*"; | printf("*");
if(n>2)
{
f(n-1);
cout<<"#"; | printf("#");
}
}
3. Scriei definiia complet a subprogramului numar, cu doi parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrului c o cifr nenul; subprogramul returneaz numrul obinut prin nlocuirea
fiecrei apariii a cifrei c n numrul n cu partea ntreag a valorii (c+1)/2. Dac c nu
apare n n, subprogramul returneaz valoarea n.
Exemplu: pentru n=1525735, c=5 valoarea returnat va fi 1323733. (10p.)
4. Fiierul text bac.txt conine cel puin dou i cel mult 1000 de numere naturale, distincte.
Numerele sunt separate prin cte un spaiu i fiecare dintre ele are cel mult 9 cifre.
a) Scriei un program C/C++ care determin cele mai mici dou numere din fiier, utiliznd
un algoritm eficient din punct de vedere al timpului de executare i al spaiului de memorie
utilizat. Cele dou numere vor fi afiate pe ecran, n ordine cresctoare, separate printr-un
spaiu. (6p.)
Exemplu: dac fiierul conine numerele: 512 6 860 3 12 300 se va afia: 3 6
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)

Varianta 86 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 087

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre variantele de mai jos declar constanta x astfel nct aceasta s memoreze
corect numrul real 3,14? (4p.)
a. const int x=314/100; b. const char x=3.14;
c. const unsigned int x=3.14; d. const float x=3.14;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
a) Scriei numrul care se va afia dac se citesc,
n ordine, valorile 6, 4 i 10. (6p.)
b) Scriei cele mai mari trei numere naturale
nenule, distincte, cu cel mult dou cifre fiecare,
care pot fi citite pentru a, b respectiv c, astfel
nct s se afieze valoarea 7 la finalul
executrii algoritmului. (4p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu
cel dat n care s se nlocuiasc structura
repetitiv ct timp...execut cu o
structur repetitiv cu test final. (6p.)
citete a,b,c
(numere naturale nenule)

ct timp ab sau ac execut
xa
dac x>b atunci
xb

dac x>c atunci
xc

dac xa atunci
aa-x

dac xb atunci
bb-x

dac xc atunci
cc-x



scrie a

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 087

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte muchii are graful neorientat cu 6 noduri numerotate de la
1 la 6, reprezentat prin lista de adiacene alturat?
(4p.)
1: 2 6
2: 1 3 4 5
3: 2
4: 2
5: 2 6
6: 1 5
a. 5 b. 4 c. 12 d. 6
2. Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de mai
jos?
strncpy(s,strstr("Informatica","form"),strlen("BAC08")); s[5]='\0';
(4p.)
a. form b. forma
c. InfoBAC d. Infor

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un arbore cu 6 noduri, numerotate de la 1 la 6,
reprezentat prin matricea de adiacen dat alturat. Scriei toate
nodurile care pot fi alese ca rdcin a arborelui astfel nct acesta
s aib un numr maxim de frunze. (6p.)
0 1 0 0 0 1
1 0 1 1 1 0
0 1 0 0 0 0
0 1 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
4. n secvena alturat, i, j i n sunt variabile ntregi, iar
T este o matrice ptratic format din n linii i n coloane
numerotate de la 1 la n. Care este suma elementelor de
sub diagonala principal (excluznd elementele care se
afl pe diagonala principal), n urma executrii
secvenei, dac n=5? (6p.)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if ((i*j)%2==0)
T[i][j]=(i*j)-n;
else T[i][j]=i+j;
5.
Scriei un program C/C++ care citete de la tastatur un ir de cel mult 100 de caractere,
care pot fi litere ale alfabetului englez, cifre, semne de punctuaie i spaii, i transform irul
citit nlocuind toate literele mici cu literele mari corespunztoare i toate literele mari cu
literele mici corespunztoare. Programul va afia pe o linie a ecranului irul rezultat n urma
acestor nlocuiri, iar pe urmtoarea linie a ecranului numrul de caractere care au rmas
nemodificate.
Exemplu: dac irul citit este:
Ana-Maria are 3 frati.
programul va afia
aNA-mARIA ARE 3 FRATI.
6 (10p.)

Varianta 87 - informatica
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
Subiectul III (30 de puncte) - Varianta 087

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Algoritmul de generare a tuturor numerelor de 3 cifre, formate numai cu cifre impare, este
echivalent cu algoritmul de generare a: (4p.)
a. submulimilor unei mulimi cu 3 elemente b. combinrilor de 5 elemente luate cte 3
c. aranjamentelor de 5 elemente luate cte 3 d. produsului cartezian a 3 mulimi de cifre
impare

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce se afieaz la apelul f(4);?
(6p.)
void f(int n)
{
if(n<8)
{
cout<<n; | printf(%d,n);
f(n+1);
cout<<n; | printf(%d,n);
}
}
3. Scriei definiia complet a subprogramului numar, cu doi parametri, care primete prin
intermediul parametrilor a i b dou numere naturale, a fiind format din cel mult 9 cifre, iar b
fiind un numr natural strict mai mic dect numrul de cifre ale lui a. Subprogramul
nlocuiete cu 1 primele b cifre ale numrului a i returneaz valoarea astfel obinut.
Exemplu: pentru a=184465709 i b=5, valoarea returnat va fi 111115709 (10p.)
4. Fiierul text bac.txt conine un ir de cel mult 2009 numere naturale nenule, cu cel mult 4
cifre fiecare, pe mai multe rnduri, numerele de pe acelai rnd fiind separate prin cte un
spaiu.
a) Scriei un program C/C++ care citete de la tastatur un numr natural k i afieaz pe
ecran cel mai mic numr din fiierul bac.txt care este mai mare sau egal cu numrul
natural k, precum i numrul de apariii ale acestuia n fiier, folosind o metod eficient din
punctul de vedere al timpului de executare. Cele dou valori vor fi afiate pe o linie a
ecranului, separate printr-un spaiu. Dac n fiier nu exist nici un numr mai mare sau egal
cu k, se va afia doar valoarea 0. (6p.)
Exemplu: dac n fiier avem numerele 31 2 63 71 8 63 5 281 i numrul citit este
k=50, atunci pe ecran se vor afia numerele: 63 2.
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)

Varianta 87 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 088

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. In secvenele C/C++ urmtoare toate variabilele sunt de tip ntreg i memoreaz numere
cu cel mult 3 cifre. Care dintre variantele de mai jos determin interschimbarea valorilor
memorate de variabilele a i b? (4p.)
a. aux=b; a=b; b=aux; b. a=a+b; b=a-b; a=a-b;
c. a=b; b=a; d. a=a+b; b=a-b; a=b-a;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei numrul care se va afia dac se citete
valoarea 123456. (6p.)
b) Scriei o valoare cu exact 5 cifre care poate fi citit
pentru variabila a astfel nct numrul afiat s fie
format din toate cifrele lui a, scrise n ordine invers.
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat n care s se nlocuiasc structura ct timp
... execut cu o structur repetitiv cu test final.
(6p.)
citete a
(numr natural)

p1
b0
ct timp a0 execut
ca%10
dac a%2=0 atunci
bb+c*p
altfel
bb*10+c

a[a/10]
pp*10


scrie b

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 088

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul de noduri de grad 1 ale grafului neorientat
cu 8 noduri numerotate de la 1 la 8, reprezentat prin listele de
adiacen alturate?
(4p.)
1: 2 6 8
2: 1 3
3: 2 4 7
4: 3 5
5: 4
6: 1
7: 3
8: 1
a. 4 b. 8 c. 3 d. 6
2. Fie declarrile alturate. Dac variabila x retine
informaii despre 30 de elevi, precizai care este
varianta corect ce afieaz numele i media
elevului al 11-lea? (4p.)
struct elev{
char nume[30];
float media;};
elev x[30];
a.
cout<<x[10].nume<< <<x[10].media;
| printf(%s %f, x[10].nume,x[10].media);
b.
cout<<x.nume<< <<x.media;
| printf(%s %f, x.nume,x.media);
c.
cout<<x.nume[10]<< <<x.media;
| printf(%s %f, x.nume[10],x.media);
d.
cout<<x[10]->nume<< << x[10]->media);
| printf(%s %f, x[10]->nume,x[10]->media);

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un arbore cu 6 noduri, numerotate de la 1 la 6,
reprezentat prin matricea de adiacen dat alturat. Scriei toate
nodurile care pot fi alese ca rdcin a arborelui astfel nct acesta
s aib un numr minim de frunze. (6p.)
0 1 0 0 0 1
1 0 1 1 1 0
0 1 0 0 0 0
0 1 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
4. n secvena alturat, i, j i n sunt variabile ntregi, iar
T este o matrice ptratic format din n linii i n
coloane, numerotate de la 1 la n. Care va fi suma
elementelor de pe diagonala secundar a matricei n
urma executrii secvenei, dac n=5? (6p.)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if ((i*j)%2==0)
T[i][j]=(i*j)-n;
else T[i][j]=i+j;
Scriei un program C/C++ care citete de la tastatur un numr natural n (1n20),
elementele unei matrice cu n linii i n coloane, numere ntregi din intervalul [-100,100] i
afieaz pe ecran media aritmetic a elementelor strict pozitive ale matricei, care sunt
situate deasupra diagonalei principale, ca n exemplu. Dac nu exist elemente strict
pozitive situate deasupra diagonalei principale, programul va afia mesajul NU EXISTA .
5.
Exemplu: pentru n=4 i matricea alturat se afieaz valoarea
2.75 (sunt luate n considerare doar elementele marcate).
(10p.)
-1 2 -4 5
0 6 3 1
2 4 2 0
3 -5 1 -3

Varianta 88 - informatica
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
Subiectul III (30 de puncte) - Varianta 088

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Ionel dorete s ofere cadouri membrilor familiei sale, format din cei doi prini i o sor.
Decide s le ofere stilouri de diferite culori. La magazin exist stilouri de 5 culori diferite.
Algoritmul de generare a tuturor posibilitilor de a atribui cte un stilou fiecruia dintre cei
trei membri ai familiei, fr s se repete vreo culoare, este similar cu algoritmul de
generare a (4p.)
a. aranjamentelor b. elementelor produsului cartezian
c. permutrilor d. submulimilor

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(1)? Dar
f(4)?

(6p.)
int f(int n)
{
if (n==0) return 1;
else if (n==1) return 2;
else return f(n-1)-f(n-2);
}
3. Scriei definiia complet a subprogramului numar, cu patru parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 i c2 cte o cifr, cu proprietatea c1<c2; subprogramul furnizeaz prin
intermediul celui de al patrulea parametru, x, o valoare egal cu suma cifrelor lui n care
aparin intervalului nchis [c1,c2].
Exemplu: pentru n=123, c1=2 i c2=7, valoarea furnizat prin x va fi 5. (10p.)
4. Fiierul text bac.txt conine cel mult 10000 de numere naturale din intervalul nchis [0,
999], aflate pe mai multe linii, numerele de pe aceeai linie fiind separate prin cte un
spaiu.
a) Scriei un program C/C++ care determin i afieaz pe ecran cel mai mic numr prim a
cu proprietatea maxa, unde max este cea mai mare valoare din fiier. Se va utiliza un
algoritm eficient din punct de vedere al spaiului de memorie utilizat. (6p.)
Exemplu: dac fiierul conine numerele: 5 8 99 5 1 1 2 2 se va afia 101.
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)

Varianta 88 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 089

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreg n memoreaz un numr natural format din exact dou cifre nenule. Care
dintre urmtoarele instruciuni C/C++ determin memorarea n variabila ntreag t a
numrului care are aceleai cifre ca i n, dar n ordine invers? (4p.)
a. t=n%10*10+n/10; b. t=n/10*10+n%10;
c. t=n%10+n/10; d. t=n%10*10+t/10;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [z] partea ntreag a
numrului real z.
a) Scriei numrul care se va afia dac se citete numrul
n=3072941. (6p.)
b) Scriei un numr format din exact 5 cifre, ele fiind n
ordine strict cresctoare, care poate fi citit astfel nct
executarea algoritmului s determine afiarea unui
numr egal cu cel citit. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat n
care s se nlocuiasc fiecare structur ct timp
execut cu cte o structur repetitiv cu test final.(6p.)
citete n
(numr natural)

tn; r0
ct timp t>0 execut
dac (t%10)%2=1 atunci
rr*10+1
altfel
rr*10+t%10

t[t/10]

n0
ct timp r>0 execut
nn*10+r%10
r[r/10]


scrie n

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 089

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Enumerai nodurile de grad 1 din graful neorientat cu 8 noduri
numerotate de la 1 la 8, reprezentat prin listele de adiacen
alturate.
(4p.)
1: 3 4 5 6
2: 3
3: 1 2 7
4: 1
5: 1 8
6: 1
7: 3
8: 5
a. 2 3 4 5 6 b. 2 4 7 8 c. 2 4 6 d. 2 4 6 7 8
2. Ce valoare are variabila s de tip ir de caractere dup executarea instruciunilor de mai
jos?
strncpy(s,strstr("informatica","form"),strlen("BAC009"));
s[6]='\0'; (4p.)
a. format b. informat c. inform d. informBAC

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Determinai ultima valoare (notat cu ?) din vectorului de tai (0, 1, 1, 2, 3, 3, ?) astfel
nct arborele cu 7 noduri, numerotate de la 1 la 7, descris de acest vector, s aib pe
fiecare nivel n exact 2
n
noduri, nodul rdcin fiind pe nivelul n=0, i fiecare nod s aib cel
mult doi descendeni. Scriei matricea de adiacen a unui arbore astfel definit. (6p.)
4. n secvena alturat, i, j i n sunt
variabile ntregi iar T este o matrice
ptratic format din n linii i n coloane
numerotate de la 1 la n. Care va fi suma
elementelor de pe diagonala principal n
urma executrii secvenei, dac n=5? (6p.)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if ((i*j)%2==0)
T[i][j]=(i*j)/2;
else T[i][j]=i+j;
Scriei un program C/C++ care citete de la tastatur un numr natural n (1n6) apoi
construiete n memorie o matrice cu n linii i n coloane, astfel nct parcurgnd liniile
matricei de sus n jos i de la stnga la dreapta se obin, n prima linie primele n numere ale
irului Fibonacci n ordine cresctoare, n linia a doua urmtoarele n numere ale irului
Fibonacci n ordine descresctoare, n linia a treia urmtoarele n numere ale acestui ir n
ordine cresctoare, i aa mai departe, ca n exemplu. Elementele irului Fibonacci se obin
astfel: primul element este 0, al doilea este 1, iar elementele urmtoare se obin nsumnd
cele dou elemente care preced elementul curent. Astfel, primele 16 elemente ale acestui ir
sunt: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610.
5.
Programul afieaz pe ecran matricea obinut, cte o linie a
matricei pe cte o linie a ecranului, elementele fiecrei linii fiind
separate prin cte un spaiu.
Exemplu: pentru n=4 se obine matricea alturat. (10p.)
0 1 1 2
13 8 5 3
21 34 55 89
610 377 233 144

Varianta 89 - informatica
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
Subiectul III (30 de puncte) - Varianta 089

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. O clas format din 28 de elevi dorete s trimit la consftuirea reprezentanilor claselor
colii o delegaie format din 3 elevi. Algoritmul de generare a tuturor posibilitilor de a
forma o delegaie este similar cu algoritmul de generare a: (4p.)
a. permutrilor b. aranjamentelor
c. combinrilor d. submulimilor

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit
alturat. Ce valoare are f(0)? Dar
f(4)?
(6p.)
long f(int n)
{
if (n==0) return 0;
else return n*n+f(n-1);
}
3. Scriei definiia complet a subprogramului numar, cu trei parametri, care primete prin
intermediul parametrului n un numr natural format din cel mult 9 cifre, iar prin intermediul
parametrilor c1 i c2 cte o cifr nenul. Subprogramul caut fiecare apariie a cifrei c1 n
n, i dac aceasta apare, o nlocuiete cu c2. Subprogramul furnizeaz tot prin n numrul
astfel obinut. Dac cifra c1 nu apare n n, atunci valoarea lui n rmne nemodificat.
Exemplu: pentru n=149448, c1=4 i c2=2, valoarea furnizat prin n va fi 129228. (10p.)
4. Fiierul text bac.txt conine pe mai multe rnduri cel mult 50000 de numere naturale din
intervalul nchis [0, 99], numerele de pe acelai rnd fiind separate prin cte un spaiu.
a) Scriei un program C/C++ care afieaz pe ecran, n ordine cresctoare, acele numere
din fiier care sunt mai mari dect un numr natural k, citit de la tastatur, utiliznd un
algoritm eficient din punct de vedere al timpului de executare. Dac un numr care
corespunde cerinei apare de mai multe ori, se va afia o singur dat. Numerele vor fi
afiate pe ecran separate prin cte un spaiu. (6p.)
Exemplu: dac fiierul conine numerele: 15 36 33 36 1 12 1 24 2, iar pentru k se citete
valoarea 24, se vor afia numerele 33 36.
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)

Varianta 89 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 090

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele instruciuni C/C++ atribuie variabilei ntregi t valoarea -1 dac i
numai dac variabilele ntregi a i b sunt nenule i au semne diferite? (4p.)
a. if ((a>0)||(b<0)) t=-1; b. if ((a>0)&&(b<0)) t=-1;
c. if (a*b<0) t=-1; d. if (a*b>0) t=-1;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei valorile care se vor afia n urma executrii
algoritmului dac se citesc numerele a=105, b=118 i
k=7. (6p.)
b) Dac pentru k se citete valoarea 7, iar pentru a valoarea
2009, scriei cea mai mare valoare care se poate citi
pentru variabila b, astfel nct numrul afiat s fie -1.
(4p.)
c) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
citete a, b, k
(numere naturale)
t a
p 0
ct timp tb execut
dac k=t%10 atunci
scrie t
p1

tt+1

dac p=0 atunci
scrie -1

d) Scriei n pseudocod un algoritm echivalent cu cel dat n care s se nlocuiasc structura
ct timp...execut cu o structur repetitiv cu test final. (6p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 090

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Enumerai nodurile cu grad impar ale grafului neorientat cu 6 noduri numerotate de la 1 la
6 i muchiile [1,6], [2,1], [2,6], [3,2], [3,4], [3,6], [4,5], [4,6], [6,5].
(4p.)
a. 2 3 4 6 b. 1 3 5 c. 2 4 6 d. 1 3 5 6
2. Ce memoreaz variabila s, de tip ir de caractere, dup executarea instruciunilor de mai
jos?
strncpy(s,"informatica",strlen("2008"));
s[strlen("2008")]='\0';
strcat(s,"BAC"); (4p.)
a. info b. infoBAC c. BACinfo d. InformaticaBAC

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider un arbore cu 6 noduri, numerotate de la 1 la 6,
reprezentat prin matricea de adiacen dat alturat. Scriei toate
nodurile care pot fi alese ca rdcin a arborelui astfel nct acesta
s aib un numr par de frunze.
(6p.)
0 1 0 0 0 1
1 0 1 1 1 0
0 1 0 0 0 0
0 1 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
4. n secvena alturat, i, j i n sunt variabile
ntregi iar T este o matrice ptratic format
din n linii i n coloane numerotate de la 1 la
n. Care va fi suma valorilor de pe diagonala
secundar a matricei n urma executrii
secvenei, dac n=5? (6p.)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if ((i+j)%3==0)
T[i][j]=(i+j)/3;
else T[i][j]=i-j;
Scriei un program C/C++ care citete de la tastatur un numr natural n (1n20),
elementele unei matrice cu n linii i n coloane, numere ntregi din intervalul [-100, 100] i
afieaz pe ecran diferena m1-m2, unde m1 este media aritmetic a elementelor strict
pozitive ale matricei, situate deasupra diagonalei principale, iar m2 este media aritmetic a
elementelor strict pozitive ale matricei, situate sub diagonala principal, ca n exemplu. Cele
dou medii se consider egale cu 0 dac nu exist valori strict pozitive n zonele
corespunztoare.
5.
Exemplu: pentru n=4 i matricea alturat se afieaz valoarea 0.25
(m1=2.75, calculat din elementele aflate deasupra diagonalei
principale, marcate cu chenar, i m2=2.5, calculat din elementele
subliniate). (10p.)
-1 2 -4 5
0 6 3 1
2 4 2 0
3 -5 1 -3

Varianta 90 - informatica
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
Subiectul III (30 de puncte) - Varianta 090

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. La un bal mascat, magazia colii pune la dispoziia elevilor 10 pelerine, 10 mti i 10
plrii divers colorate. Algoritmul de generare a tuturor posibilitilor de a obine un costum
format dintr-o plrie, o masc i o pelerin este similar cu algoritmul de generare a : (4p.)
a. elementelor produsului cartezian b. aranjamentelor
c. permutrilor d. submulimilor

Scriei pe foaia de examen rspunsul la urmtoarea ntrebare:
2. Se consider subprogramul f, definit
alturat. Ce se afieaz la apelul
f('a');?
(6p.)
void f(char c)
{
if (c != 'e')
{
f(c+1);
cout<<c; | printf(%c,c);
}
}
3. Scriei definiia complet a subprogramului f, care primete prin intermediul parametrului n
un numr natural nenul (2n200), iar prin intermediul parametrului a un tablou
unidimensional care conine n valori ntregi, fiecare dintre aceste valori ntregi avnd cel
mult patru cifre. Subprogramul returneaz valoarea 1 dac diferena dintre elementul maxim
i elementul minim din tablou este mai mare dect 1000, altfel valoarea returnat va fi 0.
(10p.)
4. Fiierul text bac.txt conine pe mai multe rnduri cel mult 50000 de numere naturale,
numerele aflate pe acelai rnd fiind separate prin cte un spaiu. Fiecare numr are cel
mult 4 cifre.
a) Scriei un program C/C++ care, utiliznd un algoritm eficient din punct de vedere al
timpului de executare i al spaiului de memorie folosit, determin numrul din fiier care are
cei mai muli divizori. n cazul n care exist mai multe valori n fiier care au numr maxim
de divizori, programul va afia cea mai mic dintre acestea. (6p.)
Exemplu: dac fiierul conine valorile 23 12 100 36 atunci se va afia 36, pentru c
att 100 ct i 36 au numr maxim de divizori, dar 36 este cel mai mic.
b) Descriei succint, n limbaj natural, algoritmul utilizat, justificnd eficiena acestuia. (4p.)

Varianta 90 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 091

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. tiind c variabila ntreag nr memoreaz valoarea 5, stabilii ce mesaj se va afia n urma
executrii secvenei urmtoare. (4p.)
//C++
if (nr<7) if (nr>3)
cout<<Bine;
else cout<<Foarte bine;
else cout<<Rau;
//C
if (nr<7) if (nr>3)
printf(Bine);
else printf(Foarte bine);
else printf(Rau);
a. BineRau b. Foarte bine c. Rau d. Bine

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
S-a notat cu [a] partea ntreag a numrului real a i cu |b|
valoarea absolut a numrului ntreg b.
a) Scriei valoarea care se va afia pentru z=50 i x=1.
(6p.)
b) Scriei n pseudocod un algoritm echivalent cu cel dat,
n care s se nlocuiasc structura repet...pn
cnd cu o structur repetitiv cu test iniial. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Dac pentru z se citete numrul 30, scriei o valoare
care, citit pentru x, determin ca atribuirea yx s se
execute o singur dat. (4p.)
citete z, x
(numere ntregi nenule)
z|z|
x|x|
repet
yx
x[(x+z/x)/2]
pn cnd x=y
scrie x

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 091

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat: cu 60 de noduri i 40 de muchii. Suma gradelor tuturor
nodurilor este egal cu : (4p.)
a. 120 b. 80 c. 100 d. 20
2. Un arbore cu rdcin are 11 noduri, numerotate de la 1 la 11, i este memorat cu ajutorul
vectorului de tai t=(2,5,5,3,0,2,4,6,6,2,3). Descendenii direci (fiii) ai nodului 2
sunt: (4p.)
a. 1, 6 i 10 b. 5 c. 6, 8 i 9 d. 3

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider o stiv n care iniial au fost introduse, n aceast ordine, valorile 1,2,3,4. Se
noteaz cu PUSH(x) operaia prin care se adaug valoarea x n stiv, i POP operaia prin
care se extrage un element din stiv. Presupunem c se execut urmtoarele operaii
asupra stivei considerate: POP; POP; PUSH(4); PUSH(3); PUSH(5); POP;
n urma executrii lor
a) care este elementul din vrful stivei? (3p.)
b) care este suma elementelor aflate n stiv? (3p.)
4. Ce se va afia n urma executrii
secvenei alturate de program, n care
variabila c memoreaz un ir cu cel
mult 20 de caractere, iar variabila i
este de tip ntreg? (6p.)
char c[]="abracadabra";
c[4]='i';
for(i=4;i>=0;i--)
cout<<c[i]; | printf(%c,c[i]);
5. Scriei un program n limbajul C/C++ care citete de la tastatur dou valori naturale n i m
(1n50, 1m50) i apoi n*m valori 0 i 1 reprezentnd elementele unui tablou
bidimensional cu n linii, numerotate de la 1 la n, i m coloane, numerotate de la 1 la m;
programul determin i afieaz pe ecran numrul de ordine al primei coloane care are un
numr maxim de valori 1. (10p.)

Exemplu: pentru pentru n=5 i m=4 i tabloul alturat, se va afia 2.


Varianta 91 - informatica
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
Subiectul III (30 de puncte) - Varianta 091

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Se genereaz, utiliznd metoda bactracking, numerele cu exact 3 cifre distincte din
mulimea {5,1,3}. Dac primele 3 numere generate sunt, n ordine, 513, 531, 153, care
este urmtorul numr generat? (4p.)
a. 351 b. 155 c. 315 d. 135

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider subprogramul f, definit alturat.
Ce se afieaz la apelul f(20)? (6p.)
void f (int i)
{if(i!=0)
{ printf(%d,i);|cout<<i;
f(i/2);
printf(%d,i);|cout<<i;
}
}
3. Subprogramul par primete prin singurul su parametru, n, un numr natural nenul cu cel
mult 8 cifre i returneaz valoarea 1 dac n conine cel puin o cifr par, sau returneaz
valoarea 0 n caz contrar.
Exemplu: pentru n=723 subprogramul va returna valoarea 1.
a) Scriei numai antetul subprogramului par. (2p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural nenul n cu cel
mult trei cifre, apoi un ir de n numere naturale, cu cel puin dou i cel mult 8 cifre fiecare,
i afieaz pe ecran numrul de valori din irul citit care au numai cifra unitilor par,
celelalte cifre fiind impare. Se vor utiliza apeluri utile ale subprogramului par.
Exemplu: dac n=4, iar irul citit este 7354, 123864, 51731, 570 se va afia 2 (numerele
7354 i 570 respect condiia cerut). (8p.)
Fiierul numere.in conine cel mult 5000 de numere reale, cte unul pe fiecare linie. Se
cere s se scrie un program care s citesc toate numerele din fiier i s afieze pe ecran
numrul de ordine al primei, respectiv al ultimei linii pe care se afl cel mai mare numr din
fiier. Cele dou numere vor fi separate printr-un spaiu. Alegei o metod de rezolvare
eficient din punct de vedere al spaiului de memorare i al timpului de executare.
4.
Exemplu: dac fiierul are coninutul alturat, pe ecran se vor afia numerele 2 6.
a) Descriei succint, n limbaj natural, metoda de rezolvare aleas, explicnd n ce
const eficiena ei. (4p.)
b) Scriei programul C/C++ corespunztor metodei descrise. (6p.)
3.5
7
-4
7
2
7
6.3
5

Varianta 91 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 092
Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Stabilii care dintre urmtoarele expresii C/C++ are valoarea 1 dac i numai dac numrul
ntreg x, nu aparine intervalului A=(-10,-2)[50,100]? (4p.)
a. (x<=-10) || (x<50 && x>=-2) || (x>100)
b. (x<=-10) || (x<=50 && x>=-2) || (x>=100)
c. (x<-10) || (x<50 && x>-2) || (x>100)
d. (x<=-10) || (x<=50 || x>=-2) || (x>100)

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu [x] partea ntreag a numrului real x.
a) Scriei ce se afieaz dac se citesc, n aceast
ordine, valorile: 5, 8, 12, 15, 10, 25, 9, 8, 30, 10.
(6p.)
b) Dac pentru n se citete valoarea 3 scriei un ir de
date de intrare astfel nct ultima valoare care se
afieaz s fie 3. (4p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei un algoritm pseudocod echivalent cu cel dat
n care structura repet...pn cnd s fie
nlocuit cu o structur repetitiv cu test iniial. (6p.)
citete n
(numr natural nenul)
nr0
y0
pentru i1,n execut
repet
citete x (numr real)
nrnr+1
pn cnd x>=1 i x<=10
yy+x

scrie [y/n]
scrie nr


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 092

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre urmtoarele arce aparine grafului
orientat cu 4 vrfuri, avnd gradele din tabelul
alturat (x,yN)? (4p.)

a. (2,3) b. (1,2) c. (1,4) d. (4,1)
2. Variabila s este de tip ir de caractere, iar variabilele c1 i c2 sunt de tip char. Care
expresie are valoarea 1 dac i numai dac irul de caractere s conine caracterele
memorate de variabilele c1 i c2? (6p.)
a. strstr(s,c1+c2)!=0 b. strchr(s,c1)!=0 || strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0 d. strchr(s,c1)*strchr(s,c2)!=0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei vectorul de tai corespunztor arborelui cu 6 noduri,
numerotate de la 1 la 6, dat prin lista alturat a
descendenilor direci (fiilor). (6p.)
1: 4,6
2: -
3: 1,5
4: -
5: -
6: 2
4. Scriei o expresie logic C/C++ care s
codifice condiia ca variabila v din
declaraiile alturate s reprezinte
segmentul nul (segmentul care are
originea identic cu extremitatea). (4p.)
struct punct {
float x; float y;
};
struct segment {
struct punct origine;
struct punct extremitate;
} v;
Scriei un program C/C++ care citete de la tastatur numerele ntregi m i n (1m50,
1n50) i elementele unui tablou bidimensional cu m linii i n coloane, numere ntregi
distincte de cel mult 4 cifre fiecare, i elimin din tablou, la nivelul memoriei, linia i coloana
corespunztoare elementului de valoare minim. Programul va afia tabloul obinut pe
ecran pe m-1 linii, elementele fiecrei linii fiind separate prin cte un spaiu. (10p.)
5.
Exemplu: pentru m=3 i n=4 i tabloul de mai jos
2 7 1 4
14 6 12 3
9 22 8 5
Pe ecran se va afia:
14 6 3
9 22 5

Varianta 92 - informatica
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
Subiectul III (30 de puncte) - Varianta 092

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1.
Avnd la dispoziie cifrele 0, 1 i 2 se pot genera, n ordine cresctoare, numere care au
suma cifrelor egal cu 2. Astfel, primele 6 soluii sunt 2, 11, 20, 101, 110, 200. Folosind
acelai algoritm, se genereaz numere cu cifrele 0, 1, 2 i 3 care au suma cifrelor egal
cu 4. Care va fi al 7-lea numr din aceast generare? (4p.)
a. 130 b. 301 c. 220 d. 103

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider definit subprogramul f.
Ce se va afia n urma apelului
f(14);?
(6p.)

void f(int x)
{
if (x<=10)
cout<<0<< ; | printf("%d ",0);
else
{ f(x-2);
cout<<x<< ; | printf("%d ",x);
}
}
3. Subprogramul ordonare primete prin parametrul x un tablou unidimensional cu cel mult
100 de elemente numere reale, iar prin parametrul n un numr ntreg ce reprezint numrul
efectiv de elemente ale tabloului x. Subprogramul ordoneaz cresctor elementele tabloului
i furnizeaz, tot prin intermediul parametrului x, tabloul ordonat.
a) Scriei numai antetul acestui subprogram. (4p.)
b) Scriei un program C/C++ care citete de la tastatur dou numere naturale, n i m
(1n100 i mn), i apoi un ir de n numere reale distincte. Folosind apeluri utile ale
subprogramului ordonare, programul afieaz pe prima linie a ecranului cele mai mari m
elemente din irul citit (n ordine cresctoare a valorilor lor), iar pe a doua linie de ecran,
cele mai mici m elemente din ir (n ordine descresctoare a valorilor lor). Numerele afiate
pe aceeai linie vor fi separate prin cte un spaiu. (10p.)
Exemplu : dac n=9, m=3, iar irul este (14.2, 60, -7.5, -22, 33.8, 80, 4, 10, 3) se va
afia pe ecran:
33.8 60 80
3 -7.5 -22
4. Scriei un program C/C++ care creeaz fiierul text SIR.TXT i scrie n el, n ordine
alfabetic, toate irurile formate din dou caractere distincte, litere mari ale alfabetului
englez. Fiecare ir va fi scris pe cte o linie a fiierului. (6p.)

Varianta 92 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 093

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabile ntregi x i y memoreaz cte un numr natural, cu
exact dou cifre. Care este valoarea expresiei x-y tiind c
fiecare dintre expresiile C/C++ alturate are valoarea 1? (4p.)
x/10==y%10
y/10==x%10
x/10==x%10+1
a. 0 b. 9 c. 1 d. 11

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat descris n pseudocod.
a) Scriei valoarea care se afieaz dac se citesc
numerele n=2 i m=11. (6p.)
b) Scriei programul C/C++ corespunztor algoritmului dat.
(10p.)
c) Dac pentru n se citete valoarea 1 scriei numrul de
valori naturale nenule de exact o cifr, care pot fi citite
pentru variabila m, astfel nct s se afieze valoarea 0.
(6p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat,
care s NU foloseasc structuri repetitive sau recursive.
(4p.)
citete n,m
(numere naturale, nm)
s0
ct timp n<m execut
ss+n
nn+3

dac n=m atunci
scrie s+n
altfel
scrie 0


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 093

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul minim de noduri ce trebuie eliminate din graful
alturat astfel nct subgraful obinut s nu fie conex? (4p.)

a. 3 b. 0 c. 2 d. 1
2. n declararea alturat, cmpurile x i y ale nregistrrii pot
memora coordonatele carteziene ale unui punct din planul xOy.
Care dintre urmtoarele expresii are valoarea 1 dac i numai
dac punctul P este situat pe axa Ox ? (6p.)
struct punct
{
float x,y;
}P;
a. P.x==0 b. P.y==0 c. P.x+P.y==0 d. P.x==P.y

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider arborele din figura alturat.
a) Care este nodul care trebuie ales ca rdcin astfel nct aceasta s
aib 4 descendeni direci (fii)? (3p.)
b) Care sunt cei patru fii ai nodului ales ca rdcin n acest caz? (3p.)

4. Se consider o list liniar simplu nlnuit asupra creia se execut urmtoarea prelucrare:
ntre oricare dou elemente ce memoreaz valorile x i y,aflate pe poziii consecutive, se
insereaz cel mai mare divizor comun al numerelor x i y. Dac lista conine iniial, n
ordine, doar numerele 10,4,2,6 precizai care este numrul maxim de elemente aflate pe
poziii consecutive ce vor memora aceeai valoare, dup realizarea prelucrrii menionate.
(4p.)
5. Un ir de caractere s se numete ablon pentru un alt ir de caractere x, dac este format
din caractere din mulimea {*,?,#}, are aceeai lungime cu x i pe fiecare poziie din s n
care apare * n x se gsete o vocal, pe fiecare poziie din s n care apare # n x se
gsete o consoan i pe fiecare poziie din s n care apare ? putem avea orice caracter
n x. Se consider vocal orice liter din mulimea {a,e,i,o,u}.
Scriei programul C/C++ care citete de la tastatur dou iruri de caractere, de aceeai
lungime, formate din cel mult 200 de litere mici ale alfabetului englez, i afieaz pe ecran
un ablon comun celor dou iruri citite, care conine un numr minim de caractere ?.
Exemplu: pentru irurile diamant i pierdut se afieaz #**#??# (10p.)

Varianta 93 - informatica
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
Subiectul III (30 de puncte) - Varianta 093

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n cte dintre permutrile elementelor mulimii {I,N,F,O} vocala I apare pe
prima poziie? (4p.)
a. 1 b. 24 c. 6 d. 12

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Subprogramul f este definit
alturat.
Ce se afieaz ca urmare a apelului
f(1,3);?
(4p.)
void f (int x,int y)
{ if (x<y)
{y=y-1; f(x,y);}
else
cout<<x<<y; | printf(%d%d,x,y);
}
Scriei programul C/C++ care citete de la tastatur un numr natural n (1n99), impar, i
construiete n memorie un tablou unidimensional A=(A
1
, A
2
,, A
n
) cu elementele
mulimii {1,2,...,n} astfel nct elementele de pe poziii impare formeaz irul cresctor
1,2,...,[(n+1)/2], iar elementele de pe poziii pare irul descresctor n,n-1,...,
[(n+1)/2]+1.
Exemplu: pentru n=11 se va construi tabloul A :

3.
Elementele tabloului se afieaz pe ecran, separate prin cte un spaiu. (6p.)
4. a) Scriei definiia complet a subprogramului dcm, cu doi parametri, care:
- primete prin parametrii a i b dou valori naturale din intervalul [1,30000]
- returneaz o valoare natural reprezentnd cel mai mare numr care este att divizor al lui a
ct i divizor al lui b.
Exemplu: dac a=100 i b=120, subprogramul returneaz valoarea 20. (6p.)
b) Fiierul text NUMERE.IN conine pe prima linie un numr natural nenul n (1n100) i
pe urmtoarea linie n numere naturale din intervalul [1,30000], separate prin cte un
spaiu. Scriei un program C/C++ care citete toate numerele din fiierul NUMERE.IN i
determin, folosind apeluri ale subprogramului cmmdc, cel mai mare divizor comun al celor n
numere situate pe linia a doua n fiier. Programul afieaz pe ecran numrul cu proprietatea
cerut.
Exemplu: dac fiierul NUMERE.IN are coninutul:
5
60 72 600 24 48
atunci se afieaz valoarea 12. (10p.)

Varianta 93 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 094

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena alturat de instruciuni, variabilele i,j,k i
y sunt de tip ntreg. Pentru care dintre urmtoarele
seturi de valori ale variabilelor i,j i k variabila y va
avea valoarea 1 n urma executrii secvenei? (4p.)
y=1;
if (k>0)
if (i!=j)
y=0;
else y=2;
a. k=0; i=5; j=5 b. k=10; i=5; j=6
c. k=10; i=5; j=5 d. y nu va avea valoarea 1 indiferent de
valorile variabilelor i,j i k

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y, iar cu [x/y] ctul mpririi ntregi
a numrului natural x la numrul natural nenul y.
a) Scriei ce va afia algoritmul dac pentru n se
citete valoarea 123611. (6p.)
b) Scriei cte valori naturale distincte, formate din
patru cifre fiecare, pot fi citite pentru variabila n,
astfel nct, pentru fiecare dintre acestea, valoarea
afiat de algoritm s fie divizibil cu 10. (6p.)
c) Scriei n pseudocod un algoritm echivalent cu cel
dat care s utilizeze o singur structur repetitiv.
(4p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete n
(numr natural nenul)
n1 0
n2 0
k1 0
ct timp n 0 execut
dac (n%10)%2=0 atunci
n2 n2 * 10 + n%10
altfel
n1 n1 * 10 + n%10
k1 k1+1

n [n/10]

p 1
pentru i1,k1 execut
p p * 10

x n2*p + n1
scrie x

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 094

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care dintre nodurile grafului neorientat cu 5 noduri
numerotate de la 1 la 5, dat prin matricea de adiacen
alturat, are gradul cel mai mare? (4p.)
0 1 1 0 0
1 0 1 0 1
1 1 0 1 1
0 0 1 0 1
0 1 1 1 0
a. 4 b. 3 c. 5 d. 2
2. n secvena alturat, i, j i n sunt variabile ntregi, iar a
este o matrice format din 8 linii i 8 coloane, numerotate
de la 0 la 7. Care este suma elementelor de pe ultima
linie a matricei, n urma executrii acestei secvene? (4p.)
for(i=0; i<8; i++)
for(j=0; j<8; j++)
a[i][j] = (i+j)%8;

a. 28 b. 84 c. 36 d. 21

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Un graf neorientat cu 5 noduri, numerotate de la 1 la 5, conine urmtoarele muchii: [1,2],
[1,3], [2,3], [2,5], [3,4], [3,5], [4,5]. Eliminai din acest graf numrul necesar de
muchii astfel nct graful parial rezultat s fie arbore. Considernd c acest arbore are ca
rdcin vrful 5, care este vectorul cu legturi de tip tat corespunztor ? (6p.)
4. Un graf neorientat cu 5 noduri, numerotate de la 1 la 5, este
reprezentat prin listele de adiacen alturate. Transformai acest
graf ntr-un graf orientat prin nlocuirea fiecrei muchii cu exact un
arc, astfel nct n graful orientat care rezult s existe cel puin un
drum de la orice nod x pn la orice nod y, (xy). Scriei
reprezentarea grafului orientat pe care l-ai construit, prin liste de
adiacen. (6p.)
1: 2, 3
2: 1, 3, 5
3: 1, 2, 4, 5
4: 3, 5
5: 2, 3, 4
5. Scriei un program n limbajul C/C++ care citete de la tastatur un singur ir format din cel
mult 20 de caractere care reprezint numele i prenumele unei persoane. ntre nume i
prenume se afl un numr oarecare de caractere spaiu (cel puin unul). Att numele ct i
prenumele sunt formate numai din litere ale alfabetului englez. Programul construiete n
memorie i afieaz pe ecran un al doilea ir de caractere, care s conin prenumele,
urmat de exact un spaiu i apoi numele din irul citit iniial.
Exemplu: dac se citete irul:
Popescu Vasile
se va construi i apoi se va afia pe ecran irul
Vasile Popescu (10p.)

Varianta 94 - informatica
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
Subiectul III (30 de puncte) - Varianta 094

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un elev realizeaz un program care citete o valoare natural pentru o
variabil n i apoi afieaz n fiierul permut.txt, pe prima linie, valoarea lui
n, apoi toate permutrile mulimii {1,2,...,n}, cte o permutare pe cte o
linie a fiierului. Rulnd programul pentru n=3, fiierul va conine cele 7 linii
alturate.
Dac va rula din nou programul i va introduce pentru variabila n valoarea 5,
cte linii va conine fiierul? (4p.)
3
3 2 1
3 1 2
2 3 1
2 1 3
1 3 2
1 2 3.
a. 25 b. 24 c. 121 d. 721

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Funcia recursiv f este astfel definit nct f(1)=8, iar f(n+1)=2*f(n)-4 pentru orice n
natural nenul.
a) Ce valoare are f(5) ? (3p.)
b) Care este cea mai mare valoare pe care o poate lua x astfel nct f(x) < 1000 ? (3p.)
3. Se consider funcia f care primete prin intermediul parametrului n un numr natural nenul
(2n200), prin intermediul parametrului a un tablou unidimensional care conine n valori
ntregi (fiecare dintre aceste valori ntregi avnd cel mult patru cifre), iar prin intermediul
parametrilor p1 i p2 dou valori naturale reprezentnd dou poziii din tablou
(0p1p2<n). Numerotarea poziiilor din tablou ncepe de la 0. Subprogramul returneaz
valoarea -1 dac cele mai multe valori din tabloul a, aflate ntre poziiile p1 i p2 inclusiv,
sunt strict negative, valoarea 0 dac cele mai multe valori din a, aflate ntre poziiile p1 i p2
inclusiv, sunt nule, respectiv valoarea 1 dac cele mai multe valori din tabloul a aflate ntre
poziiile p1 i p2 inclusiv, sunt strict pozitive.
a) Scriei definiia complet a funciei f. (5p.)
b) Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (2n200),
apoi valorile celor n componente ale unui tablou unidimensional. Valorile citite sunt numere
ntregi de maximum patru cifre fiecare. Programul afieaz pe ecran mesajul negative
dac cele mai multe valori din tablou sunt strict negative, mesajul nule dac cele mai multe
valori din tablou sunt egale cu 0, mesajul pozitive dac cele mai multe valori din tablou
sunt strict pozitive sau mesajul nedecis n celelalte cazuri. Pentru a stabili care dintre
mesaje urmeaz s fie afiat, programul va apela funcia f. (5p.)
Fiierul text bac.txt conine pe fiecare linie cte un numr ntreg format din cel mult patru
cifre. Se tie c fiierul conine cel puin un numr.
Scriei un program eficient att din punct de vedere al timpului de executare ct i din punct
de vedere al spaiului de memorie utilizat, care citete de la tastatur un numr real x, apoi
determin i afieaz acel numr din fiierul bac.txt care are valoarea cea mai apropiat
de valoarea lui x.
4.
Exemplu: dac fiierul bac.txt are coninutul alturat, iar de la tastatur se
citete valoarea -3.85, programul va afia valoarea -5.
a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce
const eficiena ei (3 4 rnduri). (4p.)
b) Scriei un program C/C++ care rezolv problema conform metodei descrise.
(6p.)
4
-5
-6
-984
1345
-1



Varianta 94 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 095

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena alturat de instruciuni, variabilele i, j, k, x i
y sunt de tip ntreg. Pentru care dintre urmtoarele seturi
de valori ale variabilelor i, j i k variabilele x i y vor primi
valori diferite ntre ele n urma executrii acestei secvene?
(4p.)
if (k>0)
if (i!=j) x=0;
else x=1;
else x=2;
if (i!=j)
if (k>0) y=0;
else y=2;
else y=1;
a. x i y primesc aceeai valoare indiferent
de valorile variabilelor i,j i k
b. k=0; i=5; j=6
c. k=10; i=5; j=5 d. k=0; i=5; j=5


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
S-a notat cu a%b restul mpririi numrului natural a la
numrul natural nenul b, iar cu [a/b] ctul mpririi
ntregi a numrului natural a la numrul natural nenul b.
a) Scriei numrul care se va afia dac se citesc
pentru n valoarea 528791 i pentru k valoarea 6.
(6p.)
b) Dac pentru k se citete valoarea 9 scriei toate
valorile formate din exact 5 cifre care se pot citi
pentru variabila n, astfel nct rezultatul afiat s
fie, de fiecare dat, 2008. (6p.)
x 0
citete n,k
(numere naturale nenule)

ct timp n0 execut
dac n%10<k atunci
x x*10 + n%10

n [n/10]

scrie x

c) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel dat care s utilizeze n locul structurii
ct timp...execut o structur repetitiv condiionat posterior. (4p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 095

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Cte valori nule pot s apar ntr-un vector cu legturi de tip tat asociat unui arbore cu
rdcin care conine 10 noduri? (4p.)
a. niciuna b. exact una
c. depinde de configuraia arborelui d. exact dou
2. n secvena alturat, i, j i n sunt variabile ntregi, iar a
este o matrice ptratic format din n linii i n coloane
numerotate de la 0 la n-1. Care este suma elementelor
de pe diagonala secundar din matricea a, n urma
executrii acestei secvene, dac n=8? (4p.)
for(i=0; i<n; i++)
for(j=0; j<n; j++)
a[i][j] = (i+j)%n;

a. 8 b. 64 c. 24 d. 56

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se d graful orientat cu 5 noduri, numerotate de la 1 la 5, definit
prin matricea de adiacen alturat. Determinai un drum de
lungime maxim de la nodul 1 la nodul 5 , care s fie alctuit din
arce distincte dou cte dou. Scriei lungimea drumului
determinat precum i arcele care l compun (lungimea unui drum
este egal cu numrul de arce care l compun). (6p.)
0 1 0 0 0
0 0 1 1 1
0 1 0 1 0
0 0 1 0 0
0 0 0 0 0
4. Scriei listele de adiacen pentru un graf neorientat care are 8 noduri, numerotate de la 1 la
8, i care are urmtoarele proprieti:
- are trei componente conexe;
- nu are noduri izolate;
- are un numr maxim de muchii. (6p.)
5. Scriei un program n limbajul C/C++ care citete de la tastatur un singur ir, format din cel
mult 20 de caractere, care reprezint numele i prenumele unei persoane. ntre nume i
prenume se afl un numr oarecare de caractere spaiu (cel puin unul). Att numele, ct i
prenumele, sunt formate numai din litere mici ale alfabetului englez. Programul construiete
n memorie i afieaz pe ecran un alt ir de caractere, care s conin iniiala prenumelui
(prima liter a prenumelui), urmat de un caracter punct, de exact un spaiu i de numele
din irul citit iniial. Toate literele din irul afiat vor fi de asemenea litere mici.
Exemplu: dac se citete irul:
popescu vasile
se va construi i apoi se va afia pe ecran irul
v. popescu (10p.)

Varianta 95 - informatica
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
Subiectul III (30 de puncte) - Varianta 095

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un program citete o valoare natural nenul pentru n i apoi genereaz i afieaz, n
ordine cresctoare lexicografic, toate combinaiile formate din n cifre care aparin mulimii
{0,1}. Astfel, pentru n=2, combinaiile sunt afiate n urmtoarea ordine: 00, 01, 10, 11.
Dac se ruleaz acest program i se citete pentru n valoarea 6, imediat dup combinaia
011011 va fi afiat combinaia: (4p.)
a. 100100 b. 011100 c. 011111 d. 100000

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Funcia f are definiia alturat.
a) Ce valoare are f(10)? (3p.)
b) Ce valoare are f(29)? (3p.)
int f(int n)
{
if (n<=9) return 0;
if (n%5==0) return 0;
return 1+f(n-3);
}
3. Funcia f primete prin intermediul parametrului n un numr natural nenul (2n200), iar
prin intermediul parametrului a un tablou unidimensional care conine n valori ntregi nenule
(fiecare dintre aceste valori ntregi avnd cel mult patru cifre).
Funcia returneaz valoarea -1 dac numrul de valori negative din tabloul a este strict mai
mare dect numrul de valori pozitive din tablou, valoarea 0 dac numrul de valori
negative din a este egal cu numrul de valori pozitive din tablou i valoarea 1 dac numrul
de valori pozitive din tabloul a este strict mai mare dect numrul de valori negative din a.
Scriei definiia complet a funciei f. (10p.)
4. a) Scriei un program C/C++ care citete de la tastatur un numr natural nenul, S, avnd
maximum 9 cifre, i printr-o metod eficient din punct de vedere al timpului de executare,
determin i scrie n fiierul rez.dat trei valori naturale a cror sum este egal cu S, i al
cror produs este maxim. Cele trei valori vor fi scrise n ordine cresctoare pe prima linie a
fiierului rez.dat, separate prin cte un spaiu.
Exemplu: dac se citete valoarea 5, fiierul rez.dat va avea o linie cu coninutul 1 2 2.
(6p.)
b) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)

Varianta 95 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 096

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. n secvena alturat, variabilele i, j, k i y sunt de tip ntreg.
Pentru care dintre urmtoarele seturi de valori ale variabilelor
i, j i k variabila y va avea valoarea 1 n urma executrii
secvenei? (4p.)
if (k>0)
if (i!=j) y=0;
else y=1;
else y=2;
a. k=0; i=5; j=5 b. k=10; i=5; j=6 c. k=10; i=5; j=5 d. k=0; i=5; j=6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n
pseudocod.
a) Dac se citete pentru n valoarea 10, scriei
valorile care se afieaz, n forma rezultat n
urma executrii algoritmului, (6p.)
b) Scriei o valoare format din exact dou cifre care,
dac se citete pentru n, determin ca printre
tripletele de valori afiate s existe unul alctuit
din trei numere consecutive. (6p.)
c) Scriei programul C/C++ corespunztor
algoritmului dat. (10p.)
d) Scriei n pseudocod un algoritm echivalent cu cel
dat care s utilizeze numai dou structuri
repetitive. (4p.)
citete n (numr natural nenul)
pentru i1,n execut
pentru j1,n execut
pentru k1,n execut
dac i<j<k atunci
dac i+j+k=n atunci
scrie i,' ',j,' ',k
salt la rnd nou







Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 096

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Care este numrul maxim de valori egale care pot s apar ntr-un vector cu legturi de tip
tat asociat unui arbore cu rdcin care conine 10 noduri? (4p.)
a. cel mult 2 b. 10
c. nu pot s apar valori egale ntr-un vector
cu legturi de tip tat
d. 9
2. n secvena alturat, i, j i n sunt variabile ntregi, iar a
este o matrice ptratic format din n linii i n coloane,
numerotate de la 0 la n-1. Care este suma elementelor
de pe diagonala principal din matricea a, n urma
executrii acestei secvene, dac n=8? (4p.)
for(i=0; i<n; i++)
for(j=0; j<n; j++)
a[i][j] = (i+j)%n;

a.
24
b.
64
c.
56
d.
8

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se d graful orientat cu 5 noduri, numerotate de la 1 la 5,
definit prin matricea de adiacen alturat. Scriei arcele
din care este alctuit un drum de la nodul 1 la nodul 5, care
trece prin toate nodurile grafului. (6p.)
0 1 0 0 0
0 0 1 1 1
0 1 0 1 0
0 0 1 0 0
0 0 0 0 0
4. Scriei listele de adiacen pentru un graf neorientat, care are 8 noduri, numerotate de la 1
la 8, i care are urmtoarele proprieti:
- nu este conex;
- nu are noduri izolate;
- are un numr minim de muchii. (6p.)
5. Scriei un program n limbajul C/C++ care citete de la tastatur dou iruri, formate fiecare
din cel mult 20 de caractere. Primul ir reprezint numele unei persoane, iar al doilea ir
reprezint prenumele aceleiai persoane. Att numele ct i prenumele sunt formate numai
din litere ale alfabetului englez i fiecare conine cel puin o consoan. Programul
construiete n memorie i afieaz pe ecran un al treilea ir de caractere, care conine
consoanele din prenumele citit dispuse n ordinea n care apar n prenume urmate de exact
un spaiu i de numele citit.
Exemplu: dac primul ir citit este Popescu, iar al doilea este Vasile
se va construi i apoi se va afia pe ecran irul
Vsl Popescu (10p.)

Varianta 96 - informatica
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
Subiectul III (30 de puncte) - Varianta 096

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Un program citete o valoare natural nenul pentru n i apoi genereaz i afieaz, n
ordine descresctoare lexicografic, toate combinaiile de n cifre care aparin mulimii
{0,1}. Astfel, pentru n=2, combinaiile sunt afiate n urmtoarea ordine: 11, 10, 01, 00.
Dac se ruleaz acest program i se citete pentru n valoarea 8, imediat dup combinaia
10101000 va fi afiat combinaia: (4p.)
a. 01010111 b. 10100111 c. 10101001 d. 10100100

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Funcia f are definiia alturat. Scriei 4 valori de
apel pe care le poate avea n astfel nct, pentru
cele 4 apeluri, corespunztoare acestor valori, s
se obin 4 valori, distincte dou cte dou. (6p.)
int f(int n)
{if (n<=9) return 0;
if (n%4==0) return 0;
return 1+f(n-3);
}
3. Funcia verif primete prin intermediul a trei parametri, notai a, b i c, trei valori naturale
nenule, fiecare de maximum patru cifre. Funcia returneaz valoarea 1 dac cele trei valori
pot constitui laturile unui triunghi i valoarea 0 n caz contrar.
a) Scriei definiia complet a funciei verif. (5p.)
b) Scriei un program C/C++ care citete de la tastatur ase valori naturale nenule, fiecare
de maximum patru cifre, apoi verific, utiliznd apeluri utile ale funciei verif, dac primele
trei numere citite pot constitui laturile unui triunghi i dac ultimele trei numere citite pot
constitui laturile unui triunghi; n caz afirmativ, programul afieaz pe ecran mesajul
congruente dac cele dou triunghiuri sunt congruente sau mesajul necongruente dac
cele dou triunghiuri nu sunt congruente; dac cel puin unul dintre cele dou triplete de
valori nu pot constitui laturile unui triunghi, programul va afia pe ecran mesajul nu. (5p.)
Fiierul text BAC.DAT conine pe prima linie, separate printr-un spaiu, dou valori naturale n
i m (2n1000, 2m1000), pe a doua linie n valori ntregi, apoi pe urmtoarele m linii cte
dou valori, fiecare dintre aceste perechi determinnd un interval nchis (prin interval nchis
determinat de dou valori a i b se nelege intervalul [a,b], dac ab sau intervalul
[b,a], dac b<a). Valorile de pe a doua i de pe urmtoarele m linii sunt separate ntre ele
prin cte un spaiu i au cel mult 4 cifre fiecare.
Se cere determinarea i afiarea pe ecran a numrului de intervale, dintre cele citite din
fiier, care conin toate valorile aflate pe a doua linie a fiierului. Se va utiliza o metod
eficient din punct de vedere al timpului de executare i al memoriei utilizate.
Exemplu: dac fiierul BAC.DAT are coninutul
alturat, programul va afia: 2
Explicaie: din cele patru intervale date pe liniile 3, 4, 5
i 6, numai dou conin toate valorile de pe a doua
linie a fiierului i anume [-20,50] i [-11,20].
10 4
8 3 -11 17 -8 3 14 5 0 -2
-10 100
-20 50
15 -80
20 -11
4.
a) Descriei succint, n limbaj natural, metoda de rezolvare folosit, explicnd n ce const
eficiena ei (3 4 rnduri). (4p.)
b) Scriei un program C/C++ care s rezolve problema conform metodei descrise. (6p.)

Varianta 96 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 097

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre variabilele ntregi x, y i z vor avea la finalul
executrii secvenei alturate de instruciuni, aceeai valoare
ca nainte de executare? (4p.)
x = y + z;
z = x z;
y = z;
z = x - y;
a. numai x i z b. numai y i z c. numai x i y d. x, y i z

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat reprezentat
n pseudocod.
S-a notat cu x%y restul mpririi numrului ntreg x
la numrul ntreg nenul y.
a) Scriei ce valori se vor afia dac se citesc, n
ordine, valorile 123, 25, 218. (6p.)
b) Scriei un de set de date de intrare pentru care
se vor afia trei valori consecutive. (6p.)
pentru i 1,3 execut
citete x (numr natural)
s 0
pentru j 1,i execut
s s + x % 10

scrie s


c) Scriei n pseudocod un algoritm echivalent cu cel dat, care s nu utilizeze nicio structur
repetitiv. (4p.)
d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 097

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider un graf neorientat 5 noduri i 3 muchii. Care este numrul maxim de noduri
cu grad 1 care pot exista n graf? (6p.)
a. 2 b. 3 c. 4 d. 5
2. Se consider un arbore cu rdcin memorat cu ajutorul vectorului de tai
T=(2,0,1,1,1,2). Stabilii care dintre nodurile arborelui sunt situate pe nivelul 3, dac
rdcina este situat pe nivelul 1? (4p.)
a. 3 4 5 b. 1 c. 2 6 d. 1 2 6

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider variabila s care memoreaz irul de caractere CARACATITA. Ce valoare va
avea s dup executarea instruciunii de mai jos?
strcpy(s,strstr(s,"TI")); (6p.)
4. Se consider o stiv, n care au fost introduse iniial, n aceast ordine, primele
trei numere impare 1, 3 i 5. Coninutul stivei este reprezentat n figura
alturat. Notm cu PUSH x operaia prin care se adaug informaia x n vrful
stivei i cu POP operaia prin care se extrage elementul din vrful stivei. Asupra
stivei se efectueaz, exact n aceast ordine, urmtoarele patru operaii:
POP; PUSH 4; PUSH 6; POP. Reprezentai, dup modelul din figura alturat,
coninutul stivei dup fiecare operaie. (4p.)

5. Se consider un tablou bidimensional cu n linii i m coloane (1n50, 1m50) ce
memoreaz numere ntregi cu cel mult dou cifre fiecare. Scriei un program n limbajul
C/C++ care citete de la tastatur valorile n, m i elementele tabloului, i care inverseaz
ordinea elementelor n cadrul fiecrei coloane, ca n exemplu. Programul va afia pe ecran,
pe n linii, matricea obinut dup inversare, elementele fiecrei linii fiind separate prin cte
un spaiu. (10p.)

Exemplu: pentru n=4, m=3 i matricea:
1 7 3
4 5 6
7 8 9
3 4 5
Pe ecran se va afia:
3 4 5
7 8 9
4 5 6
1 7 3

Varianta 97 - informatica
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
Subiectul III (30 de puncte) - Varianta 097

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Subprogramul recursiv alturat este definit incomplet.
Care dintre urmtoarele expresii poate nlocui punctele
de suspensie astfel nct, n urma apelului,
subprogramul f s returneze suma primelor dou cifre
ale numrului primit prin intermediul parametrului x?
Exemplu: n urma apelului f(2318) valoarea returnat
este 5. (4p.)
int f(int x){
if (...)
return x%10 + x/10;
else
return f(x/10);
}

a. x<=100 b. x<=99 c. x==99 d. x!=0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se genereaz, utiliznd metoda backtracking, cuvintele cu exact 3 litere din mulimea
{a,x,c,f,g}. Dac primele patru cuvinte generate sunt, n ordine, aaa, aax, aac, aaf,
scriei ultimele trei cuvinte care ncep cu litera a, n ordinea n care vor fi generate. (6p.)
3. Subprogramul Suma, cu trei parametri, primete prin intermediul parametrilor x i y dou
numere naturale de cel mult 4 cifre fiecare i furnizeaz, prin intermediul parametrului z,
suma numerelor pare cuprinse ntre x i y inclusiv, sau valoarea 0 dac nu exist numere
pare n acest interval.
Exemplu: dac la apel sunt transmise valorile x=12 i y=23, atunci subprogramul Suma va
returna, prin intermediul parametrului z, valoarea 102.
Scriei, n limbajul C/C++, definiia complet a subprogramului Suma. (10p.)
4. Pe prima linie a fiierului text DATE.TXT se afl un numr natural n (0<n10000), iar pe a
doua linie un ir de n numere naturale, deprite prin cte un spaiu, fiecare avnd cel mult 4
cifre.
a) Scriei un program C/C++ care citete numerele din fiier i afieaz, pe ecran, valorile
din ir, n ordinea cresctoare a cifrei unitilor. Dac dou numere din ir au aceeai cifr a
unitilor nu conteaz care dintre ele va fi afiat primul. Realizai un program eficient din
punct de vedere al timpului de executare. (6p.)

Exemplu: dac fiierul DATE.TXT conine
7
32 491 26 328 213 500 422
pe ecran se va afia:
500 491 32 422 213 26 328

b) Descriei succint, n limbaj natural, metoda utilizat, justificnd eficiena acesteia. (4p.)

Varianta 97 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 098

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Variabila ntreag x memoreaz o valoare mai mare ca 1000, format doar din cifre
distincte. Care dintre urmtoarele instruciuni C/C++ afieaz o singur cifr? (4p.)
a. cout<<x/1; | printf("%d",x/1); b. cout<<x/100; | printf("%d",x/100);
c. cout<<x%100; | printf("%d",x%100); d. cout<<x%10/1;| printf("%d",x%10/1);

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat reprezentat n
pseudocod.
a) Scriei ce valoare se va afia pentru n=10.
(6p.)
b) Scriei toate valorile care pot fi citite pentru n
astfel nct s se afieze 4. (6p.)
c) Scriei n pseudocod un algoritm echivalent cu
cel dat care s nu utilizeze nicio structur
repetitiv. (4p.)
citete n (numr ntreg)

dac n<0 atunci
n -n

i 1
ct timp i*i n execut
i i+1

scrie i-1

d) Scriei programul C/C++ corespunztor algoritmului dat. (10p.)

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 098

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Fie graful orientat G cu 5 vrfuri, numerotate cu 1,2,3,4,5, i arcele (1,2), (1,3), (1,4),
(2,3), (4,2), (4,5), (5,2), (2,4). Care dintre urmtoarele vrfuri au gradul extern
egal cu gradul intern? (4p.)
a. 2 i 4 b. 4 i 5 c. 1 i 2 d. 3 i 4
2. Ce se va afia n urma executrii secvene
de instruciuni alturate, considernd c s
este o variabil ir de caractere, iar n o
variabil de tip ntreg? (4p.)

char a[10]="Examen";
n=strlen(a);
strcpy(a+1,a+n-1);
cout<<a;| printf("%s",a);
a. En b. Een c. Exam d. Exn

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Scriei vectorul de tai al unui arbore cu rdcin, tiind c:
nodurile arborelui sunt numerotate cu numerele naturale distincte 1,2,3,...;
numrul nodurilor este 4 sau 6;
nodul 1 este desemnat ca rdcin;
numrul nodurilor de tip frunz este egal cu jumtate din numrul total de noduri din
arbore;
numrul de nivele pe care sunt dispuse nodurile arborelui este egal cu numrul nodurilor
de tip frunz. (6p.)
4. Structura de date COLET permite reinerea a dou numere reale, reprezentnd valoarea
exprimat n euro a unui colet potal, respectiv greutatea exprimat n kilograme, i un ir
de caractere reprezentnd numele oraului expeditorului, format din cel mult 30 de
caractere. Scriei n limbajul C/C++ declararea structurii COLET i o secven de instruciuni
care permite citirea valorilor componentelor variabilei x de tipul COLET. Denumii sugestiv
componentele structurii. (6p.)
Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n50) i
construiete n memorie un tablou bidimensional cu n linii i n coloane care s conin
primele n
2
numere naturale pare. Prima linie a tabloului va conine, n ordine cresctoare,
valorile 0, 2,.., 2n-2; a doua linie va conine, n ordine, valorile 2n, 2n+2,.., 4n-2; a treia
linie va conine, n ordine, valorile 4n, 4n+2,.., 6n-2, iar ultima linie va conine, n ordine,
valorile 2n
2
-2n, 2n
2
-2n+2,.., 2n
2
-2.
5.
Programul afieaz pe ecran matricea construit, cte o linie a matricei
pe cte o linie a ecranului, elementele de pe aceeai linie fiind desprite
prin cte un spaiu.
Exemplu: pentru n=3 se va afia matricea alturat. (10p.)
0 2 4
6 8 10
12 14 16

Varianta 98 - informatica
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
Subiectul III (30 de puncte) - Varianta 098

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider subprogramul recursiv
alturat, definit incomplet.
Cu ce valoare trebuie nlocuite punctele de
suspensie, pentru ca funcia s returneze
cifra minim a numrului natural nenul
transmis prin intermediul parametrului x?
(4p.)
int Min(int x){
int c;
if (x==0) return ...;
else {
c=Min(x/10);
if (c < x%10) return c;
else return x%10;
}
}
a. -1 b. 1 c. 9 d. 0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Utiliznd metoda backtracking se genereaz toate submuimile nevide ale mulimii
{3,6,2,5}. Primele ase submulimi generate sunt, n ordine: {3}, {3,6}, {3,6,2},
{3,6,2,5}, {3,6,5}, {3,2}. Care sunt, n ordinea obinerii, ultimele trei submulimi,
generate dup aceast regul? (6p.)
3. Scriei n limbajul C/C++ definiia complet a subprogramului numar, cu exact doi parametri,
care primete prin intermediul parametrului x un numr natural nenul de cel mult dou cifre,
i prin intermediul parametrului y un numr natural nenul de cel mult 9 cifre. Subprogramul
returneaz cel mai mare numr natural z pentru care exist un numr natural k astfel nct
z=x
k
i zy.
Exemplu: pentru y=18 i x=2 subprogramul va returna valoarea 16(=2
4
18). (10p.)
4. Pe prima linie a fiierului text DATE.TXT se afl un ir de cel mult 10000 de numere
naturale, desprite prin cte un spaiu, fiecare avnd exact o cifr.
a) Scriei un program C/C++ care citete numerele din fiier i le scrie n fiierul text
OUT.TXT, pe o singur linie, n ordine cresctoare a valorilor lor, separate prin cte un
spaiu. Se va utiliza un algoritm eficient din punct de vedere al timpului de executare.
Exemplu: dac din fiierul DATE.TXT se citete irul:
2 4 3 2 7 4 3 7 2 7 7 2 1 9 1 1 2 3
fiierul OUT.TXT va conine
1 1 1 2 2 2 2 2 3 3 3 4 4 7 7 7 7 9 (6p.)
b) Explicai n limbaj natural metoda utilizat, justificnd eficiena acesteia. (4p.)

Varianta 98 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC
PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 099

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Care dintre urmtoarele instruciuni C/C++ este echivalent cu
cea alturat, tiind c variabilele x, y i z sunt reale? (4p.)
x =(x+y+z)/2;
a. x = x/4/2+ y/4/2 + z/4/2; b. x = x + y/2 + z/2;
c. x = x + y + z/2; d. x = x/1/2+ y/1/2 + z/1/2;

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y.
a) Scriei ce se va afia pentru x=8. (6p.)
b) Scriei toate numerele naturale, de cte o singur cifr,
care, citite pentru x, determin afiarea valorii 4. (6p.)
c) Scriei n pseudocod un algoritm echivalent cu cel dat
care s nu utilizeze nicio structur repetitiv. (4p.)
d) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
citete x (numr ntreg)

dac x<0 atunci
x -x

p 1
pentru i1,x execut
p (p*4)%10

scrie p


Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 099

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Considerm un arbore cu rdcin, n care fiecare nod are cel mult doi descendeni i x un
numr natural (x>2). tiind c rdcina se afl pe nivelul 1, atunci numrul maxim de
noduri de pe nivelul x este: (4p.)
a. 2
x
b. 2
x-1
c. 2
x+1
d. 2
x/2

2. Considerm variabila x care memoreaz irul de caractere ABAC. Care dintre urmtoarele
instruciuni conduc la afiarea caracterului B? (4p.)
a. cout<<x[strlen(x)-3];
| printf("%c",x[strlen(x)-3]);
b. cout<<x[strlen(x)-1];
| printf("%c",x[strlen(x)-1]);
c. cout<<x[2];
| printf("%c",x[2]);
d. cout<<x[strlen(x)];
| printf("%c",x[strlen(x)]);

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Considerm un graf neorientat cu 5 noduri i 3 muchii format din dou componente conexe.
tiind c doar patru dintre noduri au gradul 1, scriei matricea de adiacen a grafului. (6p.)
4. Se consider o coad, n care au fost introduse iniial, n aceast ordine,
primele trei numere impare 1, 3 i 5. Coninutul cozii este reprezentat n
figura alturat.
Notm cu AD X operaia prin care se adaug informaia X n coad i cu EL
operaia prin care se elimin un element din coad. Asupra cozii se
efectueaz, exact n aceast ordine, operaiile EL; AD 4; AD 6. Reprezentai,
dup modelul din figura alturat, coninutul cozii dup fiecare operaie.(6p.)

Scriei un program C/C++ care citete de la tastatur un numr natural nenul n (n50) i
construiete n memorie un tablou bidimensional cu n linii i n coloane care s conin
primele n numere naturale nenule. Prima linie a tabloului va conine, n aceast ordine,
valorile 1,2,...,n; a doua linie va conine, n ordine, valorile 2,2,3,...,n; a treia linie
va conine, n ordine, valorile 3,3,3,4,...,n, iar ultima linie va conine valorile n,
n,..., n.
5.
Programul afieaz pe ecran matricea construit, cte o linie a matricei
pe cte o linie a ecranului, elementele fiecrei linii fiind desprite prin
cte un spaiu.
Exemplu: pentru n=5 se va afia matricea alturat. (10p.)
1 2 3 4 5
2 2 3 4 5
3 3 3 4 5
4 4 4 4 5
5 5 5 5 5


Varianta 99 - informatica
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
Subiectul III (30 de puncte) - Varianta 099

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Se consider subprogramul recursiv alturat, S,
definit incomplet.
Cu ce expresie pot fi nlocuite punctele de
suspensie astfel nct, n urma apelului S(2), s se
afieze 3 caractere * ? (4p.)
void S(int x)
{ cout<<'*';
if (...) {
cout<<'*';
S(x-1);
}
}
a. x>1 b. x>2 c. x>=3 d. x>0

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se utilizeaz metoda backtracking pentru a genera toate cuvintele formate din dou litere
distincte din muimea {w,x,z,y} astfel nct niciun cuvnt s nu nceap cu litera x i
niciun cuvnt s nu conin litera w lng litera z. Cuvintele vor fi generate n ordinea wx,
wy, zx, zy, yw, yx, yz. Folosind aceeai metod se genereaz toate cuvintele de dou
litere distincte din mulimea {w,x,z,y,t} astfel nct niciun cuvnt s nu nceap cu litera
x i niciun cuvnt s nu conin litera w lng litera z. Care sunt a treia i a patra soluie
generat? (6p.)
3. Subprogramul Nr are un singur parametru, k, prin intermediul cruia primete un numr
natural de cel puin 3 cifre i cel mult 9 cifre, cu toate cifrele nenule. Subprogramul
furnizeaz tot prin intermediul parametrului k, valoarea obinut prin eliminarea primei cifre a
numrului transmis la apel.
Exemplu: dac subprogramul primete prin intermediul parametrului k valoarea 12438,
atunci n urma apelului subprogramului Nr, k va primi valoarea 2438.
Scriei, n limbajul C/C++, definiia complet a subprogramului Nr. (10p.)
4. Pe prima linie a fiierului text DATE.TXT se afl un numr natural nenul n (n1000), iar pe
a doua linie un ir de n numere ntregi nenule, deprite prin cte un spaiu, fiecare avnd
cel mult 9 cifre.
a) Scriei un program C/C++ care citete numerele din fiier i ordoneaz cresctor doar
numerele pozitive din ir, fr a modifica poziiile numerelor negative. Programul va afia, pe
ecran, pe o singur linie, irul obinut dup ordonare, numerele fiind desprite prin cte un
spaiu. n locul fiecrui numr negativ din irul citit se va afia valoarea 0. Realizai un
program eficient din punct de vedere al spaiului de memorie folosit. (6p.)

Exemplu: dac fiierul DATE.TXT conine:
7
32 -491 23 -328 213 51 -4
pe ecran se va afia:
23 0 32 0 51 213 0


b) Descriei succint, n limbaj natural, metoda utilizat, justificnd eficiena acesteia. (4p.)


Varianta 99 - informatica
Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul I
Specializarea Matematic-informatic
EXAMENUL DE BACALAUREAT 2009
Proba scris la INFORMATIC

PROBA E, limbajul C/C++
Specializarea Matematic-informatic

Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul efectiv de lucru este de 3 ore.
n rezolvrile cerute, identificatorii utilizai trebuie s respecte precizrile din enun
(bold), iar n lipsa unor precizri explicite, notaiile trebuie s corespund cu semnificaiile
asociate acestora (eventual n form prescurtat).

Subiectul I (30 de puncte) - Varianta 100

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. tiind c iniial variabilele ntregi x, y i z au valorile x=1, y=2 respectiv z=3, n ce ordine
trebuie scrise atribuirile urmtoare astfel nct, n final, expresia x+y+z s aib valoarea
maxim? (4p.)
I) x=x+y-z; II) y=x-y+z; III) z=z-x+y;
a. III II I b. I II III c. III I II d. I III II

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2. Se consider algoritmul alturat, descris n pseudocod.
S-a notat cu x%y restul mpririi numrului natural x la
numrul natural nenul y i cu [z] partea ntreag a numrului
real z.
a) Scriei care este valoarea afiat n urma executrii
algoritmului dac se citete numrul 199. (6p.)
b) Scriei cel mai mic i cel mai mare numr, fiecare
avnd exact 3 cifre, care pot fi citite astfel nct, n
ambele cazuri, s se afieze valoarea 7. (6p.)
c) Scriei programul C/C++ corespunztor algoritmului
dat. (10p.)
d) Scriei n pseudocod un algoritm, echivalent cu cel dat,
care s utilizeze cel mult o singur structur repetitiv.
(4p.)
citete a
(numr natural, a<10
9
)

repet
b0
ct timp a0 execut
bb+a%10
a[a/10]

ab
pn cnd a<10

scrie b

Ministerul Educaiei, Cercetrii i Inovrii
Centrul Naional pentru Curriculum i Evaluare n nvmntul Preuniversitar

BACALAUREAT 2009 - INFORMATIC, limbajul C/C++ Subiectul II
Specializarea Matematic-informatic
Subiectul II (30 de puncte) - Varianta 100

Pentru fiecare dintre itemii 1 i 2 scriei pe foaia de examen litera care corespunde
rspunsului corect.
1. Se consider graful neorientat cu 5 noduri a crui matrice de adiacen are toate
elementele 1, cu excepia celor de pe diagonala principal, care sunt nule. Care este
numrul minim de muchii care pot fi eliminate astfel nct graful parial obinut s fie format
din 3 componente conexe? (4p.)
a. 4 b. 8 c. 6 d. 7
Se consider lista simplu nlnuit memorat static, n tabloul de mai jos, n care fiecrui
nod al listei i corespunde cte o coloan a tabloului: pe prima linie se memoreaz
informaia din nodul respectiv, iar pe a doua linie se memoreaz indicele coloanei din
tablou la care se afl nodul urmtor din list, sau -1 dac nu exist un nod urmtor.
2.
Ce informaii se afieaz la parcurgerea nodurilor n ordinea
n care apar n list, dac primul nod este memorat n
coloana 1? (4p.)

a. 1,3,5,7 b. 1,3,2,5,7 c. 1,5,7 d. 1,4,5,3,7

Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
3. Se consider arborele cu 6 noduri, numerotate de la 1 la 6, cu muchiile [2,1], [2,4],
[4,5], [6,2], [6,3]. Scriei toate nodurile desemnate ca rdcin astfel nct fiecare
arbore cu rdacin obinut s aib exact 3 frunze. (6p.)
4. Se consider declararea char e[20]=51+73; Care este irul memorat de variabila e
dup executarea instruciunii de mai jos?
strcpy(e,e+strlen(e)-1); (6p.)
Scriei un program C/C++ care citete de la tastatur un numr natural n (1n100)i apoi
elementele unui tablou bidimensional cu n linii i n coloane, care memoreaz numere
naturale cu cel mult 9 cifre fiecare; programul afieaz pe ecran acele valori din tablou care
sunt strict mai mici dect toate elementele cu care se nvecineaz direct (aflate pe aceeai
linie dar pe o coloan alturat sau pe aceeai coloan dar pe o linie alturat), ca n
exemplu. Numerele afiate vor fi separate prin cte un spaiu.
5.
Exemplu: pentru n=4 i tabloul alturat se afieaz numerele: 2 0 (2 se
nvecineaz direct cu 4, 3, 6 i 9, i este mai mic dect acestea, iar 0 se
nvecineaz direct cu 6, 9 i 1 i este mai mic dect acestea). (10p.)
5 4 7 9
6 2 3 4
0 9 8 5
1 3 8 6

Varianta 100 - informatica
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
Subiectul III (30 de puncte) - Varianta 100

Pentru itemul 1, scriei pe foaia de examen litera corespunztoare rspunsului corect.
1. Aplicnd metoda backtracking pentru a genera toate permutrile celor n elemente ale unei
mulimi, o soluie se memoreaz sub forma unui tablou unidimensional x
1
,x
2
,,x
n
. Dac
sunt deja generate valori pentru componentele x
1
,x
2
,,x
k-1
, iar pentru componenta
curent, x
k
(1<k<n), a fost gsit o valoare convenabil, atunci se ncearc alegerea (4p.)
a. unei noi valori pentru componenta x
k-1
b. unei valori pentru componenta x
k+1
c. unei noi valori pentru componenta x
k
d. unei noi valori pentru componenta x
1


Scriei pe foaia de examen rspunsul pentru fiecare dintre cerinele urmtoare.
2.
Ce afieaz subprogramul F, descris
alturat, la apelul F(5);? (6p.)
void F(int x)
{
cout<<x; | printf(%d,x);
if(x>=3)
F(x-2);
}
3. Scriei definiia complet a subprogramului divizor, cu trei parametri, prin care primete 3
numere naturale nenule cu cel mult 9 cifre fiecare i returneaz numrul divizorilor comuni
tuturor celor 3 numere.
Exemplu: dac numerele primite ca parametri sunt 24, 20 i 12, subprogramul returneaz
valoarea 3 (divizorii comuni sunt 1, 2 i 4). (10p.)
4. Fiierul BAC.TXT conine 10000 de numere naturale (dintre care cel puin dou impare) cu
cel mult 9 cifre fiecare. Numerele sunt separate prin cte un spaiu.
a) Scriei un program C/C++ care, utiliznd un algoritm eficient din punct de vedere al
spaiului de memorare i al timpului de executare, determin i afieaz pe ecran
penultimul numr impar din fiier precum i numrul de ordine al acestuia. (6p.)
Exemplu: dac fiierul conine valorile alturate, se vor afia
numerele 49 9998 (penultimul numr impar este 49 i are
numrul de ordine 9998.

b) Descriei n limbaj natural metoda utilizat i explicai n ce const eficiena ei. (4p.)

Varianta 100 - informatica

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