Textul subiectului și baremului
Test de antrenament BAC Informatică Mate-Info C/C++ 2021 – testul 5
Acesta este textul selectabil extras automat din documentele PDF ale acestei variante. Pentru formule, tabele, pseudocod sau grafice, verifică pagina originală din PDF înainte de a rezolva exercițiile.
Subiectul
Deschide PDF-ul originalSubiectul · pagina 1
Ministerul Educaţiei
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Testul 5
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 național de bacalaureat 2021
Proba E. d)
INFORMATICĂ
Limbajul C/C++
Testul 5
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ă zece puncte din oficiu.
• Timpul de lucru efectiv este de trei ore.
• Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor
precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual
în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
• În grafurile din cerințe oricare muchie are extremități distincte și oricare două muchii diferă prin
cel puțin una dintre extremități.
SUBIECTUL I (20 de puncte)
Pentru fiecare dintre itemii de la 1 la 5, scrieți pe foaia de examen litera corespunzătoare răspunsului
corect. Fiecare răspuns corect se notează cu 4 puncte.
1. Indicați o expresie C/C++ care are valoarea 1 dacă şi numai dacă numerele naturale memorate în
variabilele întregi x și y sunt pare, consecutive.
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)
2. Subprogramul f este definit
alăturat. Indicați ce se
afișează în urma apelului de
mai jos.
f(7552021,1);
void f (int n, int k)
{ if (n!=0)
{ f(n/10,k+1);
if(n%10==k) cout<<k; | printf(”%d”,k);
}
}
a. 7521 b. 1257 c. 21 d. 1
3. Utilizând metoda backtracking se generează toate posibilitățile de a scrie numărul 10 ca sumă de
numere prime. Soluțiile generate sunt, în această ordine: 2+2+2+2+2, 2+2+3+3, 2+3+5, 3+7, 5+5.
Folosind aceeași metodă se generează toate posibilitățile de a scrie numărul 9 ca sumă de numere
prime. Indicați a treia soluție generată.
a. 2+2+2+3 b. 2+2+5 c. 2+7 d. 3+3+3
4. Un arbore cu rădăcină, cu 9 noduri, numerotate de la 1 la 9, este reprezentat prin vectorul de „tați”
(8,7,6,5,7,7,8,0,8). Indicați toți descendenții nodului 7.
a. 2,5,6 b. 2,3,5,6 c. 2,4,5,6 d. 2,3,4,5,6
5. Un graf neorientat are 6 noduri, numerotate de la 1 la 6, și muchiile [1,2], [1,3], [2,3], [2,4],
[2,5], [2,6], [3,4], [4,5]. Indicați numărul nodurilor care au gradul un număr impar.
a. 5 b. 4 c. 3 d. 2
SUBIECTUL al II-lea (40 de puncte)
1. Algoritmul alăturat este reprezentat în pseudocod.
S-a notat cu [c] partea întreagă a numărului real c.
citeşte x
(număr natural nenul)
y0
┌repetă
│┌dacă x>9 atunci
││┌repetă
│││ x[x/10]
││└până când x≤9
│└■
│ yy*10+x
│ citeşte x (număr natural)
└până când x=0
scrie y
a. Scrieţi valoarea afişată dacă se citesc, în această ordine, numerele
12, 7, 354, 9, 630, 0. (6p.)
b. Scrieţi o secvență de numere din intervalul [0,104) care pot fi citite,
în această ordine, astfel încât, în urma executării algoritmului, să se
afișeze 321. (6p.)
c. Scrieţi programul C/C++ corespunzător algoritmului dat. (10p.)
d. Scrieţi în pseudocod un algoritm, echivalent cu cel dat, înlocuind
adecvat a doua structură repetă...până când cu o structură
repetitivă cu test inițial. (6p.)Subiectul · pagina 2
Ministerul Educaţiei
Centrul Național de Politici și Evaluare în Educație
Probă scrisă la INFORMATICĂ Testul 5
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
2. Variabila c memorează simultan următoarele date despre o carte dintr-o bibliotecă: titlul (un șir de
maximum 50 de caractere), numele autorului/autorilor și numărul de exemplare (maximum 102); o carte
poate avea cel mult 10 autori, fiecare având un nume de maximum 50 de caractere. Știind că expresiile
C/C++ de mai jos au ca valori două șiruri de caractere, reprezentând titlul, respectiv numele primului
autor al cărții, și un număr natural reprezentând numărul de exemplare ale acestei cărți, scrieți definiția
unei structuri cu eticheta carte, care permite memorarea datelor despre o carte, și declarați
corespunzător variabila c.
c.titlu c.autor[0] c.nrExemplare (6p.)
3. Variabila i este de tip întreg, iar variabila s
permite memorarea unui şir cu cel mult 102
caractere.
Scrieți ce se afișează pe ecran în urma
executării secvenței alăturate. (6p.)
strcpy(s,"informatica");
cout<<strlen(s); | printf("%d",strlen(s));
for (i=0;i<strlen(s);i++)
if (strchr("aeiou",s[i])!=NULL)
s[i]= '*';
cout<<s; | printf("%s",s);
SUBIECTUL al III-lea (30 de puncte)
1. Subprogramul identice are un singur parametru, n, prin care primește un număr natural (n[10,109]).
Subprogramul returnează valoarea 1, dacă numărul n are toate cifrele egale, sau valoarea 0 în caz contrar.
Scrieți definiția completă a subprogramului.
Exemplu: dacă n=2222, subprogramul returnează valoarea 1, iar dacă n=212, subprogramul
returnează valoarea 0. (10p.)
2. Scrieţi un program C/C++ care citeşte de la tastatură două numere naturale din intervalul [2,102], m și n, şi
construieşte în memorie un tablou bidimensional cu m linii şi n coloane, numerotate începând cu 1, astfel
încât elementul de pe linia i şi coloana j primeşte ca valoare ultima cifră a produsului ij.
Programul afişează pe ecran elementele tabloului obținut, linie cu linie, fiecare linie a tabloului
pe câte o linie a ecranului, cu valorile aflate pe aceeaşi linie separate prin câte un spaţiu.
Exemplu: dacă m=4 și n=5 se afişează pe ecran tabloul alăturat. (10p.)
1 2 3 4 5
2 4 6 8 0
3 6 9 2 5
4 8 2 6 0
3. Fişierul bac.txt conține numere naturale din intervalul [2,106]: pe prima linie n, iar pe a doua linie
un șir de n numere, separate prin câte un spațiu.
Se cere să se afișeze pe ecran, pentru fiecare număr natural i (i[1,n]), cea mai mare dintre primele
i valori ale șirului aflat în fișier. Numerele afișate sunt separate prin câte un spațiu. Proiectați un
algoritm eficient din punctul de vedere al memoriei utilizate şi al timpului de executare.
Exemplu: dacă fișierul are conținutul alăturat, se afișează pe ecran
4 6 6 7 8 8 8 8 8 9 10 10
12
4 6 3 7 8 1 6 2 7 9 10 8
a. Descrieți în limbaj natural algoritmul proiectat, justificând eficiența acestuia. (2p.)
b. Scrieți programul C/C++ corespunzător algoritmului proiectat. (8p.)Baremul
Deschide PDF-ul originalBaremul · pagina 1
Ministerul Educaţiei Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Testul 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 1 din 2 Examenul național de bacalaureat 2021 Proba E. d) INFORMATICĂ BAREM DE EVALUARE ȘI DE NOTARE (comun pentru limbajele C/C++ și Pascal) Testul 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică • Se punctează orice modalitate de rezolvare corectă a cerinţelor. • Nu se acordă punctaje intermediare, altele decât cele precizate explicit în barem. Nu se acordă fracțiuni de punct. Se acordă zece puncte din oficiu. Nota finală se calculează prin împărțirea la zece a punctajului total acordat pentru lucrare. • Utilizarea unui tip de date care depășește domeniul de valori precizat în enunț este acceptată dacă acest lucru nu afectează corectitudinea în funcționarea programului. SUBIECTUL I (20 de puncte) 1d 2a 3c 4d 5b 5x4p. SUBIECTUL al II - lea (40 de puncte) 1. a) Răspuns corect: 17396 6p. b) Pentru răspuns corect 6p. Se acordă numai 2p. dacă secvența conduce la obținerea unei valori cu o singură cifră conform cerinței, numai 4p. dacă secvența conduce la obținerea unei valori cu doar două cifre conform cerinței și numai 5p. dacă secvența conduce la obținerea unei valori care conține cele trei cifre cerute dar, în continuarea acestora, conține și alte cifre, sau se așteaptă și alte numere (nu se încheie cu 0). c) Pentru program corect -declarare a variabilelor -citire a datelor -afişare a datelor -instrucţiune de decizie -instrucţiuni repetitive (*) -atribuiri -corectitudine globală a programului1) 10p. 1p. 1p. 1p. 2p. 3p. 1p. 1p. (*) Se acordă numai 2p. dacă doar una dintre instrucțiunile repetitive este conform cerinței. d) Pentru algoritm pseudocod corect -echivalenţă a prelucrării realizate asupra structurii repetitive, conform cerinţei (*) -corectitudine globală a algoritmului1) 6p. 5p. 1p. (*) Se acordă numai 2p. dacă algoritmul are o structură repetitivă conform cerinţei, principial corectă, dar nu este echivalent cu cel dat. Se va puncta orice formă de structură repetitivă conform cerinței. 2. Pentru rezolvare corectă -definire a structurii/înregistrării (*) -declarare a variabilei conform cerinței -corectitudine globală a secvenței1) 6p. 4p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (definire principial corectă a unei structuri/înregistrări, câmp de tip simplu de date, câmpuri de tip structurat de date, etichetă/nume) conform cerinței. 3. Răspuns corect: 11*nf*rm*t*c* 6p. (*) Se acordă câte 2p. pentru fiecare aspect specific al datelor afișate (lungime șir, înlocuire a unor vocale cu simbolul *, vocale/consoane suport înlocuite/nemodificate) conform cerinței. SUBIECTUL al III - lea (30 de puncte) 1. Pentru subprogram corect -antet subprogram (*) -determinare a valorii cerute (**) -instrucțiune/instrucțiuni de returnare a rezultatului -declarare a tuturor variabilelor locale, corectitudine globală a subprogramului1) 10p. 2p. 6p. 1p. 1p. (*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare) conform cerinței. (**) Se acordă câte 2p. pentru fiecare aspect specific (algoritm principial corect de verificare a unei proprietăți, identificare a unei perechi de cifre egale/diferite, cifre suport verificate) conform cerinței.
Baremul · pagina 2
Ministerul Educaţiei Centrul Național de Politici și Evaluare în Educație Probă scrisă la INFORMATICĂ Testul 5 Filieră teoretică, profil real, specializare matematică-informatică / matematică-informatică intensiv informatică Filieră vocațională, profil militar, specializare matematică-informatică Barem de evaluare și de notare Pagina 2 din 2 2. Pentru program corect -declarare a unei variabilei de tip tablou bidimensional -citire a datelor -construire a tabloului cerut (*) -afişare a unui tablou -declarare a variabilelor simple, corectitudine globală a programului1) 10p. 1p. 1p. 6p. 1p. 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (ultima cifră a unui produs conform cerinței, linii și coloane suport, construire în memorie) conform cerinţei. 3. a) Pentru răspuns corect -coerenţă a descrierii algoritmului (*) -justificare a elementelor de eficienţă 2p. 1p. 1p. (*) Se acordă punctajul chiar dacă algoritmul ales nu este eficient. (**) Se acordă numai 3p. dacă algoritmul este principial corect, dar nu oferă rezultatul cerut pentru toate seturile de date de intrare. (***) Se acordă punctajul numai pentru un algoritm liniar care utilizează eficient memoria. O soluţie posibilă parcurge datele din fișier și memorează cea mai mare valoare dintre cele citite până la pasul curent, fie aceasta maxi; la fiecare pas se compară maxi cu valoarea citită curent, se actualizează maxi, după caz, și se afișează pe ecran. b) Pentru program corect -operaţii cu fişierul: declarare, pregătire în vederea citirii, citire din fişier -determinare a valorilor cerute (*),(**) -utilizare a unui algoritm eficient (***) -declarare a variabilelor, afișare a datelor, corectitudine globală a programului1) 8p. 1p. 5p. 1p. 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.