Sunteți pe pagina 1din 2

Test 2

DE PREGATIRE PENTRU EXAMENUL DE BACALAUREAT – 2021


Proba E.d)
Proba scrisă la INFORMATICĂ
PROBA E, limbajul C++
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 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 arc/muchie are extremități distincte și oricare două arce/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 întregi nenule
memorate în variabilele întregi a și b sunt ambele divizibile cu 10.
a. a%10+b%10==0 b. a%10-b%10==0
c. !(a%2!=0)&& a%5==0 && b%10==0 d. (a-b)%10==0
2. Utilizând metoda backtracking se generează toate posibilitățile de a scrie toate numerele naturale
cu trei cifre, care conțin minim o cifră pară, utilizând cifre distincte din mulțimea {0,1,2,3,
...,9}. Indicați câte numere s-au generat.
a. 588 b. 594 c. 610 d. 881
3. Un arbore cu 7 noduri, numerotate de la 1 la 7, este reprezentat prin vectorul de tați
{0,1,1,1,2,2,3}. Indicați numărul de noduri din arbore care au gradul par.
a. 0 b. 1 c. 2 d. 6
4. Un graf neorientat are 12 noduri și 10 muchii. Gradul fiecărui nod este nenul. Indicați care este
numărul maxim de componente conexe ale grafului.
a. 1 b. 4 c. 5 d. 6
5. Subprogramul f este definit alăturat. void f (int n)
Indicați câte cifre de 1 se afișează după { if (n!=0)
{f(n/2);
aplelul f(511). cout<<n%2;}}

a. 8 b. 9 c. 10 d. 11
SUBIECTUL al II-lea (40 de puncte)

Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.


1. Algoritmul alăturat este reprezentat în pseudocod.
S-a notat cu a%b restul împărțirii numărului natural a la citeşte n
numărul natural nenul b și cu [c] partea întreagă a (număr natural)
numărului real c. t0
a. Scrieţi valoarea afişată dacă se citeste ┌pentru i0,[n/2] execută
numărul 20. (6p.) │xi
b. Scrieţi cel mai mic, respectiv cel mai │┌repeta
mare număr natural cu maxim 2 cifre ││x[x/10]
care poate să fie citit astfel ││tt+1
încât, în urma executării algoritmului, │└pana cand x=0
să se afișeze valoarea 9 . (6p.) └■
scrie t%10
Scrieţi programul C/C++ corespunzător algoritmului dat.
c.
(10p)

Scrieți în pseudocod un algoritm echivalent în care să


d.
înlocuiți structura pentru... execută cu o structură
repetitivă cu test final (6p)

2. 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 egale cu 0. 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 de mai jos. (6p.)
for(j=0; j<5; j++)
for(i=0; i<5; i++)
A[i][j]=...

1 0 0 0 0
2 1 0 0 0
3 1 1 0 0
4 2 1 1 0
5 2 1 1 1

3. Variabila t memorează simultan date despre fiecare dintre cele 20 de țări: un cod, t[0].cod
reprezentând o variabila de tip caracter, denumirea țării (un șir cu maxim 80 de t[0].den
caractere) și ora curentă (numere naturale cu maxim 2 cifre). Scrieți definiția unei t[0].timp.h
structuri cu eticheta tara, care permite memorarea datelor descrise anterior, știind că t[0].timp.m
prima țară se accesează după modelul descris alăturat. Declarați corespunzător variabila t[0].timp.s
t. (6p.)

Subiectul III (30 de puncte)


Scrieţi pe foaia de examen răspunsul pentru fiecare dintre cerinţele următoare.
1. Scrieţi în limbajul C/C++ definiţia completă a subprogramului caut care primeşte prin parametrul n, un număr
natural cu cel mult 8 cifre şi furnizează tot prin n cifra care apare de cele mai multe ori în numărul n. Dacă există mai
multe astfel de cifre, se furnizează cea mai mare dintre ele.
Exemplu. Dacă prin n se primește valoarea 32132, în urma apelului subprogramului caut, n va furniza
valoarea 3. (10p.)
2. Se consideră un text cu cel mult 120 de caractere, format din cel puțin două cuvinte, în care cuvintele sunt formate
din litere mici sau mari ale alfabetului englez și sunt separate prin câte un spațiu. În text nu exista mai mult de două
cuvinte situate pe poziții succesive, care încep cu literă mare. Scrieți un program C/C++ care citește de la tastatură
un text de tipul menționat mai sus și îl afișează pe ecran pe rânduri separate, după regula următoare: pe fiecare linie
încap cel mult 5 cuvinte, iar cuvintele situate pe poziții alăturate care încep cu majusculă nu se pot scrie pe rânduri
diferite. Pentru fiecare rând, programul încearcă să afișeze cât mai multe cuvinte în limita celor 5 permise. (10p.)
Exemple:
pentru textul
Noi vom ajunge la Velico Tarnovo impreuna cu Egor si Ioana
se obține textul
Noi vom ajunge la
Velico Tarnovo impreuna cu Egor
si Ioana
iar pentru textul
Universitatea Bucuresti sau Universitatea Politehnica este de elita
se afișează pe ecran
Universitatea Bucuresti sau Universitatea Politehnica
este de elita
3. Fişierul bac.txt conține un șir cu minim 2 și maxim 1000000 de numere naturale din intervalul
[0,10000], separate prin câte un spațiu.
Se cere să se afișeze pe ecran mesajul da dacă șirul are proprietatea că între oricare două numere x și y din șir
valoarea absolută (modulul) a diferenței lor este cel mult egală cu numărul de numere din șir, sau mesajul nu, în
caz contrar. Proiectați un algoritm eficient din punctul de vedere al timpului de executare și al spațiului de
memorie.
Exemple: Dacă fișierul bac.txt conține
4 4 3 3 4 3 2
se afișează pe ecran mesajul da
Dacă fișierul bac.txt conține
4 6 8
se afișează pe ecran mesajul nu
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.)

S-ar putea să vă placă și