際際滷

際際滷Share a Scribd company logo
Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 1
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 1
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. Indicai o expresie C/C++ care are valoarea 1 dac i numai dac numrul natural memorat 樽n variabila
樽ntreag n este divizibil cu 2 i cu 5.
a. !(n%2==1 || n%5!=0) b. !(n/2==1 && n/5!=0)
c. n%2==0 || !(n%5==0) d. n/2==0 && !(n/5==0)
2. Pentru a verifica dac 樽n tabloul unidimensional (4,7,9,15,16,20,27) exist elementul cu valoarea
x=18 se aplic metoda cutrii binare. Succesiunea de elemente a cror valoare se compar cu x pe
parcursul aplicrii metodei este:
a. 4,16,20 b. 15,20,16 c. 15,16,20 d. 4,9,16,27
3. Tablourile unidimensionale A i B au valorile: A=(20,16,10,7,2) i B=(56,15,14,11,1). n urma
interclasrii lor 樽n ordine descresctoare se ob釘ine tabloul cu elementele:
a. (20,15,10,7,1) b. (56,20,16,15,14,10,11,7,2,1)
c. (56,15,14,11,1,20,16,10,7,2) d. (56,20,16,15,14,11,10,7,2,1)
4. O expresie C/C++ care are valoarea 1 este:
a. ceil(20.20)-1==floor(19.20) b. ceil(20.19)==floor(20.20)
c. ceil(20.20)==ceil(19.20) d. floor(20.19)==floor(20.20)
5. n secven釘a de instruc釘iuni alturat, toate variabilele sunt de tip 樽ntreg. O
expresie care poate 樽nlocui punctele de suspensie astfel 樽nc但t, 樽n urma
executrii secven釘ei, variabila m s aib o valoare egal cu cel mai mare
divizor comun al numerelor 2020 i 1020 este: (4p.)
m=2020; n=1020;
while (...)
{ x=m%n; m=n; n=x;}
a. m!=0 b. m%n!=0 c. n!=0 d. n!=m
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)
p1; m0; k0
c但t timp n0 execut
 citete x (numr natural)
pentru i1,k execut
 x[x/10]

dac x0 atunci cx%10
altfel cn%10

 mc*p+m
 n[n/10]
 pp*10; kk+1

scrie m
a. Scrie釘i valoarea care se afieaz 樽n urma executrii algoritmului
dac se citesc, 樽n aceast ordine, numerele 12345, 780, 921,
4013, 75, 100214. (6p.)
b. Dac pentru n se citete numrul 49, scriei dou seturi de date
care pot fi citite 樽n continuare astfel 樽nc但t, pentru fiecare dintre
acestea, 樽n urma executrii algoritmului, s se afieze 49. (6p.)
c. Scrie釘i programul C/C++ corespunztor algoritmului dat. (10p.)
d. Scrie釘i 樽n pseudocod un algoritm, echivalent cu cel dat, care s
conin o singur instruciune repetitiv. (6p.)
Ministerul Educa釘iei i Cercetrii
Centrul Na釘ional de Evaluare i Examinare
Prob scris la informatic Testul 1
Limbajul C/C++
Filier teoretic, profil real, specializare tiine ale naturii
Pagina 2 din 2
2. Variabilele urmtoare memoreaz coordonatele reale (abscisa i ordonata), 樽n planul xOy, ale v但rfurilor
unui triunghi: tAx i tAy abscisa i respectiv ordonata v但rfului A, tBx i tBy abscisa i respectiv
ordonata v但rfului B, iar tCx i tCy abscisa i respectiv ordonata v但rfului C. Declarai corespunztor
variabilele i scriei o secven de instruciuni 樽n urma executrii creia s se afieze pe ecran ptratul
lungimii laturii AB a triunghiului. (6p.)
3. n secven釘a alturat, variabila a memoreaz un caracter, iar
variabilele i i k sunt de tip 樽ntreg.
Scrie釘i valoarea variabiei k 樽n urma executrii secven釘ei tiind
c se citesc de la tastatur, 樽n aceast ordine, literele
V I c T o r I E (6p.)
k=0;
for(i=1;i<=8;i++)
{ cin>>a; | scanf(%c,&a);
if(a>=A && a<=Z) k=k+1;
else k=k-1;
}
SUBIECTUL al III-lea (30 de puncte)
1. Se citete un numr natural nenul n i se cere s se scrie, 樽n aceast ordine, numerele d i p, reprezent但nd
divizorul prim, d, care apare la cea mai mare putere, p, 樽n descompunerea 樽n factori primi a lui n; dac exist
mai muli astfel de divizori se afieaz cel mai mare dintre ei.
Scrie釘i, 樽n pseudocod, algoritmul de rezolvare a problemei enunate.
Exemplu: dac n=10780, atunci se scriu numerele 7 2 (10780=2257211). (10p.)
2. Scrie釘i un program C/C++ care citete de la tastatur dou numere naturale din intervalul [2,20], n i
k, i construiete 樽n memorie un tablou unidimensional cu nk elemente astfel: tabloul memoreaz un
ir cresctor de termeni cu proprietatea c primul termen este k, fiecare valoare apare 樽n ir de exact k
ori i oricare doi termeni alturai au valori egale sau consecutive. Programul afieaz pe ecran tabloul
construit, cu valorile separate prin c但te un spa釘iu.
Exemplu: dac n=4 i k=3, se afieaz pe ecran tabloul alturat.
(10p.)
3 3 3 4 4 4 5 5 5 6 6 6
3. Se consider irul 1, 1, 2, 5, 14, 41, 122, 365, 1094 ....
definit astfel: f1=f2=1, fn=3fn-1-1 (unde n este un numr natural n3):
Se citete de la tastatur un numr natural x (x109), valoare a unui termen din irul dat, i se cere s
se scrie 樽n fiierul text bac.txt, 樽n ordine descresctoare, separai prin c但te un spaiu, to釘i termenii
irului care sunt mai mici sau egali cu x. Proiectai un algoritm eficient din punctul de vedere al
memoriei utilizate i al timpului de executare.
Exemplu: dac se citete numrul 365
fiierul bac.txt con釘ine numerele 365 122 41 14 5 2 1 1
a. Scriei programul C/C++ corespunztor algoritmului proiectat. (8p.)
b. Descriei 樽n limbaj natural algoritmul proiectat, justific但nd eficiena acestuia. (2p.)

More Related Content

E d informatica_2020_sp_sn_c_var_test_01

  • 1. Ministerul Educa釘iei i Cercetrii Centrul Na釘ional de Evaluare i Examinare Prob scris la informatic Testul 1 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 1 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. Indicai o expresie C/C++ care are valoarea 1 dac i numai dac numrul natural memorat 樽n variabila 樽ntreag n este divizibil cu 2 i cu 5. a. !(n%2==1 || n%5!=0) b. !(n/2==1 && n/5!=0) c. n%2==0 || !(n%5==0) d. n/2==0 && !(n/5==0) 2. Pentru a verifica dac 樽n tabloul unidimensional (4,7,9,15,16,20,27) exist elementul cu valoarea x=18 se aplic metoda cutrii binare. Succesiunea de elemente a cror valoare se compar cu x pe parcursul aplicrii metodei este: a. 4,16,20 b. 15,20,16 c. 15,16,20 d. 4,9,16,27 3. Tablourile unidimensionale A i B au valorile: A=(20,16,10,7,2) i B=(56,15,14,11,1). n urma interclasrii lor 樽n ordine descresctoare se ob釘ine tabloul cu elementele: a. (20,15,10,7,1) b. (56,20,16,15,14,10,11,7,2,1) c. (56,15,14,11,1,20,16,10,7,2) d. (56,20,16,15,14,11,10,7,2,1) 4. O expresie C/C++ care are valoarea 1 este: a. ceil(20.20)-1==floor(19.20) b. ceil(20.19)==floor(20.20) c. ceil(20.20)==ceil(19.20) d. floor(20.19)==floor(20.20) 5. n secven釘a de instruc釘iuni alturat, toate variabilele sunt de tip 樽ntreg. O expresie care poate 樽nlocui punctele de suspensie astfel 樽nc但t, 樽n urma executrii secven釘ei, variabila m s aib o valoare egal cu cel mai mare divizor comun al numerelor 2020 i 1020 este: (4p.) m=2020; n=1020; while (...) { x=m%n; m=n; n=x;} a. m!=0 b. m%n!=0 c. n!=0 d. n!=m 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) p1; m0; k0 c但t timp n0 execut citete x (numr natural) pentru i1,k execut x[x/10] dac x0 atunci cx%10 altfel cn%10 mc*p+m n[n/10] pp*10; kk+1 scrie m a. Scrie釘i valoarea care se afieaz 樽n urma executrii algoritmului dac se citesc, 樽n aceast ordine, numerele 12345, 780, 921, 4013, 75, 100214. (6p.) b. Dac pentru n se citete numrul 49, scriei dou seturi de date care pot fi citite 樽n continuare astfel 樽nc但t, pentru fiecare dintre acestea, 樽n urma executrii algoritmului, s se afieze 49. (6p.) c. Scrie釘i programul C/C++ corespunztor algoritmului dat. (10p.) d. Scrie釘i 樽n pseudocod un algoritm, echivalent cu cel dat, care s conin o singur instruciune repetitiv. (6p.)
  • 2. Ministerul Educa釘iei i Cercetrii Centrul Na釘ional de Evaluare i Examinare Prob scris la informatic Testul 1 Limbajul C/C++ Filier teoretic, profil real, specializare tiine ale naturii Pagina 2 din 2 2. Variabilele urmtoare memoreaz coordonatele reale (abscisa i ordonata), 樽n planul xOy, ale v但rfurilor unui triunghi: tAx i tAy abscisa i respectiv ordonata v但rfului A, tBx i tBy abscisa i respectiv ordonata v但rfului B, iar tCx i tCy abscisa i respectiv ordonata v但rfului C. Declarai corespunztor variabilele i scriei o secven de instruciuni 樽n urma executrii creia s se afieze pe ecran ptratul lungimii laturii AB a triunghiului. (6p.) 3. n secven釘a alturat, variabila a memoreaz un caracter, iar variabilele i i k sunt de tip 樽ntreg. Scrie釘i valoarea variabiei k 樽n urma executrii secven釘ei tiind c se citesc de la tastatur, 樽n aceast ordine, literele V I c T o r I E (6p.) k=0; for(i=1;i<=8;i++) { cin>>a; | scanf(%c,&a); if(a>=A && a<=Z) k=k+1; else k=k-1; } SUBIECTUL al III-lea (30 de puncte) 1. Se citete un numr natural nenul n i se cere s se scrie, 樽n aceast ordine, numerele d i p, reprezent但nd divizorul prim, d, care apare la cea mai mare putere, p, 樽n descompunerea 樽n factori primi a lui n; dac exist mai muli astfel de divizori se afieaz cel mai mare dintre ei. Scrie釘i, 樽n pseudocod, algoritmul de rezolvare a problemei enunate. Exemplu: dac n=10780, atunci se scriu numerele 7 2 (10780=2257211). (10p.) 2. Scrie釘i un program C/C++ care citete de la tastatur dou numere naturale din intervalul [2,20], n i k, i construiete 樽n memorie un tablou unidimensional cu nk elemente astfel: tabloul memoreaz un ir cresctor de termeni cu proprietatea c primul termen este k, fiecare valoare apare 樽n ir de exact k ori i oricare doi termeni alturai au valori egale sau consecutive. Programul afieaz pe ecran tabloul construit, cu valorile separate prin c但te un spa釘iu. Exemplu: dac n=4 i k=3, se afieaz pe ecran tabloul alturat. (10p.) 3 3 3 4 4 4 5 5 5 6 6 6 3. Se consider irul 1, 1, 2, 5, 14, 41, 122, 365, 1094 .... definit astfel: f1=f2=1, fn=3fn-1-1 (unde n este un numr natural n3): Se citete de la tastatur un numr natural x (x109), valoare a unui termen din irul dat, i se cere s se scrie 樽n fiierul text bac.txt, 樽n ordine descresctoare, separai prin c但te un spaiu, to釘i termenii irului care sunt mai mici sau egali cu x. Proiectai un algoritm eficient din punctul de vedere al memoriei utilizate i al timpului de executare. Exemplu: dac se citete numrul 365 fiierul bac.txt con釘ine numerele 365 122 41 14 5 2 1 1 a. Scriei programul C/C++ corespunztor algoritmului proiectat. (8p.) b. Descriei 樽n limbaj natural algoritmul proiectat, justific但nd eficiena acestuia. (2p.)