Documente Academic
Documente Profesional
Documente Cultură
1. Scrie i programul C/C++ care cite te de la tastatur un ir cu maximum 255 de caractere format
numai din litere mici i mari ale alfabetului englez i îl scrie în fi ierul bac.out “codificat” conform
urmtoarei reguli: dac numrul de vocale (a,e,i,o,u,A,E,I,O,U) din ir este mai mare sau egal cu
num rul de consoane din ir, fiecare vocal se va înlocui cu caracterul urmtor din alfabetul englez,
altfel fiecare consoan se va înlocui cu caracterul precedent din alfabetul englez. De exemplu, pentru
irul bacalaureat, fi ierul va con ine irul bbcblbvrfbt deoarece irul ini ial are 6 vocale i 5
consoane; pentru irul basca, fi ierul va con ine irul aarba deoarece irul ini ial are 2 vocale i 3
consoane. (10p.)
2. Se cite te un numr natural k (1≤k≤4). S se afi eze toate palindroamele de 5 cifre (numere
naturale de forma c1c2c3c4c5 pentru care c1=c5 i c2=c4), cu proprietatea c diferen a în valoare
absolut dintre oricare dou cifre al turate este egal cu k (|ci-ci+1|=k, pentru orice 1≤i≤4). De
exemplu, pentru k=2, un astfel de numr este 53135.
a) Descrie i în limbaj natural o metod de rezolvare a problemei, eficient din punct de vedere al
timpului de executare (5-6 rânduri). (2p.)
b) Scrie i programul C/C++ corespunz tor metodei descrise. (8p.)
3. Subprogramul nrprim prime te prin parametrul n un numr întreg cu cel mult 4 cifre i returneaz
valoarea 1 dac n este numr prim, respectiv 0 în caz contrar. Subprogramul primulnrprim
prime te printr-un parametru p adresa unui element oarecare al unei liste liniare simplu înl n uite,
alocat dinamic, în care fiecare element re ine în câmpul număr un num r întreg cu cel mult 4 cifre i
în câmpul urm adresa elementului urm tor. Subprogramul returneaz adresa primului numr prim
gsit, parcurgând lista de la nodul p pân la sfâr it, sau valoarea NULL, dac nu este g sit nici un
num r prim pân la sfâr itul listei. Subprogramul primulnrprim va utiliza apeluri ale
subprogramului nrprim.
a) Scrie i numai antetul subprogramului nrprim. (2p.)
b) Scrie i defini ia tipurilor de date necesare i defini ia complet a subprogramului primulnrprim.
(8p.)
8. Care este valoarea ini ial a variabilei n astfel încât, la sfâr itul c=0;
executrii secven ei al turate, variabila întreag c s aib valoarea 3? while (n%10==0)
{n=n/10;c++;}
a. 123 b. 10020 c. 5000 d. 10001
1. Subprogramul sumdiv prime te prin parametrii a i b dou numere naturale cu cel mult 4 cifre
fiecare i returneaz suma tuturor divizorilor naturali ai numerelor a i b. Dac un numr d este
divizor atât pentru a cât i pentru b va fi adunat de 2 ori la sum . De exemplu, pentru a=4 i b=6,
func ia va returna valoarea 19 (deoarece 19=1+2+4+1+2+3+6).
a) Srie i numai antetul subprogramului sumdiv. (2p.)
b) Scrie i programul C/C++ care cite te dou numere naturale a i b (a≤b) cu cel mult 4 cifre
fiecare i, folosind apeluri ale subprogramului sumdiv, tipre te toate numerele prime din intervalul
[a,b]. (8p.)
2. Fiierul matrice.txt con ine pe primul rând dou valori naturale m i n (1≤n≤100, 1≤m≤100),
reprezentând numrul de linii i respectiv de coloane ale unei matrice a, iar pe urmtoarele m linii câte n
valori întregi cu maximum 4 cifre fiecare, separate prin câte un spa iu, reprezentând elementele matricei
a. Se cere s se afi eze pe ecran un ir de 2*(n+m)-4 numere ordonate cresctor, ir format din
elementele aflate pe chenarul exterior al matricei a. Chenarul exterior este format din prima linie, ultima
linie, prima coloan i ultima coloan. Alege i un algoritm de rezolvare eficient din punct de vedere al
gestionrii memoriei.
De exemplu, dac fiierul matrice.txt con ine: 3 4
6 7 1 9
3 0 2 8
5 4 8 5
se va afia: 1 3 4 5 5 6 7 8 8 9
a) Descrie i strategia de rezolvare i justifica i eficien a algoritmului ales, folosind limbajul natural (5-6
rânduri). (2p.)
b) Scrie i programul C/C++ corespunz tor. (8p.)
Subprogramul cifre are un singur parametru prin care prime te un ir cu maximum 255 de
3.
caractere i tip re te caracterele numerice din ir, în ordinea în care se gsesc în ir. Scrie i defini ia
complet a subprogramului cifre. De exemplu, dac irul transmis ca parametru este
”ac56ghr12t9”, se va afia 56129.
Scrie i defini ia complet a subprogramului cifre. (10p.)
a. 1 b. 3 c. 0 d. 2
2. Care dintre secven ele de mai jos conduce la memorarea în variabila max a celei mai mari dintre
cele n valori întregi re inute în tabloul unidimensional a (în care a[0] este primul element) ?
a. for(i=0;i<n-1;i++) if(a[i]>a[i+1])max=a[i];
b. for(i=0;i<n-1;i++)
if(a[i]>a[i+1]){max=a[i];a[i]=a[i+1];a[i+1]=max;}
max=a[n-1];
c. max=a[0];
for(i=1;i<n;i++) if(a[i]<max) max=a[i];
d. max=0;
for(i=0;i<n;i++)
if(a[i]>max)a[i]=max;
3. Se consider subprogramul F, definit alturat. Care este int F(int x){
valoarea expresiei F(11)? if(x%2==0) return x/2;
else return F(F(x-1));}
a. 2 b. 5 c. 1 d. 4
4. Care dintre urmtoarele iruri de numere reprezint gradele nodurilor unui arbore cu 5 noduri?
a. 1, 1, 3, 1, 0 b. 4, 1, 5, 1, 2
c. 4, 3, 2, 1, 1 d. 2, 1, 1, 3, 1
5. Având la dispozi ie gama celor 7 note muzicale, algoritmul de generare a tuturor succesiunilor
(melodiilor) distincte formate din exact 100 de note este echivalent cu algoritmul de generare a:
a. aranjamentelor b. parti iilor unei mul imi
c. permutrilor d. elementelor produsului cartezian
6. Matricea de adiacen al turat corespunde unui graf 0 1 0 0 1
neorientat care NU este de tip: 1 0 1 1 0
0 1 0 1 1
0 1 1 0 1
1 0 1 1 0
a. ciclic b. hamiltonian c. eulerian d. conex
7. Care dintre urmtoarele expresii este !((a<=b && a>=c) || a<=d)
echivalent cu expresia al turat?
a. a<=b || a>=c && a<=d b. a>b || a<c && a>d
c. a>b && a<c || a>d d. (a>b || a<c) && a>d
8. Se define te tipul struct punct {float x,y;}; (pentru a memora coordonatele carteziene -
abscisa i ordonata - ale unor puncte din planul xOy) i tabloul unidimensional a cu elemente de tip
punct. Care dintre expresiile de mai jos are valoarea 1 dac i numai dac punctul ale crui
coordonate sunt memorate în elementul din tablou aflat pe pozi ia i are abscisa i ordonata egale?
a. a[i]->x==a[i]->y b. x[a[i]]==y[a[i]]
c. a[i].x==a[i].y d. a.x[i]==a.y[i]
a. 2 b. 3 c. 1 d. 0
4. Variabila s a fost declarat astfel: char s[20]; Ce se afieaz dup executarea secven ei de mai jos?
strcpy(s,˝bacalaureat˝);
cout<<s[strlen(s)-4]; | printf(˝%c˝,s[strlen(s)-4]);
a. r b. e c. 17 d. 8
5. Se consider un tablou unidimensional a în care for (i=0;i<4;i++)
a[0]=4, a[1]=2, a[2]=5, a[3]=1, if (a[i]>a[i+1]){
a[4]=3. Care va fi con inutul s u dup aux=a[i];a[i]=a[i+1];a[i+1]=aux;
executarea secven ei al turate (în care }
variabilele i i aux sunt de tip int )?
a. a[0]=2, a[1]=4, a[2]=1, a[3]=3, a[4]=5
b. a[0]=4, a[1]=2, a[2]=5, a[3]=1, a[4]=3
c. a[0]=1, a[1]=2, a[2]=3, a[3]=4, a[4]=5
d. a[0]=4, a[1]=2, a[2]=1, a[3]=3, a[4]=5
6. tiind c p este un vector cu 3 componente întregi ( vector void G(int k)
declarat global), M este mul imea tuturor cifrelor nenule, iar {int i;
subprogramul tipar afi eaz valorile elementelor p[0],p[1] i for(i= ;i<= ;i++){
p[2], cu ce trebuie înlocuite simbolurile , i în defini ia p[k]=i ;
if(k==
)tipar();
func iei G astfel încât în urma apelului G(0) s se afi eze toate
else G(k+1);}
elementele produsului cartezian M×M×M?
}
a. =0 =10 =3 b. =1 =3 =9 c. =1 =9 =3 d. =1 =9 =2
7. Se consider vectorul de ta i al unui arbore oarecare t=(0,3,1,3,1), în care nodurile sunt
numerotate cu 1,2,3,4,5. Alege i afirma ia incorect :
a. nodurile 3 i 5 sunt fra i b. nodul 1 este r dcin
c. nodul 3 este fiul nodului 2 d. nodurile 2,4,5 sunt frunze
8. Se consider o coad în care ini ial au fost introduse, în aceast ordine, elementele 1 i 2:
Dac se noteaz cu AD(x) opera ia prin care se adaug informa ia x în coad , i cu EL()
opera ia prin care se elimin un element din coad, care este rezultatul executrii secven ei:
EL();AD(3);EL();AD(4);AD(5); ?
a. b. c. d.
a. 4 b. 5 c. 2 d. 3
6. Care este valoarea expresiei 7/5*5?
a. 0 b. 7 c. 5 d. 0.28
7. Se consider vectorul de ta i al unui arbore oarecare t=(0,3,1,3,1,5), în care nodurile sunt
numerotate de la 1 la 6. Alege i afirma ia corect :
a. nodurile 2, 4, 6 sunt fra i b. nodul 5 are gradul 1
c. nodul 3 este tat l nodului 1 d. nodurile 2, 4 i 6 sunt frunze
8. Aplicând metoda backtracking pentru a genera toate permutrile celor n elemente ale unei mul imi, o
solu ie se memoreaz sub forma unui tablou unidimensional x1,x2...xn. Dac sunt deja generate
valori pentru componentele x1,x2...xk-1, iar pentru componenta curent, xk (1<k<n), au fost
testate toate valorile posibile i nu a fost gsit niciuna convenabil, atunci:
a. se încearc alegerea unei noi valori pentru b. se încheie algoritmul
componenta xk-1
c. se încearc alegerea unei noi valori pentru d. se încearc alegerea unei valori pentru
componenta x1, oricare ar fi k componenta xk+1