1. Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 2
Limbajul C/C++
Filier teoretic, profil real, specializare matematic-informatic / matematic-informatic intensiv informatic
Filier voca釘ional, profil militar, specializare matematic-informatic
Pagina 1 din 2
Examenul de bacalaureat na釘ional 2020
Proba E. d)
Informatic
Limbajul C/C++
Testul 2
Filier teoretic, profil real, specializare matematic-informatic / matematic-informatic intensiv informatic
Filier voca釘ional, profil militar, specializare matematic-informatic
Toate subiectele sunt obligatorii. Se acord 10 puncte din oficiu.
Timpul de lucru efectiv este de 3 ore.
Identificatorii utiliza釘i 樽n rezolvri trebuie s respecte precizrile din enun釘 (bold), iar 樽n lipsa unor
precizri explicite, nota釘iile trebuie s corespund cu semnifica釘iile asociate acestora (eventual
樽n form prescurtat). Datele de intrare se consider corecte, validarea lor nefiind necesar.
n grafurile din cerine oricare arc/muchie are extremiti distincte i oricare dou arce/muchii
difer prin cel puin una dintre extremiti.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrie釘i pe foaia de examen litera corespunztoare rspunsului
corect. Fiecare rspuns corect se noteaz cu 4 puncte.
1. Indicai o expresie care are valoarea 1 dac i numai dac numrul memorat 樽n variabila 樽ntreag x
apar釘ine intervalului 樽nchis [-20,20].
a. !(x<-20) || (x>20) b. x>-20 || x<20
c. !(x+20<0 && x-20>0) d. x+20>=0 && x-20<=0
2. Subprogramul f este definit alturat.
Valoarea lui f(2020,15) este:
(6p.)
int f(int x, int y)
{ if(x==0) return y;
if(y==0) return x;
return f(x-y, x%y);
}
a. 14 b. 200 c. 1990 d. 2020
3. Utiliz但nd metoda backtracking se genereaz toate grupele de accesorii pentru tenis de c但mp din
mulimea {benti, fileu, grip, manete, mingi, rachet, racordaj, apc}. Accesoriile au
pre釘urile urmtoare, exprimate 樽n lei: benti - 40, fileu - 400, grip - 30, manete - 30, mingi -
10, rachet - 400, racordaj - 70, apc - 60. ntr-o grup accesoriile sunt distincte, nu conteaz
ordinea lor i cost, 樽n total, exact 500 de lei. Primele trei soluii generate sunt, 樽n aceast ordine:
(benti, fileu, grip, manete), (benti, fileu, apc), (benti, grip, manete,
rachet). A cincea soluie generat este:
a. (benti, rachet, apc) b. (fileu, grip, mingi, apc)
c. (grip, rachet, racordaj) d. (manete, mingi, rachet, apc)
4. ntr-un arbore cu rdcin un nod se afl pe nivelul x dac lan釘ul elementar care are o extremitate 樽n
nodul respectiv i cealalt extremitate 樽n rdcina arborelui are lungimea x. Pe nivelul 0 se afl un
singur nod (rdcina). ntr-un arbore cu rdcin cu 6 de noduri, numerotate de la 1 la 6, sunt 3 noduri
situate pe ultimul nivel. Indicai un vector de tai care poate corespunde arborelui.
a. (0,3,1,6,6,2) b. (2,0,1,1,2,1) c. (3,5,5,6,0,5) d. (5,1,1,1,0,1)
5. Un graf orientat cu 6 v但rfuri, numerotate de la 1 la 6, are arcele (1,6), (2,1), (2,3), (2,5), (3,4),
(3,5), (4,6). Indicai numrul minim de arce care pot fi adugate astfel 樽nc但t graful obinut s aib cel
puin dou circuite. Un circuit este format numai din arce distincte, iar dou circuite sunt distincte dac
difer prin cel pu釘in un arc.
a. 1 b. 2 c. 3 d. 4
2. Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 2
Limbajul C/C++
Filier teoretic, profil real, specializare matematic-informatic / matematic-informatic intensiv informatic
Filier voca釘ional, profil militar, specializare matematic-informatic
Pagina 2 din 2
SUBIECTUL al II-lea (40 de puncte)
1. Algoritmul alturat este reprezentat 樽n pseudocod.
S-a notat cu a%b restul 樽mpr釘irii numrului natural a la numrul natural
nenul b i cu [c] partea 樽ntreag a numrului real c.
citete n (numr natural)
m0
repet
cn%10; n[n/10]
dac c=0 atunci c2
altfel
dac c%2=0 atunci
c0
mm*10+c
p但n c但nd n=0
scrie m
a. Scrie釘i valoarea afiat dac se citete numrul 25940464. (6p.)
b. Scrie釘i trei numere de cinci cifre care pot fi citite astfel 樽nc但t, pentru fiecare
dintre acestea, 樽n urma executrii algoritmului s se afieze 2020. (6p.)
c. Scrie釘i programul C/C++ corespunztor algoritmului dat. (10p.)
d. Scrie釘i 樽n pseudocod un algoritm, echivalent cu cel dat, 樽nlocuind adecvat
structura repet...p但n c但nd cu o structur repetitiv cu test iniial.
(6p.)
2. Variabila s memoreaz simultan urmtoarele date despre fiecare dintre cele 20 de specii de animale
dintr-o rezervaie: un cod, reprezent但nd specia, numrul de exemplare din specia respectiv i v但rstele
acestora. n rezervaie sunt maximum 10 exemplare din fiecare specie. tiind c expresiile C/C++ de
mai jos au ca valori numere naturale i reprezint codul i numrul de exemplare din prima specie,
respectiv v但rsta celui de al 4-lea exemplar din aceast specie, scriei definiia unei structuri cu eticheta
specie, care permite memorarea datelor despre o specie, i declarai corespunztor variabila s.
s[0].cod s[0].nrExemplare s[0].varsta[3] (6p.)
3. Variabilele i i j sunt de tip 樽ntreg, iar variabila a memoreaz un tablou bidimensional cu 5 linii i 7
coloane, numerotate 樽ncep但nd de la 0, cu elemente numere 樽ntregi, iniial toate egale cu 1.
Fr a utiliza alte variabile dec但t cele menionate, scrie釘i o secven釘 de instruc釘iuni
prin care se transform 樽n memorie tabloul, astfel 樽nc但t orice element aflat pe prima
linie sau pe prima coloan s aib valoarea 1 i oricare alt element din tablou s fie
egal cu ultima cifr a sumei celor dou elemente alturate lui, aflate pe aceeai linie dar
pe coloana din st但nga, respectiv pe aceeai coloan, dar pe linia anterioar. (6p.)
1 1 1 1 1 1 1
1 2 3 4 5 6 7
1 3 6 0 5 1 8
1 4 0 0 5 6 4
1 5 5 5 0 6 0
SUBIECTUL al III-lea (30 de puncte)
1. Dou numere distincte a i b sunt numite d-fii ai unui numr natural n dac ab=n.
Subprogramul fii are un singur parametru, n, prin care primete un numr natural (n[1,109]).
Subprogramul afieaz pe ecran toate perechile distincte de numere naturale cu proprietatea c sunt d-fii ai
lui n. Fiecare pereche este afiat 樽ncadrat 樽ntre paranteze rotunde, numerele din pereche fiind afiate 樽n
ordine strict descresctoare, separate printr-un spaiu. Scriei definiia complet a subprogramului.
Exemplu: dac n=12 se afieaz pe ecran, nu neaprat 樽n aceast ordine, (12 1)(6 2)(4 3)
iar dac n=16 se afieaz pe ecran (16 1)(8 2) (10p.)
2. Un text are cel mult 100 de caractere i este format din cuvinte i numere, separate prin c但te un spaiu.
Cuvintele sunt formate numai din litere ale alfabetului englez. Toate numerele sunt reale i sunt formate
numai din parte 樽ntreag sau din parte 樽ntreag i parte frac釘ionar, separate prin virgul (,), numerele
negative fiind precedate de semnul minus (-).
Scrie釘i un program C/C++ care citete de la tastatur textul, pe care 樽l transform, elimin但nd din
componen釘a sa toate numerele negative. Programul afieaz apoi pe ecran textul ob釘inut.
Exemplu: pentru textul
2,7 minus 3,5 minus 2 egal 2,7 plus -3,5 plus -2 egal -0,2 rezultat
se va afia pe ecran textul:
2,7 minus 3,5 minus 2 egal 2,7 plus plus egal rezultat (10p.)
3. Fiierul bac.in con釘ine un ir de numere naturale distincte, din intervalul [1,109]. Numerele din ir
sunt separate prin c但te un spa釘iu i cel pu釘in trei dintre ele au penultima cifr 2 i ultima cifr 0.
Se cere s se afieze pe ecran cele mai mari trei numere din ir cu proprietatea c au penultima cifr 2
i ultima cifr 0. Numerele determinate sunt afiate 樽n ordine cresctoare, separate prin c但te un spa釘iu.
Proiectai un algoritm eficient din punctul de vedere al memoriei utilizate i al timpului de executare.
Exemplu: dac fiierul con釘ine numerele 9731 50 112 20 8 16 8520 3 2520 1520
pe ecran se vor afia, 樽n aceast ordine, numerele: 1520 2520 8520
a. Scriei programul C/C++ corespunztor algoritmului proiectat. (8p.)
b. Descriei 樽n limbaj natural algoritmul proiectat, justific但nd eficiena acestuia. (2p.)