Documente Academic
Documente Profesional
Documente Cultură
8. Unui pointer generic i se poate atribui valoarea unui pointer cu tip?(nu,fara o conversie
explicita)
9. Care este legătura între tablouri şi pointeri?
10. De ce numele unui tablou este rvalue?(nu poate aparea decat in partea dreapta a unei expresii
de atribuire)
11. Ce restricţii impune operaţia de scădere a doi pointeri?(permisa intre un pointer de obiecte
si un intreg,caz particular pointer de date si un intreg)
1. Asemănări între transferul parametrilor unei funcţii prin pointeri şi prin referinţă.
2. Caracteristicile modului de transfer a parametrilor unei funcţii prin pointeri.
5. Care este diferenţa între antetul unei funcţii şi prototipul acesteia?(in antet se specifica
la tipul valorii returnate int,sau nu se specifica nimic;)
10. Ce este domeniul de vizibilitate a unei variabile?(portiunea de cod in care o var este
accesibila)
11. Ce este prototipul unei funcţii?(antet din care lpsesc numele parametrilor formali)
13. Ce loc ocupă declaraţiile variabilelor locale în corpul unei funcţii?(orice ordine)
21. Cine determină timpul de viaţă şi domeniul de vizibilitate ale unei variabile?
22. Comparaţie între declararea şi definirea funcţiilor.
23. Diferenţe între modurile de transfer a parametrilor prin valoare şi prin referinţă.
29. Parametrii formali ai unei funcţii sunt variabile locale sau globale?
30. Transferul parametrilor prin valoare.
33. Prin ce se deosebesc variabilele cu clasa de memorare register faţă de cale cu clasa de
memorare auto?
34. Diferenţe între modurile de transfer a parametrilor unei funcţii prin pointeri şi prin
referinţă.
Probleme
1. Reprezentaţi algoritmul lui Euclid (pentru calculul celui mai mare divizor comun a 2
numere întregi) prin schemă logică şi prin pseudocod.
2. Proiectaţi un algoritm care să rezolve o ecuaţie de gradul I (de forma ax + b = 0), unde
a,b sunt numere reale. Discuţie după coeficienţi.
3. Proiectaţi un algoritm care să rezolve o ecuaţie de gradul II (de forma ax 2 + bx + c = 0),
unde a,b,c sunt numere reale. Discuţie după coeficienţi.
4. Proiectaţi un algoritm care să testeze dacă un număr întreg dat este număr prim.
5. Proiectaţi un algoritm care să afişeze toţi divizorii unui număr întreg citit de la tastatură.
6. Proiectaţi un algoritm care să afişeze toţi divizorii primi ai unui număr întreg.
7. Proiectaţi un algoritm care calculează factorialul unui număr natural dat (0!=1).
-i - 5 * j >= k + 1
3 < j < 5
i + j + k == -2 * j
x && i || j - 3
6. Care dintre următoarele declaraţii sunt incorecte, şi de ce?
int lungime cerc, arie, 2latime;
double greutate=9,34;
long d=8.78; long double;
7. Ce operaţie logică şi ce mască trebuie să folosiţi pentru a converti codurile ASCII ale
literelor mici în litere mari? Dar pentru conversia inversă?
8. O deplasare la dreapta cu 3 biţi este echivalentă cu o rotaţie la stânga cu câţi biţi?
9. Să se seteze pe 1 toţi biţii dintr-un octet, cu excepţia bitului cel mai semnificativ.
10. Să se scrie un program care citeşte o valoare întreagă. Să se afişeze un mesaj care să
indice dacă numărul citit este par sau impar.
11. Să se citeasca două valori întregi. Să se calculeze şi să se afişeze restul împărţirii celor
două numere.
47
12. Să se scrie un program care citeşte valorile a două numere întregi. Să se calculeze şi
afişeze suma celor două numere, produsul lor, câtul întreg al împărţirii numerelor şi
câtul real al acestora.
13. Se ştie că un an bisect este multiplu de 4, nu este multiplu de 100, dar este multiplu
de
400. Să se scrie o expresie care are valoarea 1 dacă o valoare întreagă (introdusă de la
tastatură) reprezintă un an bisect, sau 0 în caz contrar.
3. Să se calculeze aria unui triunghi, cunoscându-se mărimea laturilor sale. Numerele care
reprezintă mărimile laturilor vor fi introduse de utilizator. Se va testa mai întâi dacă cele
3 numere reprezentând mărimea laturilor pot forma un triunghi (a<= b+c, b<=c+d, c<=
a+b).
if (n>=90)
if (x!=0)
int b= n/x;
xy ( x y ) 2
e x− 3 , x∈[0, 1)
48
10. Să se scrie un program care calculează şi afişează maximul a 3 numere reale (a, b şi c)
citite de la tastatură.
11. Să se scrie un program care calculează şi afişează minimul a 3 numere reale (a, b şi c)
citite de la tastatură.
12. Să se citească 2 caractere care reprezintă 2 litere mari. Să se afişeze caracterele citite în
ordine alfabetică.
13. Să se citească 3 caractere care reprezintă 3 litere mici. Să se afişeze caracterele citite în
ordine alfabetică.
14. Să se scrie un program care citeşte o cifră. În funcţie de valoarea ei, să se facă următorul
calcul: dacă cifra este 3, 5 sau 7 să se afişeze pătratul valorii numerice a cifrei; dacă cifra
este 2, 4 sau 6 să se afişeze cubul valorii numerice a cifrei; dacă cifra este 0 sau 1 să se
afişeze mesajul "Valori mici"; altfel., să se afişeze mesajul "Caz ignorat!".
15. Fie şirul lui Fibonacci, definit astfel:f(0)=0, f(1)=1, f(n)=f(n-1)+f(n-2) pentru n>1. Să
se scrie un program care implementează algoritmul de calcul al şirului Fibonacci.
16. Să se calculeze valoarea polinomului Cebîşev de ordin n într-un punct x dat, cunoscând
17. Să se citească câte 2 numere întregi, până la întâlnirea perechii (0, 0). Pentru fiecare
pereche de numere, să se calculeze şi să se afişeze cel mai mare divizor comun.
18. Se citesc câte 3 numere reale, până la întâlnirea numerelor 9, 9, 9. Pentru fiecare triplet
de numere citit, să se afişeze maximul.
22. Să se citească un număr întreg format din 4 cifre (abcd). Să se calculeze şi să se afişeze
valoarea expresiei reale: 4*a + b/20 -c + 1/d.
23. Să se scrie un program care afişează literele mari ale alfabetului în ordine crescătoare,
iar literele mici - în ordine descrescătoare.
24. Să se scrie un program care generează toate numerele perfecte până la o limită dată,
LIM. Un număr perfect este egal cu suma divizorilor lui, inclusiv 1 (exemplu: 6=1+2+3).
25. Să se calculeze valoarea sumei urmatoare, cu o eroare EPS mai mică de 0.0001:
S=1+(x+1)/ 2! + (x+2)/ 3! + (x+3)/ 3! + ... , unde 0<=x<=1, x citit de la tastatură.
26. Să se genereze toate numerele naturale de 3 cifre pentru care cifra sutelor este egală cu
suma cifrelor zecilor şi unităţilor.
27. Să se citească câte un număr întreg, până la întâlnirea numărului 90. Pentru fiecare
numar să se afişeze un mesaj care indică dacă numărul este pozitiv sau negativ. Să se
afişeze cel mai mic număr din şir.
49
28. Să se genereze toate numerele naturale de 3 cifre pentru care cifra zecilor este egală cu
diferenţa cifrelor sutelor şi unităţilor.
c) Să se calculeze şi să se afişeze numărul de litere mari, litere mici şi cifre din matrice;
a) Să se afişeze matricea B;
triunghiurile haşurate:
a) Să se afişeze matricea C;
matricea unitate;
4. Să se rescrie programele care rezolvă exerciţiile din capitolul 3, folosind funcţii (pentru
calculul factorialului, aflarea celui mai mare divizor comun, ordonarea lexicografică a
caracterelor, etc). Utilizaţi funcţiile de intrare/ieşire printf şi scanf.
5. Să se scrie un program care citeşte câte două numere, până la întâlnirea perechii de
numere 0, 0 şi afişează, de fiecare dată, cel mai mare divizor comun al acestora,
folosind o funcţie care îl calculează.
7. Secvenţele următoare sunt corecte din punct de vedere sintactic? Dacă nu, identificaţi
sursele erorilor.
51
9. Implementaţi propriile versiuni ale funcţiile de lucru cu şiruri de caractere.
10. Să se calculeze valoarea funcţiei g, cu o eroare EPS (a, b, EPS citite de la tastatură):
11. Implementaţi funcţii iterative şi recursive pentru calculul valorilor polinoamelor Hermite
12. Să se scrie un program care generează toate numerele palindrom, mai mici decât o
valoare dată, LIM. Un număr palindrom are cifrele simetrice egale (prima cu ultima, a
doua cu penultima, etc). Se va folosi o funcţie care testează dacă un număr este
palindrom.
13. Fie matricea C (NXN), N<=10, ale cărei elemente sunt date de relaţia:
j
k 0
11. Să se creeze o bibliotecă de funcţii pentru lucrul cu matrici, care să conţină funcţiile
utilizate frecvent (citirea elementelor, afisarea matricii, adunare a două matrici, etc). Să
se folosească această bibliotecă.
12. Să se creeze o bibliotecă de funcţii pentru lucrul cu vectori, care să conţină funcţiile
utilizate frecvent. Să se folosească această bibliotecă.
52
13. Să se calculeze cel mai mare divizor comun
recursivă relaţia de recurenţă: cmmdc(a, b) =
a două numere, folosind într-o funcţie
cmmdc(b, a%b).
53
14. Folosind o funcţie recursivă, să se inverseze un şir de caractere terminat cu blanc.
15. Să se scrie un program care determină cel mai mare divizor comun şi cel mai mic multiplu
comun a n numere naturale, nenule. Se va utiliza calculul recurent.
19. Fie n natural, citit de la tastatură (n<100). Să se determine toate tripletele de numere (x, y,