Documente Academic
Documente Profesional
Documente Cultură
a. 720 b. 16 c. 45 d. 360
7. Func ia s realizeaz interschimbarea valorilor variabilelor a i b prin apelul s(a,b). Care este
defini ia corect a func iei s?
a. void s(int x,int y) {int z=y; y=x; x=y; }
b. void s(int x,int y) { x=y+x; x=y-x; y=y-x; }
c. void s(int &x,int &y){ x=x-y; y=x+y; x=y-x; }
d. void s(int &x,int &y) { x=y+x; x=y-x; y=y-x; }
8. Numrul de grafuri orientate cu n vârfuri este:
a. b. 2 n ( n − 1) c. n ( n − 1) d. 2n
2n
2 2
2. Se cite te de la tastatur un numr natural n (n≤100) i apoi n numere din mul imea {1, 2, 3}. Se
cere s se afi eze cele n valori citite în ordine cresc toare.
a) Descrie i pe scurt un algoritm de rezolvare al problemei, eficient din punct de vedere al spa iului de
memorie utilizat i al timpului de executare, explicând în ce const eficien a metodei. (2p.)
b) Scrie i programul C/C++ corespunz tor algoritmului descris. (8p.)
Exemplu. Pentru n=19 i valorile 3 3 3 3 2 1 2 1 3 2 1 3 2 1 1 3 3 2 3 se va afi a pe
ecran irul 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 3 3.
3. Prima linie a fi ierului BAC.TXT con ine dou numere naturale m i n (1<=n,m<=100) iar
urmtoarele m linii câte n numere întregi cu maxim 4 cifre fiecare, separate prin câte un spa iu. Se
cere s se afi eze pe ecran câte din cele m linii din fi ier sunt simetrice. Spunem c o linie a fi ierului
este simetric dac elementele egal dep rtate de capetele liniei respective sunt egale (primul
element de pe linie este egal cu ultimul element al liniei, al doilea cu penultimul etc.)
De exemplu dac fi ierul BAC.TXT are urm torul con inut
3 5
15 3 0 3 15
5 9 1 9 5
6 8 20 8 3
atunci se va afi a pe ecran valoarea 2 (primele dou din cele m linii sunt simetrice). (10p.)
8. Care dintre urmtoarele reprezint o declarare corect pentru o variabil x care memoreaz
simultan numele i vârsta a maximum 30 de elevi?
a. typedef struct {char nume[30]; int varsta;} x;
b. char x.nume[30]; int x.varsta[30];
c. struct {char nume[30]; int varsta;} x;
d. struct {char nume[30]; int varsta;} x[30];
1. Subprogramul permutare prime te printr-un parametru k un numr natural mai mic decât 10, printr-
un parametru n un num r natural cu maximum 9 cifre i returneaz , prin acela i parametru n,
num rul ob inut prin permutarea circular spre stânga, cu k pozi ii, a cifrelor numrului n. De exemplu
pentru k=3 i n=1234567, n va deveni 4567123.
Scrie i defini ia complet a subprogramului permutare. (10p.)
Pentru dou iruri de caractere cu maximum 250 de caractere fiecare (litere mici ale alfabetului
2.
englez), cu caracterele în ordine alfabetic, introduse de la tastatur, se cere s se afi eze pe ecran
un al treilea ir, format din toate caracterele primelor dou, a ezate în ordine alfabetic. Alege i un
algoritm de rezolvare, eficient din punct de vedere al timpului de executare. De exemplu pentru
sir1=”ampstz” i sir2=”bfgostx” se va afi a abfgmopssttxz.
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 metodei descrise. (8p.)
O matrice ptrat este împr it de cele dou diagonale în patru zone notate A, B, C,
3.
D, conform figurii al turate. Elementele de pe cele 2 diagonale nu apar in nici uneia
dintre cele 4 zone. Scrie i un program C/C++ care cite te de la tastatur un num r
natural n (n<=20) i formeaz în memorie o matrice ptrat cu n linii i n coloane, în
care elementele de pe cele dou diagonale sunt egale cu 1, elementele care apar in
zonelor A i B sunt egale cu 2, iar elementele care apar in zonelor C i D sunt egale cu 3.
Elementele matricei vor fi scrise in fi ierul bac.out, câte o linie a matricei pe câte o linie
a fi ierului cu spa ii între elementele fiec rei linii.
De exemplu pentru n=5 fi ierul bac.out va con ine: 1 2 2 2 1
3 1 2 1 3
3 3 1 3 3 (10p.)
3 1 2 1 3
1 2 2 2 1
comun al numerelor a i b, stabili i care dintre urm toarele variante atribuie variabilei m valoarea
celui mai mare divizor comun al numerelor a,b i c.
a. m=cmmdc(cmmdc(a,b),c); b. m=cmmdc(a,b)*c;
c. m=cmmdc(a,b,c); d. m=cmmdc(a,b)/c;
5. Ce valoare trebuie s primeasc la apel parametrul formal int ex(int n)
n, pentru ca func ia alturat s returneze valoarea 21? {if(n==0) return 0;
else return n+ex(n-1);}
a. 7 b. 8 c. 4 d. 6
6. Intr-o list liniar simplu înlan uit alocat dinamic fiecare element con ine în câmpul nume numele i
prenumele unei persoane, iar în câmpul urm adresa elementului urm tor. tiind c variabila x
memoreaz adresa unui element din list , cum proced m pentru a verifica dac valoarea câmpului
nume al variabilei x este egal cu irul de caractere „Popescu Ion”?
a. if(x->nume==”Popescu Ion”)
b. if(strcmp(x,”Popescu Ion”)==0)
c. if(strcmp(x->nume,”Popescu Ion”)==0)
d. if(x.nume==”Popescu Ion”)
7. Care este gradul maxim posibil al unui nod dintr-un arbore cu n noduri?
a. n-1 b. n/2 c. 2 d. n
8. Problema generrii tuturor numerelor de n cifre, folosind doar cifrele 1, 5 i 7, este echivalent cu
problema:
a. gener rii produsului cartezian a 3 mul imi cu câte n elemente fiecare
b. gener rii aranjamentelor de n elemente luate câte 3
c. gener rii produsului cartezian a n mul imi cu câte 3 elemente fiecare
d. gener rii combinrilor de n elemente luate câte 3
1. Scrie i programul C/C++ care afi eaz pe ecran, separate prin virgul , toate numerele naturale de
patru cifre care au prima cifr strict mai mic decât a doua, a doua cifr strict mai mare decât a treia
i a treia cifr strict mai mic decât a patra.
2. Pentru dou numere naturale n i m cu maximum nou cifre fiecare, citite de la tastatur, numere
care au cifrele în ordine cresctoare, se cere s se afi eze pe ecran cel mai mare num r care se
poate forma cu toate cifrele numerelor n i m . De exemplu pentru n=35679 i m=123789 se va
tipri 99877653321. Alege i un algoritm eficient de rezolvare.
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.)
2. Subprogramul minim, primește printr-un parametru p adresa unui element oarecare al unei liste
circulare simplu înlănţuită, nevidă, alocată dinamic, care conţine numere întregi cu cel mult 3 cifre
fiecare și returnează valoarea elementului minim din listă.
a) Scrieţi definiţia tipurilor de date utilizate. (2p.)
b) Scrieţi definiţia completă a subprogramului minim. (8p.)
O matrice pătrată, cu 2*n-1 linii și 2*n-1 coloane, este împărţită în patru zone notate
3.
A, B, C, D, de linia n și coloana n, conform figurii alăturate. Elementele liniei n și
coloanei n nu aparţin nici uneia dintre zone. Scrieţi programul C/C++ care citește de la
tastatură două numere naturale n și m (1<n≤ ≤10,1000≤ ≤m<10000), formează în
memorie și apoi afișează pe ecran o matrice pătrată cu 2*n-1 linii și 2*n-1 coloane, în
care elementele de pe linia n și coloana n sunt egale cu 0, elementele care aparţin
zonei A sunt egale cu cifra unităţilor numărului m, elementele care aparţin zonei B sunt
egale cu cifra zecilor numărului m, elementele care aparţin zonei C sunt egale cu cifra
sutelor numărului m și elementele care aparţin zonei D sunt egale cu cifra miilor
numărului m.
De exemplu pentru n=3 și m=3681 se va afișa: 1 1 0 8 8 (10p.)
1 1 0 8 8
0 0 0 0 0
6 6 0 3 3
6 6 0 3 3