1. Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 4
Limbajul C/C++
Filier teoretic, profil real, specializare tiine ale naturii
Pagina 1 din 2
Examenul de bacalaureat na釘ional 2020
Proba E. d)
Informatic
Limbajul C/C++
Testul 4
Filier teoretic, profil real, specializare tiine ale naturii
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.
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. Variabile x, y i z sunt de tip 樽ntreg. Indicai o expresie C/C++ care are valoarea 1 dac i numai dac
x, y i z au valori identice.
a. x==y && x==z b. x==y==z
c. !( x!=y && x!=z) d. !(x!=y!=z)
2. Pentru a verifica dac 樽ntr-un tablou unidimensional exist elementul cu valoarea x=21 se aplic
metoda cutrii binare, iar succesiunea de elemente a cror valoare se compar cu x pe parcursul
aplicrii metodei este 10, 45, 21. Elementele tabloului pot fi:
a. (2,5,10,21,45,50,70) b. (10,45,21,47,50,55)
c. (2,5,7,10,21,45,70) d. (10,10,45,45,21,21)
3. Tablourile unidimensionale A i B au valorile: A=(3,5,6,19,20) i B=(56,15,14,11,1). n urma
interclasrii lor 樽n ordine cresctoare se ob釘ine tabloul cu elementele:
a. (3,5,6,11,1) b. (3,56,5,15,6,14,11,19,1,20)
c. (1,3,5,6,11,14,15,19,20,56) d. (3,5,6,19,20,56,15,14,11,1)
4. Variabilele x i y sunt de tip real. Indica釘i instruc釘iunea care realizeaz o prelucrare
echivalent cu cea alturat. (4p.)
x=abs(y);
a. if(x<0) x=-y;
else x=y;
b. if(y<0) x=-y;
else x=y;
c. while(y>0)
{ x=x*x; y=y-1;}
d. while(y>0)
{ x=x*y; y=y-1;}
5. Variabilele reale x i y memoreaz coordonatele, 樽n planul xOy, ale centrului unui cerc. O expresie
C/C++ care are valoarea 1, dac i numai dac centrul cercului este pe una dintre cele dou axe ale
sistemului de coordonate al planului xOy, poate fi:
a. x-y==0 b. x+y==0 c. x/y==0 d. x*y==0
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)
repet
c1n%10; n[n/10]; c2n%10
dac c1>c2 atunci
c2c1; c1n%10
c但t timp c1<c2 execut
scrie c1
c2[c2/2]
p但n c但nd n9
a. Scrie釘i ce se afieaz 樽n urma executrii algoritmului dac se
citete numrul 49335. (6p.)
b. Scrie釘i trei numere de patru cifre care pot fi citite astfel 樽nc但t,
pentru fiecare dintre acestea, 樽n urma executrii algoritmului,
valoarea afiat s fie 1100. (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
c但t timp...execut cu o structur repetitiv de alt tip. (6p.)
2. Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 4
Limbajul C/C++
Filier teoretic, profil real, specializare tiine ale naturii
Pagina 2 din 2
2. Variabilele nrv1 i lgm1 memoreaz numrul de v但rfuri i lungimea muchiei pentru un poliedru regulat,
iar variabilele nrv2 i lgm2 memoreaz numrul de v但rfuri i lungimea muchiei pentru un alt poliedru
regulat. tiind c numrul de v但rfuri este un numr natural, iar lungimea muchiei este un numr real,
declarai corespunztor variabilele i scriei o secven de instruciuni 樽n urma executrii creia s se
afieze pe ecran, separate printr-un spaiu, lungimile muchiilor celor dou poliedre, astfel 樽nc但t cea care
corespunde poliedrului cu mai multe v但rfuri s apar prima. (6p.)
3. Variabila a memoreaz un caracter, iar variabilele i i k sunt de tip 樽ntreg. De la tastatur se citesc
numai litere mici ale alfabetului englez.
Fr a utiliza alte variabile, scrie釘i secvena 樽nlocuind punctele
de suspensie astfel 樽nc但t, 樽n urma executrii secven釘ei
obinute, variabila k s memoreze valoarea 1 dac s-a citit cel
puin o consoan, i valoarea 0 altfel.
Exemplu: dac se citesc literele
o p t s p r e z e c e
variabila k va memora 1. (6p.)
...........
for(i=1;i<=11;i++)
{ cin>>a; | scanf(%c,&a);
.................
}
SUBIECTUL al III-lea (30 de puncte)
1. Dou numere a i b sunt numite generatoare ale unui numr natural n dac ab+[a/b]=n, unde s-a notat
cu [c] partea 樽ntreag a numrului real c.
Se citete un numr natural n (n2) i se cere s se afieze pe ecran toate perechile distincte de numere
naturale cu proprietatea c sunt generatoare ale lui n i c primul numr din pereche este par. Numerele din
fiecare pereche sunt separate prin simbolul minus (-), iar perechile sunt separate prin c但te un spaiu. Dac
nu exist astfel de perechi, se scrie mesajul nu exista. Scrie釘i, 樽n pseudocod, algoritmul de rezolvare a
problemei enunate.
Exemplu: dac n=2020 se afieaz pe ecran
2-1010 4-505 10-202 20-101 96-21 200-10 606-3 808-2 1010-1 (10p.)
2. Scrie釘i un program C/C++ care citete de la tastatur un numr natural, n (n [2,20]), i cele n elemente
ale unui tablou unidimensional, numere naturale din mul釘imea {0,1}. Programul afieaz pe ecran numrul
de perechi de elemente egal deprtate de extremitile tabloului care sunt complementare. Dou elemente
sunt complementare dac suma lor este 1: 0 este complementar lui 1 i 1 este complementar lui 0.
Exemplu: dac n=10, i tabloul (1,0,1,1,0,0,0,1,1,1), se afieaz pe ecran 2. (10p.)
3. Fiierul bac.txt con釘ine, 樽n ordine descresctoare, cel pu釘in dou i cel mult 106 numere naturale
din intervalul [0,109], separate prin c但te un spa釘iu. Se cere s se afieze pe ecran, 樽n ordine strict
descresctoare, separate prin c但te un spa釘iu, numai numerele care apar 樽n fiier o singur dat. Dac
nu exist niciun astfel de numr, se afieaz pe ecran mesajul nu exista. Proiectai un algoritm
eficient din punctul de vedere al memoriei utilizate i al timpului de executare.
Exemplu: dac fiierul con釘ine numerele 100 100 50 50 50 49 16 12 12 12 10 9 9 7
pe ecran se afieaz, 樽n aceast ordine, numerele 49 16 10 7
a. Scriei programul C/C++ corespunztor algoritmului proiectat. (8p.)
b. Descriei 樽n limbaj natural algoritmul proiectat, justific但nd eficiena acestuia. (2p.)