Academos
  1. Subiecte
  2. Bacalaureat
  3. Informatică mate-info, C
  4. Subiectul al II-lea, 3.

Subiectul al II-lea, 3., toate variantele

Bacalaureat, Informatică mate-info, C, 2021-2026. Rezolvă-le pe rând, cu baremul la îndemână.

Sesiuni de examen

Variabila s memorează datele înregistrate la un observator astronomic: numărul de stele observate (număr natural din intervalul [10,200]), precum și, pentru fiecare stea, magnitudinea aparentă (număr real) și distanța în ani-lumină față de Pământ (număr natural din intervalul [1,10⁶]). Știind că expresiile C/C++ de mai jos au ca valori numărul de stele observate, magnitudinea aparentă a primei stele și distanța în ani-lumină a acesteia față de Pământ, scrieți definiția unei structuri cu eticheta observator, care permite memorarea datelor precizate, și declarați corespunzător variabila s.

s.numar s.stea[0].magnitudine s.stea[0].distanta

(6p.)

Arată baremul

3. Răspuns corect - 6p. -definire a structurii/tipului cerut (*) - 4p. -declarare a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă/nume, câmp de tip simplu – numar, câmp de tip structurat – stea) conform cerinței. Se punctează câmpul de tip structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită înainte de structura/înregistrarea cerută, cât și dacă este definită în cadrul structurii/înregistrării cerute.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii și 5 coloane, numerotate de la 0 la 4, având inițial toate elementele nule. Fără a utiliza alte variabile, scrieți secvența C/C++ de mai jos, înlocuind punctele de suspensie cu instrucțiuni adecvate, dintre care cel mult patru atribuiri, astfel încât, în urma executării secvenței obținute, tabloul memorat în variabila a să aibă elementele alăturate.

for(i=0;i<5;i++) for(j=0;j<5;j++) ..................

0 9 10 19 20 1 8 11 18 21 2 7 12 17 22 3 6 13 16 23 4 5 14 15 24

(6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al II-lea 3. Pentru rezolvare corectă - 6p. - expresie de accesare a unui element al tabloului - 1p. - valori ale elementelor tabloului atribuite conform cerinței (*) - 4p. - secvență completă, corectitudine globală a secvenței¹⁾ - 1p.

(*) Se acordă câte 2p. pentru fiecare aspect (identificare a cel puțin unei relații între valoarea elementului și poziția acestuia în tablou, valori suport în corelare cu pozițiile elementelor utilizând numărul indicat de instrucțiuni de atribuire) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

struct punct { int x,y; }; struct figura { punct A, B; } d;

În declarările alăturate variabila d memorează în câmpurile A și B coordonatele, în sistemul de coordonate xOy, ale vârfurilor din stânga – sus, respectiv din dreapta – jos ale unui dreptunghi cu laturile paralele cu axele sistemului de coordonate. Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia se afișează pe ecran mesajul DA, dacă figura corespunzătoare variabilei d este pătrat sau mesajul NU în caz contrar. (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

3. Pentru rezolvare corectă - 6p. -acces la câmpurile de pe primul nivel al înregistrării - 2p. -acces la câmpurile de pe al doilea nivel al înregistrării - 2p. -corespondență mesaje-proprietate - 1p. -corectitudine globală a secvenței¹⁾ - 1p. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila p memorează simultan, pentru un tip de prăjitură, codul (un număr natural de două cifre), prețul (număr real) și un set de trei numere naturale din intervalul [1,10²], reprezentând informații specifice, în această ordine: tipul glazurii, tipul cremei principale și numărul de blaturi. Știind că expresiile C/C++ de mai jos au ca valori codul, prețul, respectiv tipul glazurii pentru o prăjitură, scrieți definiția unei structuri cu eticheta prajitura, care permite memorarea datelor despre o prăjitură, și declarați corespunzător variabila p.

p.cod p.pret p.informatii[0]

(6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Răspuns corect - 6p. -definire a structurii/tipului cerut (*) - 4p. -declarare a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă/nume, câmpuri de tip simplu – cod, pret, câmp de tip structurat –informatii) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila b memorează simultan date despre o bijuterie: greutatea acesteia, exprimată în grame, și metalul prețios din care este confecționată (denumirea și prețul unui gram din acel metal). Greutatea bijuteriei și prețul unui gram de metal sunt numere naturale din intervalul [1,10⁴], iar denumirea este un șir de maximum 30 de caractere. Știind că expresiile C/C++ de mai jos au ca valori numele metalului din care este confecționată bijuteria, respectiv prețul acesteia, scrieți definiția unei structuri cu eticheta bijuterie, care permite memorarea datelor precizate mai sus, și declarați corespunzător variabila b. b.metal.denumire b.greutate*b.metal.pret (6p.)

Arată baremul

3. Răspuns corect - 6p. -definire a structurii cerute (*) - 4p. -definire a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹) - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă, câmp de tip simplu - greutate, câmp de tip structurat - metal) conform cerinței. Se punctează câmpul de tip structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită înainte de structura/înregistrarea cerută, cât și dacă este definită în cadrul structurii/înregistrării cerute. ¹) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele c și i sunt de tip întreg, iar variabila s permite memorarea unui șir de cel mult 20 de caractere. Se citesc de la tastatură 10 cuvinte, formate din litere mici ale alfabetului englez și separate prin Enter. Scrieți secvența de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării secvenței obținute, variabila c să memoreze valoarea 1 dacă există printre cuvintele citite cel puțin unul format din două litere și care să conțină o vocală și o consoană, sau valoarea 0 altfel. Se consideră vocale literele a, e, i, o, u. Exemplu: dacă se citesc cuvintele alăturate, variabila c are valoarea 1.

daca au plecat el nu primeste si inghetata de fragi

c=.....; for(i=1;i<=10;i++) { cin>>s; | scanf("%s",s); ............ } (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al II-lea, 3. Pentru răspuns corect - 6p. -inițializare a variabilei c - 1p. -verificare a proprietății cerute (*) - 4p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a lungimii unui cuvânt, identificare a unei vocale/consoane, identificare a unui cuvânt cu/fără proprietatea cerută, algoritm de bază de verificare a unei proprietăți într-o serie de valori) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 9 linii și 9 coloane, numerotate începând de la 0, având inițial toate elementele nule.

Tabloul alăturat: 4 4 4 4 2 2 2 2 2 4 4 4 2 2 2 2 2 2 4 4 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 4 4 2 2 2 2 2 2 4 4 4 2 2 2 2 2 4 4 4 4

Scrieți secvența de instrucțiuni de mai jos, înlocuind punctele de suspensie cu instrucțiuni adecvate, dintre care cel mult patru de atribuire, astfel încât, în urma executării secvenței obținute, variabila a să memoreze tabloul alăturat.

for(i=0;i<9;i++) for(j=0;j<9;j++) .................. (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al II-lea, 3. Pentru rezolvare corectă: 6p. - expresie de accesare a unui element al tabloului: 1p. - valori ale elementelor tabloului atribuite conform cerinței (*): 4p. - corectitudine globală a secvenței¹): 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (identificare a cel puțin unei relații între valoarea elementului și poziția acestuia în tablou, valori suport în corelare cu pozițiile elementelor utilizând numărul indicat de instrucțiuni de atribuire) conform cerinței. ¹) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Gama muzicală conține, în această ordine, notele do, re, mi, fa, sol, la, si. Două note formează un interval muzical, iar acesta este numit terță dacă, în ordinea din gamă, între cele două note există o singură altă notă muzicală. În notația englezească se folosesc unele litere mari ale alfabetului pentru notele muzicale, astfel: litera A pentru nota la, litera B pentru nota si, apoi, în ordine, litera C pentru nota do, litera D pentru nota re, litera E pentru nota mi, litera F pentru nota fa și litera G pentru nota sol. Variabila m, declarată alăturat, memorează literele corespunzătoare notației englezești pentru două note care formează un interval muzical, date în ordinea din gamă. Știind că în câmpul nota1 se memorează una dintre literele C, D, E, F sau G, scrieți o secvență de instrucțiuni C/C++ în urma executării căreia să se afișeze pe ecran mesajul TERTA, dacă intervalul respectiv formează o terță, sau mesajul NU, în caz contrar.

struct interval { char nota1; char nota2; }m;

Exemplu: dacă în câmpul nota1 se memorează litera G (pentru nota sol), iar în câmpul nota2 se memorează litera B (pentru nota si), se afișează mesajul TERTA. (6p.)

Arată baremul

3. Pentru rezolvare corectă - 6p. -expresie de acces la un câmp al structurii/înregistrării - 1p. -afișare a datelor conform cerinței (*) - 4p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (tratare a cazului în care câmpul nota1 corespunde unei note din mulțimea {do, re, mi}, tratare a cazului în care câmpul nota1 corespunde unei note din mulțimea {fa, sol}, utilizarea unor notații englezești ale notelor pe baza unor constante de tip caracter, corelare mesaje-note) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Un șir de caractere a este numit prefix al unui șir de caractere b dacă este identic cu b sau dacă b se obține din a prin adăugarea la dreapta a unor alte caractere.

Variabila k este de tip întreg, iar variabila s permite accesul la un șir de cel mult 20 de caractere. Scrieți secvența de instrucțiuni de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării secvenței obținute, să se afișeze pe ecran, în ordinea descrescătoare a lungimii, separate prin câte un spațiu, toate prefixele șirului accesat prin variabila s, fiecare încheindu-se cu prima literă a șirului s, ca în exemplu. Declarați eventualele alte variabile utilizate. Exemplu: pentru șirul elemente se afișează: elemente eleme ele e for(k=strlen(s)-1;k>=0;k--) {..................} (6p.)

Arată baremul

Reguli generale:

SUBIECTUL al II-lea, 3. Pentru rezolvare corectă - 6p. - prefixe determinate, conform cerinței (*) - 4p. - afișare a unor șiruri - 1p. - corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui prefix, acces la prima literă a unui prefix, acces la ultima literă a unui prefix, prefixe suport determinate) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila f memorează, pentru fiecare dintre cele 10 soiuri de lalele care se vând într-o florărie, caracteristicile acestora: denumirea (șir de maximum 20 de caractere) și stocul, exprimat prin numărul de fire și prețul unui fir, în lei (numere naturale). Știind că expresiile de mai jos au ca valori denumirea primului soi de lalele, respectiv suma, în lei, necesară pentru a cumpăra toate lalelele din acest soi, scrieți în limbajul C/C++ definiția unei structuri cu eticheta lalea, care să permită memorarea informațiilor menționate pentru un soi de lalea, și declarați corespunzător variabila f. f[0].denumire f[0].stoc.nrFire*f[0].stoc.pretFir (6p.)

Arată baremul

Reguli generale:

SUBIECTUL al II-lea, 3. Pentru rezolvare corectă - 6p. - structură/înregistrare definită, conform cerinței (*) - 4p. - variabilă declarată conform cerinței - 1p. - corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (definire principial corectă a unei structuri/înregistrări, câmpuri de pe primul nivel, câmpuri de pe al doilea nivel, etichetă/nume) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

struct produs { char denumire[20]; int pret; }p; char a;

Variabila p, declarată alăturat, memorează caracteristicile unui produs: denumire și preț. Scrieți o secvență de instrucțiuni C/C++ prin care variabila a memorează valoarea primei litere a denumirii produsului respectiv, dacă acesta are prețul strict mai mic decât 100, sau caracterul * în caz contrar. (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

3. Pentru rezolvare corectă - 6p. - câmpuri ale înregistrării, accesate conform cerinței - 1p. - date determinate, conform cerinței (*) - 4p. - corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (atribuire a unei valori variabilei a, acces la primul caracter al unui șir, constantă de tip caracter cu sintaxă adecvată, valoare atribuită în funcție de preț) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Pentru o sală de spectacole se memorează următoarele informații specifice: numărul de locuri disponibile și prețul biletului pentru un loc. Variabilele i și s sunt întregi, iar variabila t memorează informațiile specifice pentru fiecare dintre cele 15 săli de spectacole dintr-un oraș.

struct sala { int nrLocuri; int pret; } t[15];

Scrieți o secvență de instrucțiuni în urma executării căreia variabila s să memoreze suma totală obținută în urma vânzării biletelor pentru un festival de teatru care s-ar desfășura simultan în toate sălile, iar acestea ar fi ocupate complet. (6p.)

Arată baremul

3. Pentru răspuns corect - 6p. -acces la un câmp al unei înregistrări - 1p. -determinare a sumei cerute (*) - 4p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 2p. pentru fiecare aspect specific (algoritm de bază pentru determinarea sumei unei serii de valori, valori suport însumate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele s și id permit accesul la câte un șir de maximum 50 de caractere, șirul accesat prin id fiind inițial vid, iar cel accesat prin s memorând, în această ordine, separate printr-un spațiu, prenumele și numele unei persoane, fiecare fiind format numai din litere ale alfabetului englez. Scrieți o secvență de instrucțiuni C/C++ astfel încât, în urma executării acesteia, șirul accesat prin id să memoreze numele persoanei menționate, urmat de 2022. Declarați corespunzător eventualele alte variabile utilizate. Exemplu: dacă șirul accesat prin variabila s este Ana Popescu atunci șirul accesat prin variabila id este Popescu2022. (6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Pentru răspuns corect - 6p. Se acordă câte 2p. pentru fiecare aspect (identificare a unui cuvânt în cadrul unui șir, copiere a unui șir într-un alt șir/concatenare a două șiruri, secvențe suport copiate în șirul destinație) conform cerinței.

Variabila x, declarată alăturat, memorează simultan un an calendaristic și temperatura medie a aerului, măsurată în grade Celsius, înregistrată în București în anul respectiv.

struct meteo { int an, temperatura; }x;

Scrieți o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran mesajul CALDUROS dacă temperatura menționată a fost strict mai mare decât 11°C, mesajul RACOROS dacă temperatura menționată a fost strict mai mică decât 10°C, sau mesajul NORMAL în orice alt caz. (6p.)

Arată baremul

3. Pentru rezolvare corectă - 6p. -accesul la un câmp al unei înregistrări - 1p. -tratare a tuturor cazurilor, conform cerinței (*) - 4p. -corectitudinea globală a secvenței¹⁾ - 1p.

(*) Se acordă numai 2p. dacă a fost tratat conform cerinței un singur caz, numai 3p. dacă au fost tratate conform cerinței numai două cazuri.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

strcpy(x,"bac2021"); cout<<x+3<<endl; | printf("%s\n",x+3); for(i=0;i<strlen(x);i++) if(strchr("0123456789",x[i])==0) cout<<x[i]<<'!'; | printf("%c! ",x[i]);

Variabila i este de tip întreg, iar variabila x permite memorarea unui șir cu cel mult 100 de caractere. Scrieți ce se afișează în urma executării secvenței alăturate. (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

Răspuns: Varianta cu cout: 2021 b!a!c! Varianta cu printf: 2021 b! a! c! În varianta cu printf, fiecare caracter ! este urmat de un spațiu, inclusiv ultimul.

3. Răspuns corect - 6p. 2021 b!a!c! Se acordă câte 2p. pentru fiecare aspect (subșir de cifre, succesiune de litere și !, linii separate) conform cerinței.

În declararea alăturată, variabilele f și fs memorează în câmpurile a și b numărătorul, respectiv numitorul câte unei fracții.

struct fractie { int a,b; } f,fs;

Fără a utiliza alte variabile, scrieți o secvență de instrucțiuni care să memoreze în variabila fs fracția obținută prin scăderea din fracția 2020/2021 a fracției memorate în variabila f. (6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

3. Pentru răspuns corect - 6p. -acces la câmpurile unei structuri - 2p. -atribuiri conform cerinței (*) - 3p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă numai 2p. dacă doar numitorul sau doar numărătorul au fost calculate conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila a memorează datele personale ale fiecăruia dintre cei 30 de angajați (codul numeric personal – CNP, anul nașterii) și venitul lunar al acestuia. Scrieți o secvență de instrucțiuni în urma executării căreia pentru primul angajat să se inițializeze anul nașterii cu valoarea 2000, iar venitul cu valoarea 4000. (6p.)

struct date { char CNP[14]; int anNastere; }; struct angajat { struct date dp; int venit; }a[30];

Arată baremul

3. Pentru răspuns corect - 6p. -acces la un câmp de pe primul nivel al structurii - 2p. -acces la un câmp de pe al doilea nivel al structurii - 2p. -atribuire a valorilor indicate pentru datele angajatului precizat - 1p. -corectitudine globală a secvenței¹⁾ - 1p.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Simulări, modele de subiect și subiecte de rezervă

Variabilele tI, pN și tL permit accesul la câte un șir de maximum 20 de caractere. Inițial, șirul accesat prin tL este vid, șirul accesat prin tI reprezintă un număr de telefon în format internațional, iar șirul accesat prin pN reprezintă un prefix național sau este un șir vid. Numărul de telefon în format internațional conține codul de țară, scris între paranteze rotunde, urmat de cifrele numărului propriu-zis. Codul de țară este format din cifre sau din simbolul + (plus), urmat de cifre. În multe țări, pentru a forma local un număr de telefon, se înlocuiește secvența formată din paranteze și codul de țară cu un prefix național format din cifre (de exemplu 0, în România) sau cu șirul vid (de exemplu în SUA). Scrieți o secvență de instrucțiuni C/C++ astfel încât, în urma executării acesteia, șirul accesat prin tL să reprezinte numărul de telefon format local. Declarați corespunzător eventualele alte variabile utilizate. Exemplu: dacă prin variabila tI se accesează șirul (+254)722123456, iar prin variabila pN se accesează șirul 0, atunci numărul format local este 0722123456, iar dacă prin variabila tI se accesează șirul (+1)2121234567, iar prin variabila pN se accesează șirul vid, atunci numărul format local este 2121234567. (6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Pentru răspuns corect - 6p. Se acordă câte 2p. pentru fiecare aspect (identificare a unui subșir/caracter ‘)’ în cadrul unui șir, copiere a unui șir într-un alt șir/concatenare a două șiruri, secvențe suport copiate în șirul destinație) conform cerinței.

Pentru o sală de examen se memorează următoarele date specifice: numărul de locuri disponibile și durata examenului, exprimată în ore. Variabila s memorează datele specifice pentru fiecare dintre cele 10 săli ale unui centru de testare, iar expresiile de mai jos au valori întregi și reprezintă numărul de locuri ale primei săli, respectiv durata examenului din această sală. Definiți o structură C/C++ cu eticheta sala, care să permită memorarea datelor pentru o sală de examen, și declarați corespunzător variabila s.

s[0].nrLocuri s[0].durata (6p.)

Arată baremul

3. Pentru răspuns corect - 6p. -definire principial corectă a unei structuri - 1p. -parametri pentru structura definită (*) - 3p. -declarare a variabilei indicate - 1p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (etichetă, primul câmp, al doilea câmp) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele s și t permit accesul la câte un șir de cel mult 50 de caractere; inițial t accesează un șir vid, iar s un șir ce memorează, în această ordine, numele și prenumele unui profesor, separate printr-un spațiu și formate din litere mari și mici ale alfabetului limbii engleze. Scrieți o secvență de instrucțiuni C/C++ în urma executării căreia variabila t accesează șirul format, în această ordine, din titlu (Prof.), urmat de prenume și nume, separate prin câte un spațiu, ca în exemplu. Declarați eventuale alte variabile necesare. Exemplu: dacă s accesează șirul POP Grigore, atunci t accesează șirul Prof. Grigore POP (6p.)

Arată baremul

3. Pentru rezolvare corectă - 6p. -determinare a șirului cerut (*) - 5p. -declarare a eventualelor variabile, corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui cuvânt într-un șir, utilizare a unei constante de tip șir de caractere pentru titlu, adăugare/inserare a unui subșir într-un șir, cuvinte și simboluri suport adăugate/păstrate, obținere a șirului în memorie) conform cerinței. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila m memorează date despre o mașină de epocă: anul fabricației și data (ziua și luna) ultimei prezentări în cadrul unei expoziții de profil care a avut loc în anul curent. Știind că expresiile C/C++ de mai jos memorează anul fabricației mașinii (număr natural din intervalul [1880,1950]), ziua (număr natural din intervalul [1,31]) și luna (șir de cel mult 15 caractere) din anul curent la care a fost prezentată aceasta la o expoziție, scrieți definiția unei structuri, cu eticheta epoca, înregistrare care să permită memorarea datelor unei mașini de epocă, și declarați variabila m, de acest tip.

m.anFabricatie m.expo.zi m.expo.luna (6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Răspuns corect - 6p. -definire a structurii/tipului cerut (*) - 4p. -declarare a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă/nume, câmp de tip simplu – anul fabricației, câmp de tip structurat – data expoziției) conform cerinței. Se punctează câmpul de tip structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită separat cât și dacă este definită în cadrul structurii/înregistrării cerute.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila s memorează date ale fiecăruia dintre cei 30 de specialiști IT ai unei companii: date personale (codul numeric personal – CNP și anul nașterii) și anul angajării. Știind că expresiile C/C++ de mai jos reprezintă codul numeric personal (un șir de 13 caractere/cifre), anul nașterii, respectiv anul angajării (numere naturale din intervalul [1970,2025]) celui de al șaselea angajat, scrieți definiția unei structuri, cu eticheta specialist, înregistrare care să permită memorarea datelor unui specialist IT, și declarați corespunzător variabila s.

s[5].personal.CNP s[5].personal.anNastere s[5].anAngajare

(6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Pentru răspuns corect - 6p. -definire a structurii/tipului cerute (*) - 4p. -definire a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (definire de bază a unei structuri/înregistrări, etichetă/nume, câmp de tip simplu - anAngajare, câmp de tip structurat - personal) conform cerinței. Se punctează câmpul structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită separat cât și dacă este definită în cadrul structurii/înregistrării cerute. ¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele s1 și s2 permit accesarea câte unui șir de cel mult 50 de caractere, iar variabila n este de tip întreg. Scrieți șirul accesat prin variabila s1, precum și valoarea lui n, în urma executării secvenței alăturate. (6p.)

strcpy(s1,"parcarea"); strcpy(s2,strstr(s1,"car")); n=strlen(s2); strcpy(s1+n-2, s2+n-2);

Arată baremul

Răspuns: s1 = "parea"; n = 5

SUBIECTUL al II-lea, 3. Răspuns corect: parea 5 6p. Se acordă câte 3p. pentru fiecare dintre cele două valori conform cerinței.

Variabila i este de tip întreg, iar variabila a memorează un tablou bidimensional cu 4 linii și 24 de coloane, numerotate începând cu 0, cu elemente numere întregi. Fără a utiliza alte variabile decât cele menționate, scrieți o secvență de instrucțiuni în urma executării căreia să se afișeze pe ecran, separate prin câte un spațiu, indicii coloanelor cu proprietatea că atât primul, cât și ultimul lor element, au valoarea 2024. (6p.)

Arată baremul

3. Pentru rezolvare corectă - 6p. - determinare a valorilor indicate (*) - 4p. - afișare a datelor în formatul indicat - 1p. - corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (acces la primul element al unei coloane, acces la ultimul element al unei coloane, elemente suport analizate, indici suport determinați) conform cerinței.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii și 5 coloane, numerotate începând de la 0, având inițial toate elementele egale cu 1. Scrieți secvența de instrucțiuni C/C++ de mai jos, înlocuind punctele de suspensie cu instrucțiuni adecvate, dintre care cel mult patru de atribuire, astfel încât, în urma executării secvenței obținute, variabila a să memoreze tabloul alăturat.

for(i=0;i<5;i++) for(j=0;j<5;j++) ..................

Tabloul alăturat: 0 0 0 0 0 0 2 2 2 2 0 2 4 4 4 0 2 4 6 6 0 2 4 6 8

(6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

3. Pentru rezolvare corectă - 6p. - expresie de accesare a unui element al tabloului - 1p. - valori ale elementelor tabloului atribuite conform cerinței (*) - 4p. - secvență completă, corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 2p. pentru fiecare aspect (identificare a cel puțin unei relații între valoarea elementului și poziția acestuia în tablou, valori suport în corelare cu pozițiile elementelor utilizând numărul indicat de instrucțiuni de atribuire) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila p este de tip întreg, iar variabilele s1 și s2 permit memorarea câte unui șir de cel mult 30 de caractere. Scrieți ce se afișează în urma executării secvenței alăturate. (6p.)

strcpy(s1,"plantau fistic"); p=strchr(s1,' ')-s1; strcpy(s2,s1+p+1); strcpy(s1+p-1,s2+2); strcpy(s2+1,s1+2); cout<<p<<s2; | printf("%d%s",p,s2);

Arată baremul

Răspuns: 7fantastic

3. Pentru rezolvare corectă - 6p. 7fantastic Se acordă câte 2p. pentru fiecare aspect al cerinței (valoare numerică, primele 5 litere ale cuvântului, ultimele 4 litere ale cuvântului).

Variabilele i și j sunt de tip întreg, iar variabila a memorează un tablou bidimensional cu 5 linii și 5 coloane, numerotate de la 1 la 5, având inițial toate elementele nule. Fără a utiliza alte variabile decât cele menționate, scrieți secvența de instrucțiuni de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării secvenței obținute, variabila a să memoreze tabloul alăturat.

for(i=1;i<=5;i++) for(j=1;j<=5;j++) ..................

Tabloul alăturat: 4 3 2 1 0 4 3 2 1 1 4 3 2 2 2 4 3 3 3 3 4 4 4 4 4

(6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al II-lea, 3. Pentru rezolvare corectă - 6p. -acces la un element al tabloului - 1p. -atribuire a valorilor indicate conform cerinței (*) - 4p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect specific (valori ordonate descrescător pe linii, valori ordonate crescător pe coloane, poziționare față de diagonala secundară, corespondență elemente suport-valori) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Variabila z memorează date referitoare la un zbor al unui avion, derulat în totalitate în aceeași zi, pe teritoriul României: codul zborului, momentul de timp corespunzător aterizării (ora și minutul) și durata zborului, exprimată în minute. Toate valorile precizate sunt numere naturale: codul are maximum trei cifre, ora este un număr din intervalul [0,23], iar minutul este un număr din intervalul [0,59]. Știind că expresiile C/C++ de mai jos au ca valori codul zborului, respectiv ora la care a decolat avionul, scrieți definiția unei structuri cu eticheta zbor, care să permită memorarea datelor referitoare la un zbor de tipul precizat, și declarați corespunzător variabila z.

z.cod (60*z.aterizare.ora+z.aterizare.minut-z.durata)/60

(6p.)

Arată baremul

SUBIECTUL al II-lea, 3. Pentru rezolvare corectă - 6p. -definire a structurii/înregistrării (*) - 4p. -declarare a variabilei conform cerinței - 1p. -corectitudine globală a secvenței¹⁾ - 1p.

(*) Se acordă câte 1p. pentru fiecare aspect specific (definire principial corectă a unei structuri/înregistrări, câmpuri de tip simplu, câmp de tip structurat, etichetă/nume) conform cerinței. Se punctează câmpul de tip structurat, conform cerinței, atât dacă structura/înregistrarea corespunzătoare este definită separat cât și dacă este definită în cadrul structurii/înregistrării cerute.

1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Precizări generale ale subiectului: 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ă.

Într-o seră se folosesc vase pătrate, care conțin câte o singură floare (lalea, frezie sau narcisă). Vasele sunt așezate pe trei rânduri și sunt aliniate ca în exemplu. Patru flori de același tip formează un romb dacă vasele în care se află sunt dispuse în jurul unui alt vas, cu care fiecare are în comun câte o latură. Variabilele j și ok sunt întregi, iar variabila a este un tablou bidimensional cu 3 linii și 15 coloane, cu elemente de tip char, în care fiecare linie, în ordine, memorează succesiunea de flori aflate pe un rând al serei, notându-se cu L lalelele, cu F freziile și cu N narcisele. Fiecare linie a tabloului corespunde, în ordine, unui rând de vase din seră. Liniile și coloanele sunt numerotate începând de la 0. Scrieți secvența C/C++ de mai jos, înlocuind punctele de suspensie astfel încât, în urma executării secvenței obținute, variabila ok să aibă valoarea 1 dacă florile formează cel puțin un romb, sau valoarea 0 în caz contrar. Exemplu: în urma executării secvenței pentru tabloul de mai jos, ok=1 (sunt evidențiate 4 romburi).

ok=........; for(j=.....;j<.....;j++) ..................

L L L N L F F F N F N F N F F N L L L N L L F F F F N F N F F N L F L N F L F F N L F F N

(6p.)

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

SUBIECTUL al II-lea, 3. Pentru răspuns corect - 6p. -acces la un element al tabloului - 1p. -verificare a proprietății cerute (*) - 4p. -corectitudine globală a secvenței¹⁾ - 1p. (*) Se acordă câte 1p. pentru fiecare aspect (poziționare a elementelor care compun un romb, valoare comună a elementelor care compun un romb, algoritm de bază pentru verificarea unei proprietăți, elemente suport verificate) conform cerinței. 1) Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.

Reguli generale ale baremului:

Variabila s memorează un șir cu cel mult 20 de caractere, iar celelalte variabile sunt de tip întreg. Scrieți ce se afișează pe ecran în urma executării secvenței alăturate. (6p.)

k='a'-'A'; strcpy(s,"A realizat tot"); for(i=strlen(s)-1;i>=0;i--) if(strchr("aeiou",s[i])!=NULL) { s[i]=s[i]-k; cout<<s[i]; | printf("%c",s[i]); }

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

Răspuns: OAIAE

Reguli generale:

SUBIECTUL al II-lea, 3. Răspuns corect: OAIAE 6p. Se acordă câte 2p. pentru fiecare aspect specific (litere mari, vocale, litere suport) conform cerinței.

Variabila i este de tip întreg, iar variabila s permite memorarea unui șir de cel mult 20 de caractere. Scrieți șirul accesat prin variabila s în urma executării secvenței alăturate. (6p.)

strcpy(s,"ELITIST"); for(i=2;i<6;i++) if(i%2==0) s[i]=s[0]; else s[i]=s[1]+i/2;

Pagina din subiect cu figura sau tabelul itemului
Pagina din subiectul oficial.
Arată baremul

Răspuns: ELEMENT

3. Răspuns corect: ELEMENT - 6p. Se acordă numai 1p. dacă doar două litere sunt conform cerinței, numai 2p. dacă doar trei litere sunt conform cerinței, numai 3p. dacă doar patru litere sunt conform cerinței, numai 4p. dacă doar cinci litere sunt conform cerinței și numai 5p. dacă doar șase litere sunt conform cerinței sau dacă, în continuarea celor corecte, sunt precizate și alte caractere.

Exersează zilnic cu Academos

Aplicația pentru Evaluarea Națională și Bac. În curând pe:

  • App Store
  • Google Play