Sunteți pe pagina 1din 4

Recapitulare

1. Se consideră vectorul v=(7, 1, 2, 5, 8, 10, 12, 3, 0, 9, 6) ce urmează a fi sortat crescător prin


metoda bulelor. Care este rezultatul obținut după prima parcurgere a vectorului?
(a)v = (0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 12) (b)v = (1, 2, 5, 7, 8, 10, 3, 0, 9, 6, 12)
(c)v = (7, 1, 2, 5, 8, 10, 6, 3, 0, 9, 12) (d)v = (1, 7, 2, 5, 8, 10, 12, 3, 0, 9, 6)
2. Fie matricea pătratică M:

3. Fie următoarea definiție și declarație:


struct carte {int nr_pag; char titlu[31], autor[31];} x, y;
Să se scrie secvența de program care citește datele pentru cele două cărți x și y și afișează datele
cărții cu cele mai multe pagini. Dacă ambele cărți au același număr de pagini, se vor afișa datele
uneia dintre ele.

4. Se consideră un şir de caractere s de lungime maximă 20 , ce conţine cel puţin un caracter ’c’.
Care dintre următoarele secvenţe afişează poziţia primei apariţii a lui ’c’ în şirul de caractere s?
(a) cout<<strchr(s,’c’)-s; (b) cout<<strrchr(s,’c’); (c) cout<<strchr(s,’c’)-s-1; (d) cout<<strchr(s,’c’);

5. Un graf orientat cu 6 vârfuri, numerotate de la 1 la 6 are mulțimea arcelor ,(1,4), (1,6), (3,1),
(3,4), (3,6), (6,1)}. Indicați numărul de subgrafuri ale sale, pentru fiecare dintre acestea mulțimea
arcelor fiind {(1,6), (3,1), (3,6), (6,1)}.
(a)2 (b)3 (c)4 (d)5

6. Se consideră algoritmul următor, scris în pseudocod, unde x, p și n sunt numere naturale:


citește n (număr natural)
x←0
p←1
cât timp n > 0 execută
x ← x + (n mod 10 - n mod 2)*p
p ← p * 10
n ← n div 10
sfarsitcattimp
scrie x
Câte dintre numerele din intervalul *1,10000+ nu pot fi afișate folosind algoritmul dat?
(a) 2500 (b) 736 (c) 9376 (d) 624
7. Care este numărul maxim de muchii pentru un lanț elementar într-un arbore cu rădăcină ce are
1093 de noduri, în care fiecare nod intern are exact 3 fii?
(a) 18 (b) 12 (c)14 (d)16
8. Se consideră toate șirurile de lungime l=(1, 2, 3) formate din litere din mulțimea ,e, f, g, h, i}.
Precizați câte dintre aceste șiruri au elementele ordonate strict crescător (alfabetic) și un număr
impar de vocale.
(a)14 (b)10 (c)28 (d)7
9. Un graf neorientat are 40 de noduri și 5 componente conexe, fiecare dintre acestea fiind arbore.
Indicați numărul de muchii ale grafului.
(a) 33 (b) 35 (c) 39 (d) 41
10. Fie G=(X, U) un graf neorientat, complet, cu 20 de noduri. Care este numărul maxim de muchii
care pot fi eliminate astfel încât G să aibă un ciclu elementar care conține toate nodurile?
(a)95 (b)180 (c)20 (d)170
11. Se consideră subprogramul f având definiţia de mai jos. Stabiliți valoarea variabilei n de tip
întreg știind că, la apelul f(n), subprogramul returnează valoarea 2014?
int f(int x)
{ if (x>=5)
return f(x-1)+x;
return 2*x;
}
(a) 16 (b) 30 (c) 62 (d) 63
12. Pentru reprezentarea unui graf orientat G se utilizează matricea de adiacență. Precizați care este
suma elementelor din această matrice dacă graful are 20 de noduri și 30 de arce.
(a)20 (b)30 (c)60 (d)90
13. Se generează în ordine lexicografică toate tripletele vocală-consoană-vocală formate cu literele
mari A,B,C,D,E: ABA, ABE, ACA, ACE, ADA, ADE, EBA, EBE, ECA, ECE, EDA, EDE. Dacă se
generează, folosind aceeași metodă și aceleași litere, toate tripletele consoană-vocală-consoană,
stabiliți care dintre următoarele variante este o secvență de triplete generate unul imediat după
celălalt:
(a) ACE ADA ADE (b) BEC BED CAB (c) BEC CEC DEC (d) DAD DAC DAB

14. Se consideră un șir de caractere s. Stabiliți rezultatul afișării pe ecran, în urma executării
următoarei secvențe de program:
char s[15]="ABCDEFG", *p, x[15];
p=s; p+=4;
strcpy(x,s+2);
strcat(x,p);
cout<<x;
(a) ABCEFG (b) BCDEFGDEFG (c) CDEFGEFG (d) EFGEFG
15. Fie vectorul v și funcția recursivă f:
int v[10]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
void f(int x)
{
if(x<9)
{
v[x]=0;
f(v[x+1]);
}
}
Cum va arăta vectorul, dacă funcția f primește la apel valoarea 1?
(a)0 2 0 4 0 8 0 10 (b)1 0 3 0 5 0 7 0 9 0 (c)0 0 0 0 0 0 0 0 0 0 (d) 1 0 3 0 5 0 7 0 9 10

16. Se consideră următoarea secvență de cod. Identificați ce se va afișa dacă de la tastatură se vor
introduce, în ordine, șirurile de caractere student, carte și birou:
char a[256], b[256]; int i;
strcpy(b,"");
for(i=0;i<3;i++)
{
cin>>a;
strcat(b, a+i);
}
cout<<b;
(a)scb (b) studencartbiro (c) studentarterou (d) studentcartbir

17. Un număr natural nenul se numește subperfect dacă este strict mai mic decât suma divizorilor
săi proprii (divizori naturali diferiți de 1 și de el însuși). Exemplu: 12 este număr subperfect
pentru că 12<2+3+4+6. Se consideră subprogramul subperfect, cu doi parametri, a și b, prin care
primeşte câte un număr natural (2≤a<b≤109). Subprogramul afișează pe ecran, separate prin
câte un spațiu, în ordine descrescătoare, toate numerele subperfecte din intervalul *a,b+. Dacă în
interval nu există astfel de numere, subprogramul afișează pe ecran mesajul nu exista. Scrieţi
definiţia completă a subprogramului. Exemplu: pentru a=10 și b=20, se afișează pe ecran: 20 18
12.

18. Fişierul numere.in memorează cel mult 1000000 de numere naturale cu cel mult nouă cifre.
Numerele sunt ordonate strict crescător şi separate prin câte un spațiu. Se consideră şirul 1, 4, 7
.... definit astfel: f1=1, f2=4 şi fn=2·fn-1-fn-2, pentru n>2. Se cere să se afişeze pe ecran numerele
din fişier care sunt termeni ai şirului. Numerele sunt afişate în ordine strict crescătoare, separate
prin câte un spațiu. Dacă nu există astfel de numere se afişează pe ecran mesajul Nu exista.
Pentru determinarea numerelor cerute se utilizează un algoritm eficient din punctul de vedere
al memoriei şi al timpului de executare. Exemplu: dacă fişierul numere.in conține numerele 1 2 5
7 17 30 31, se afişează pe ecran numerele 1 7 31.
Răspunsuri
1)b 2)b 3)- 4)a 5)c 6)c 7)b 8)a 9)b 10)d 11)d 12)b 13)b 14)c 15)d 16)c 17)- 18)-