You are on page 1of 39

LABORATOR 8

N.B. Laboratorul 8 cuprinde întrebările din Cursurile 1-3 care vor apare pe biletele de la examen.

ÎNTREBĂRI CURS 1: Limbaje de programare. Algoritmi

1. Limbajul de programare este riguros definit?


a. nu b. da c. doar limbajele de programare de nivel înalt d. doar limbajele de programare cod-maşină

2. Ce este vocabularul?
a. totalitatea regulilor de scriere corectă a programelor b. semnificaţia construcţiilor corecte din punct de
vedere sintactic c. codul programului d. totalitatea cuvintelor care pot fi folosite într-un limbaj de
programare

3. Ce este sintaxa?
a. codul programului b. totalitatea construcţiilor corecte c. totalitatea regulilor de scriere corectă a
programelor d. notația sistematică pentru descrierea unui proces

4. Ce este semantica?
a. notația sistematică pentru descrierea unui proces b. semnificaţia construcţiilor corecte din punct de
vedere sintactic c. totalitatea regulilor de scriere corectă a programelor d. codul unui program

5. Cum se numeşte notația sistematică pentru descrierea unui proces de calcul într-un computer?
a. limbaj de programare b. vocabular c. sintaxă d. semantică

6. Scrierea programului presupune specificarea exactă și detaliată a paşilor şi a ….. acestora pentru prelucrarea
datelor
a. semanticii b. ordinii c. sintaxei d. codului

7. Scrierea programului presupune specificarea exactă și detaliată a ….. şi a ordinii acestora pentru prelucrarea
datelor
a. paşilor b. cuvintelor c. octeţilor d. proceselor

8. Scrierea programului presupune specificarea exactă și detaliată a paşilor şi a ordinii acestora pentru ….
a. citirea datelor b. scrierea datelor c. prelucrarea datelor d. citirea şi scrierea datelor

9. Data structures + …… = Programs (Niklaus Wirth)


a. Computer b. Input data c. Output data d. Algorithms

10. Data structures + Algorithms = …... (Niklaus Wirth)


a. Computer b. Programs c. Input data d. Output data

11. Programarea calculatoarelor este acţiunea de scriere a ….. într-un limbaj de programare.
a. datelor de intrare b. datelor de ieşire c. codului programului d. structurilor de date

12. Programarea calculatoarelor este acţiunea de scriere a codului programului într-un …… .


a. limbaj de programare b. circuit electronic c. procesor d. sistem de numeraţie binar

13. Limbajele de programare care sunt înţelese direct de către calculatoare se numesc …….
a. limbaje pseudocod b. limbaje cod-maşină c. limbaje de nivel mediu d. limbaje de asamblare

14. Limbajele de programare care sunt apropiate de limbajul uman se numesc …….
a. limbaje de asamblare b. limbaje evoluate c. limbaje de nivel înalt d. limbaje cod-maşină

15. Limbajele de programare de pe un nivel intermediar se numesc …….


1
a. limbaje de nivel înalt b. limbaje cod-maşină c. limbaje de asamblare d. interfeţe

16. Calculator = ….. + …..


a. hard + soft b. fişiere + programe c. internet + programe d. fişiere + internet

17. Soft = Sistem de Operare + …..


a. Fişiere de date b. Programe c. Limbaje de programare d. Aplicaţii utilizator

18. Fişierele sunt de două tipuri mari: …. şi fişiere de date.


a. fişiere text b. fişiere multimedia c. sistem de operare d. fişiere program

19. Fişierele sunt de două tipuri mari: fişiere program şi …..


a. fişiere de date b. fişiere de intrare c. fişiere de intrare/ieşire d. fişiere de ieşire

20. Fişierul reprezintă modalitatea de … … … în calculator.


a. scriere a programelor b. de stocare a informaţiilor c. afişare a datelor d. structurare a octeţilor

21. Un algoritm este un set finit de ….. care transformă un set de date de intrare într-un set de date de ieşire.
a. componente soft b. operaţii de memorie c. informaţii d. operaţii de prelucrare

22. Stabilirea valorii cu care o variabilă intră în calcule se numeşte ………..


a. iniţializare b. atribuire c. citire d. adresare

23. Instrucţiunea ciclică cu număr cunoscut de paşi are sintaxa:


pentru …………… execută
<instrucţiune>
sfârşit pentru
a. <contor> de la <val_iniţială> la <val_finală>
b. <contor> de la <val_iniţială> la <val_finală> cu pas <p>
c. <condiţie> d. <iniţializare>

24. Care sunt caracteristicile unei variabile sau a unei constante?


a. nume, tip de dată, locaţie de memorie b. nume, valoare, locaţie de memorie c. nume, iniţializare, tip de
dată, locaţie de memorie d. nume, valoare, tip de dată, locaţie de memorie

25. Ce înţelegem prin tip de date?


a. nume, valoare, tip de dată, locaţie de memorie b. dacă data e de intrare sau de ieşire
c. o mulţime de valori + o mulţime de operaţii pe acea mulţime de valori
d. tipul simplu sau structurat al datei

26. O modalitate pentru comunicarea om-calculator este …………..


a. limbajul de programare b. vocabularul, sintaxa şi semantica c. limbajul pseudocod d. schema logică

27. ….. + Algorithms = Programs (Niklaus Wirth)


a. Input data b. Data structures c. Memory d. Output data

28. Soft = ….. + Aplicaţii utilizator


a. Programe b. Sistem de Operare c. Sistem de calcul d. Fişiere

29. Ce înțelegem prin interfață?


a. o componentă software b. o componentă hardware c. transferul de date între om și calculator
d. o parte a unui sistem care servește comunicării, asigurând un schimb corect de date între emițător și
receptor.

30. Ce aduce nou programarea structurată în programarea imperativă?


a. modularizarea, eliminarea instrucțiunii goto, structurarea datelor și a prelucrărilor
2
b. folosirea obiectelor de tip structură care încapsulează date și metode
c. utilizarea funcțiilor structurate pentru controlul fluxului prelucrărilor
d. utilizarea declarațiilor și a funcțiilor structurate pentru a conduce prelucrarea pe bază de evenimente

31. Ce aduce nou programarea procedurală în programarea imperativă?


a. nu este nicio legătură între cele două paradigme de programare
b. eliminarea recursivității structurilor de control
c. modularizează programul în una sau mai multe proceduri (funcții sau subrutine)
d. înlocuirea stilului imperativ cu cel ne-imperativ

32. De ce este reprezentat pasul înainte pe care îl face programarea orientată obiect în programarea
procedurală?
a. elimină procedurile din interiorul claselor și al obiectelor
b. orientează programarea spre obiectele supuse prelucrării: variabile și constante
c. încapsulează datele în funcții pe care le numește obiecte
d. încapsulează datele și funcțiile asociate acestora într-un concept unic: clasa.

33. Un bit ....


a. este format din șiruri de 0 și 1
b. în limba engleză se scrie byte
c. poate lua doar două valori 0 și 1
d. este un șir de 8 cifre binare

34. Care dintre algoritmii de mai jos interschimbă valorile a două variabile întregi a și b?
a. b. c. d.
întreg a, b, x întreg a, b întreg a, b, x întreg a, b
citeşte a, b citeşte a, b citeşte a, b citeşte a, b
x <- a b <- a a <- x a <- b
a <- b a <- b x <- b b <- a
b <- x scrie a, b b <- a scrie a, b
scrie a, b scrie a, b

35. Care dintre algoritmii de mai jos nu afișează maximum dintre două variabile reale a și b?
a. b. c. d.
real a, b, max real a, b real a, b real a, b, max
citeşte a, b citeşte a, b citeşte a, b citeşte a, b
dacă a > b dacă a > b dacă a > b max <- a
atunci max <- a atunci a <- b atunci a <- a dacă b > max
altfel max <- b sfârşit dacă altfel a <- b atunci max <- b
sfârşit dacă scrie a sfârşit dacă sfârşit dacă
scrie max scrie a scrie max

36. Algoritmul în pseudocod de mai jos citește un număr natural n > 1 și calculează și afișează suma numerelor
de la 1 la n. Exemplu: n = 5 => suma = 1 + 2 + 3 + 4 + 5 = 15. Ce trebuie scris în locul punctelor de
suspensie astfel încât algoritmul să funcționeze corect ?
natural n, i, suma
citeşte n
suma <- 0
pentru i de la 1 la n cu pas 1 execută
.................
sfârşit pentru
scrie suma

R. suma <- suma + i

37. Algoritmul în pseudocod de mai jos citește un număr natural n și calculează și afișează suma cifrelor sale.
Exemplu: n = 387 => suma = 18. Ce trebuie scris în locul punctelor de suspensie astfel încât algoritmul să
funcționeze corect ?
natural n, c, suma
3
citeşte n
suma <- 0
cât timp n > 0 execută
c <- n % 10
suma <- suma + c
......
sfârşit cât timp
scrie suma

R. n <- n / 10

38. Algoritmul în pseudocod de mai jos citește un număr natural n > 1 și calculează și afișează suma numerelor
de la 1 la n. Exemplu: n = 5 => suma = 1 + 2 + 3 + 4 + 5 = 15. Ce trebuie scris în locul punctelor de
suspensie astfel încât algoritmul să funcționeze corect ?
natural n, i, suma
citeşte n
.......
pentru i de la 1 la n cu pas 1 execută
suma <- suma + i
sfârşit pentru
scrie suma

R. suma <- 0

39. Algoritmul în pseudocod de mai jos citește un număr natural n și calculează și afișează suma cifrelor sale.
Exemplu: n = 387 => suma = 18. Ce trebuie scris în locul punctelor de suspensie astfel încât algoritmul să
funcționeze corect ?
natural n, c, suma
citeşte n
suma <- 0
cât timp n > 0 execută
c <- n % 10
.......
n <- n / 10
sfârşit cât timp
scrie suma

R. suma <- suma + c

40. Algoritmul în pseudocod de mai jos citește un număr natural n > 1 și calculează și afișează suma numerelor
de la 1 la n. Exemplu: n = 5 => suma = 1 + 2 + 3 + 4 + 5 = 15. Ce trebuie scris în locul punctelor de
suspensie astfel încât algoritmul să funcționeze corect ?
natural n, i, suma
citeşte n
suma <- 0
pentru i de la ..... cu pas 1 execută
suma <- suma + i
sfârşit pentru
scrie suma

R. 1 la n

41. Algoritmul în pseudocod de mai jos citește un număr natural n și calculează și afișează suma cifrelor sale.
Exemplu: n = 387 => suma = 18. Ce trebuie scris în locul punctelor de suspensie astfel încât algoritmul să
funcționeze corect ?
natural n, c, suma
citeşte n
......
cât timp n > 0 execută
c <- n % 10
suma <- suma + c
4
n <- n / 10
sfârşit cât timp
scrie suma

R. suma <- 0

42. Algoritmul în pseudocod de mai jos citește un număr natural n și calculează și afișează suma cifrelor sale.
Exemplu: n = 387 => suma = 18. Ce trebuie scris în locul punctelor de suspensie astfel încât algoritmul să
funcționeze corect ?
natural n, c, suma
citeşte n
suma <- 0
execută
....
suma <- suma + c
n <- n / 10
cât timp n > 0
scrie suma

R. c <- n % 10

43. Ce algoritm implementează schema logică alăturată?

R. interschimbarea valorilor a și b

44. Ce algoritm implementează schema logică alăturată?

R. maximum dintre a și b

45. Ce algoritm implementează schema logică alăturată?

R. suma 1+2+3+...+n

43. Ce afișează algoritmul de mai jos dacă se citește a = 5 și b = 9?


5
întreg a, b, x
citește a, b
x <- a
a <- b
b <- x
scrie a, b

R. 9, 5

44. Ce afișează algoritmul de mai jos dacă se citește a = 5 și b = 9?


întreg a, b
citește a, b
b <- a
a <- b
scrie a, b

R. 5, 5

45. Ce afișează algoritmul de mai jos dacă se citește a = 5 și b = 9?


întreg a, b, x
citește a, b
a <- x
x <- b
b <- a
scrie a, b

R. de două ori o valoare nedeterminată a lui x

46. Ce afișează algoritmul de mai jos dacă se citește a = 5 și b = 9?


întreg a, b
citește a, b
a <- b
b <- a
scrie a, b

R. 9, 9

47. Care sunt valorile care se citesc pentru a și b astfel încât algoritmul de mai jos să afișeze 1 și 2?
întreg a, b, x
citește a, b
x <- a
a <- b
b <- x
scrie a, b

R. a = 2, b = 1

48. Care sunt valorile care se citesc pentru a și b astfel încât algoritmul de mai jos să afișeze 2 și 2?
întreg a, b
citește a, b
b <- a
a <- b
scrie a, b

R. a = 2, b = orice valoare

49. Care sunt valorile care se citesc pentru a și b astfel încât algoritmul de mai jos să afișeze 2 și 2?
întreg a, b
citește a, b

6
a <- b
b <- a
scrie a, b

R. a = orice valoare, b = 2

50. Ce afișează algoritmul de mai jos dacă se citește n = 4 ?


natural n, i, x
citește n
x <- 0
pentru i de la 1 la n cu pas 1 execută
x <- x + i
sfârșit pentru
scrie x

R. 10

51. Care este valoarea care se citește pentru n astfel încât algoritmul de mai jos să afișeze 15 ?
natural n, i, x
citește n
x <- 0
pentru i de la 1 la n cu pas 1 execută
x <- x + i
sfârșit pentru
scrie x

R. 5

52. Ce afișează algoritmul de mai jos dacă se citește n = 241 ?


natural n, c, x
citește n
x <- 0
cât timp n > 0 execută
c <- n % 10
x <- x + c
n <- n / 10
sfârșit cât timp
scrie x

R. 7

53. Care este valoarea de trei cifre care se citește pentru n astfel încât algoritmul de mai jos să afișeze 1 ?
natural n, c, x
citește n
x <- 0
cât timp n > 0 execută
c <- n % 10
x <- x + c
n <- n / 10
sfârșit cât timp
scrie x

R. 100

7
ÎNTREBĂRI CURS 2: Sisteme de numerație, Reprezentarea internă a datelor,
Etape în crearea unui program C, Ieşire cu format – printf

1. Instrucţiunea printf("%.*s", i, s);


a. este greşită b. tipăreşte cel mult i caractere dintr-un şir s
c. tipăreşte cel puţin i caractere dintr-un şir s d. tipăreşte doar şirul s, variabila i este omisă la tipărire

2. Alegeţi varianta greşită. În specificatorul de format al instrucţiunii printf, precizia - care este separată
printr-un punct de dimensiunea minimă a câmpului de afişare – specifică …..
a. numărul maxim de caractere ce vor fi tipărite dintr-un şir
b. numărul de cifre de după punctul zecimal al unei valori în reprezentare virgulă mobilă
c. numărul minim de caractere ce vor fi tipărite dintr-un şir
d. numărul minim de cifre in cazul unui întreg

3. Transformaţi numărul întreg 157(8) = ? (10) din baza 8 în baza 10


a. 13 b. 268 c. 751 d. 111

4. Transformaţi numărul întreg A9B(16) = ? (10) din baza 16 în baza 10


a. 10911 b. 2715 c. 192 d. 30

5. Transformaţi numărul întreg 13(10) = ? (2) din baza 10 în baza 2


a. 1101 b. 10001101 c. 1011 d. toate cele trei variante a, b, c sunt eronate

6. Transformaţi numărul întreg 25(10) = ? (2) din baza 10 în baza 2


a. 10101 b. 111 c. 10011 d. 11001

7. Transformaţi numărul întreg 2715(10) = ? (16) din baza 10 în baza 16


a. 11910 b. A9B c. B9A d. 10911

8. Să se convertească numărul 0,123 din baza 10 în baza 2. Precizia de reprezentare este 5.


a. 0,00011 b. 0,11000 c. 0,11000 d. 0,11011

9. Să se convertească numărul 0,123 din baza 10 în baza 8. Precizia de reprezentare este 5.


a. 0,76500 b. 0,07676 c. 0,67670 d. 0,432

10. Să se convertească numărul 0,123 din baza 10 în baza 16. Precizia de reprezentare este 5.
a. 0,EC7F1 b. 0,FED00 c. 0,1F7CE d. 0,00321

11. Să se convertească numărul 0,1001 din baza 2 în baza 10.


a. 0,9 b. 0,5265 c. 0,11 d. 0,5625

12. Să se convertească numărul 0,A5 din baza 16 în baza 10.


a. 0,165 b. 0,64453125 c. 0,105 d. 0,52135446

13. Transformaţi numărul întreg 01000001(2) = ? (8) din baza 2 în baza 8


a. 2 b. 1001 c. 101 d. 1001

14. Transformaţi numărul întreg 01000001(2) = ? (16) din baza 2 în baza 16


a. 5 b. A001 c. 14 d. 41

15. Pe n cifre binare se pot reprezenta ….. şiruri de câte n biţi


a. 2n b. n c. 2n-1 d. 2n-1

16. Pe 8 cifre binare se pot reprezenta ….. şiruri de câte 8 biţi


a. 28 b. 8 c. 28-1 d. 28-1

8
17. Cât este complementul faţă de doi al numărului -105 pe 8 biţi?
a. 00010101 b. 10010111 c. 11101001 d. 01101001

18. Pentru a reprezenta pe 8 biţi un număr în complement faţă de doi, nu putem depăşi limita inferioară …..
a. -128 b. -256 c. -127 d. -255

19. Care este limita inferioară pentru a reprezenta un număr în complement faţă de doi pe 16 biţi?
a. -32.768 b. -65.536 c. -65.535 d. –32.767

20. Care este limita inferioară pentru a reprezenta un număr în complement faţă de doi pe 32 de biţi?
a. –2.147.483.647 b. – 4.294.967.296 c. – 4.294.967.295 d. –2.147.483.648

21. Câţi paşi are etapa de compilare la crearea unui program C?


a. 1 b. 3 c. 2 d. variantele a, b şi c nu sunt corecte

22. La crearea unui program C după editarea programului sursă urmează etapa de …..
a. testare şi depanare b. compilare c. editare a legăturilor d. execuţie a programului

23. Transformaţi numărul întreg 01011100(2) = ? (10) din baza 2 în baza 10


a. 25 b. 111 c. 92 d. 5

24. Să se convertească numărul 0,31 din baza 8 în baza 10.


a. 0,390625 b. 0,4 c. 0,37 d. 0,25

25. La reprezentarea științifică a numerelor reale prezentată în imaginea


alăturată precizați cuvântul care lipsește fiind înlocuit de ......... . ..................

R: exponent

26. La reprezentarea științifică a numerelor reale prezentată în imaginea


alăturată precizați cuvântul care lipsește fiind înlocuit de ......... .
..................
R: mantisă

27. La reprezentarea științifică a numerelor reale prezentată în imaginea


alăturată precizați cuvântul care lipsește fiind înlocuit de ......... .

R: caracteristică ..................

28. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
int i;
i = 152;
printf("intregul i = %d\n", i);
}

R:
9
29. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
float r;
r = 3.712;
printf("realul r = %f\n", r);
}

R:

30. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
char c;
c = 'A';
printf("caracterul c = %c\n", c);
}

R:

31. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
double rd;
rd = 5.45E5;
printf("real dublu rd = %e\n", rd);
}

R:

32. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
int i;
i = 152;
printf("intregul i = %i\n", i);
}

R:

33. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
int i;
i = 152;
printf("intregul i = %i/n", i);
10
}

R: intregul i = 152/n

34. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
char c;
c = 65;
printf("caracterul c = %c\n", c);
}

R:

35. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
char c;
c = 97;
printf("caracterul c = %c\n", c);
}

R: caracterul c = a

36. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
char c;
c = 48;
printf("caracterul c = %c\n", c);
}

R: caracterul c = 0

37. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
float r;
r = 3;
printf("realul r = %f\n", r);
}

R: realul r = 3.000000

38. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
double rd;
rd = 5.4555E5;
printf(" 12345678901\n");
printf("real dublu rd = %9.2e\n", rd);
}

11
R:

39. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
int i;
i = 152;
printf(" 12345678901\n");
printf("intregul i = %6d\n", i);
}

R:

40. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
float r;
r = 3.712;
printf(" 12345678901\n");
printf("realul r = %11.2f\n", r);
}

R:

41. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
char c;
c = 'A';
printf(" 12345678901\n");
printf("caracterul c = %4c\n", c);
}

R:

42. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf(":%s:\n","123456789012345");
printf(":%s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

43. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
12
{
printf(":%s:\n","123456789012345");
printf(":%10s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

44. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf(":%s:\n","123456789012345");
printf(":%.10s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

45. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf(":%s:\n","123456789012345");
printf(":%-10s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

46. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf(":%s:\n","123456789012345");
printf(":%.15s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

47. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
13
printf(":%s:\n","123456789012345");
printf(":%-15s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

48. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf(":%s:\n","123456789012345");
printf(":%15.10s:\n","salut, lume");
printf(":%s:\n","123456789012345");
}

R:

49. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf("%.*s", 5, "sir de caractere");
}

R: sir d

50. Precizați ce afișează programul de mai jos?

#include <stdio.h>
main()
{
printf("%.*s", 3, "***************");
}

R: ***

51. Precizați care dintre cele două variante afișează corect șirul de caractere citest%e?

a. b.
#include <stdio.h> #include <stdio.h>
main() main()
{ {
printf("citest%e"); printf("%s","citest%e");
} }

R: b.

14
ÎNTREBĂRI CURS 3: Date și instrucțiuni. Intrare cu format – scanf. Aplicații

1. Ce returnează funcţia scanf?


a. numărul de obiecte citite, care au fost conforme cu specificatorii şi atribuite cu succes.
b. funcţia scanf nu returnează nimic
c. ultimul obiect citit
d. un cod de eroare

2. Fie declaraţiile int zi, an; char numeluna[20];. Dorim să citim ziua, luna şi anul unei date
calendaristice (de exemplu: 25 dec 2015). Alegeţi instrucţiunea scanf corespunzătoare:
a. scanf("%d %s %d", &zi, &numeluna, &an);
b. scanf("%d %s %d", zi, numeluna, an);
c. scanf("%d %s %d", &zi, numeluna, &an);
d. scanf("%d %s %d", zi, &numeluna, an);

3. Singurul caz în care nu este obligatorie folosirea operatorul adresă pentru citirea valorii unei variabile cu
funcția scanf() este citirea unui ……..

R. şir de caractere

4. Înlocuiți punctele de suspensie cu specificatorul de conversie corespunzător pentru a citi variabila t de tip
char.

#include <stdio.h>
main()
{
char t;
printf("Introduceti un caracter = "); scanf("%....", &t);
}

R. c

5. Înlocuiți punctele de suspensie cu specificatorul de conversie corespunzător pentru a citi variabila t de tip
int.

#include <stdio.h>
main()
{
int t;
printf("Introduceti un nr intreg = "); scanf("%...", &t);
}

R. d (sau i, o, u, x; pot fi precedate de h sau l)

6. Înlocuiți punctele de suspensie cu specificatorul de conversie corespunzător pentru a citi variabila r de tip
float.

#include <stdio.h>
main()
{
float r;
printf("Introduceti un nr real = "); scanf("%....", &r);
}

R. f (sau e, g)

15
7. Înlocuiți punctele de suspensie cu specificatorul de conversie corespunzător pentru a citi variabila d de tip
double.

#include <stdio.h>
main()
{
double d;
printf("Introduceti un nr real dublu = "); scanf("%....", &d);
}

R. le (sau lf, lg)

8. Ce afișează programul următor dacă se introduce 123.123<Enter>?

#include <stdio.h>
main()
{
float r = 2.3131318;
printf("Dati un numar real = "); scanf("%%", &r);
printf("%f", r);
}

R. 2.313132

9. Ce afișează programul următor dacă se introduce 0XA<Enter>?

#include <stdio.h>
main()
{
int t;
printf("Introduceti un numar = "); scanf("%i", &t);
printf("%d", t);
}

R. 10

10. Ce afișează programul următor dacă se introduce 011<Enter>?

#include <stdio.h>
main()
{
int t;
printf("Introduceti un numar = "); scanf("%i", &t);
printf("%d", t);
}

R. 9

11. Ce afișează programul următor dacă se introduce 011<Enter>?

#include <stdio.h>

main()
{
int t;
scanf("%o", &t);
printf("%d", t);
}

R. 9

16
12. Ce afișează programul următor dacă se introduce 11<Enter>?

#include <stdio.h>

main()
{
int t;
scanf("%o", &t);
printf("%d", t);
}

R. 9

13. Ce afișează programul următor dacă se introduce 0xA<Enter>?

#include <stdio.h>

main()
{
int t;
scanf("%x", &t);
printf("%d", t);
}

R. 10

14. Ce afișează programul următor dacă se introduce a<Enter>?

#include <stdio.h>
main()
{
int t;
scanf("%x", &t);
printf("%d", t);
}

R. 10

15. Ce afișează programul următor dacă se introduce sir1<blank>sir2<tab>sir3<Enter>?

#include <stdio.h>
main()
{
char sir[10];
printf("Dati un sir de caractere = ");
scanf("%s", sir);
printf("Sirul de caractere citit a fost = %s\n", sir);
}

R. sir1

16. Ce afișează programul următor dacă se introduce 1.2555^Z ?

#include <stdio.h>
main()
{
double suma, v;
suma = 0;
while (scanf("%lf", &v) == 1){
suma = suma + v;
printf("\t%.2f\n", suma);

17
}
}

R. 1.26

17. Completați punctele de suspensie cu caracterele corespunzătoare astfel încât programul următor să citească
și să afișeze o dată calendaristică în forma 25 dec 2016.

#include <stdio.h>
main()
{
int zi, an;
char luna[20];
printf("dati data calendaristica in forma 25 dec 2016 = ");
scanf("%d %s %d", &zi, ....... );
printf("zi = %d\nluna = %s\nan = %d\n", zi, luna, an);
}

R. luna, &an

18. Programul următor citește o dată calendaristică în forma zz/ll/aaaa (e.g. 25/12/2016) și afișează separat
ziua, luna și anul. Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să
funcționeze corect.
#include <stdio.h>
main()
{
int zi, luna, an;
printf("dati data calendaristica in forma 25/12/2016 = ");
scanf("......", &zi, &luna, &an);
printf("zi = %d\nluna = %d\nan = %d\n", zi, luna, an);
}

R. %d/%d/%d

19. Programul următor citește un număr real (cu punct ca separator) și extrage partea întreagă și partea
fracționară a numărului real în două numere întregi pe care le afișează. Completați punctele de suspensie cu
caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int pi, pf;
printf("Introduceti un numar real cu parte intreaga si parte fractionara = ");
scanf(".......",&pi,&pf);
printf("partea intreaga = %d\t partea fractionara = %d\n", pi, pf);
}

R. %d.%d

20. Precizați care dintre cele două variante citește corect un număr real x ?

a. b.
#include <stdio.h> #include <stdio.h>
main() main()
{ {
float x; float x;
printf("x = "); scanf("%e", &x); printf("x = "); scanf("%f", x);
} }

R: a.

18
21. Precizați câte dintre cele trei variante citește corect un număr real x ?

a. b. c.
#include <stdio.h> #include <stdio.h> #include <stdio.h>
main() main() main()
{ { {
float x; float x; float x;
printf("x = "); printf("x = "); printf("x = ");
scanf("%e", &x); scanf("%f", &x); scanf("%g", &x);
} } }

R. toate 3

22. Rescrieți programul de mai jos, care afișează tabela cu temperaturile de la 0 la 300 pe scara Fahrenheit și
corespondentele lor pe scara Celsius, folosind o singură instrucțiune for și o singură variabilă de tip int.
#include <stdio.h>
main()
{
float fahr, celsius;
float lower, upper, step;

lower = 0;
upper = 300;
step = 20;
fahr = lower;

while ( fahr <= upper ) {


celsius = ( 5.0/9.0 ) * ( fahr - 32.0 );
printf("%3.0f %6.1f\n", fahr, celsius);
fahr = fahr + step;
}
}

R. #include <stdio.h>
main()
{
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

23. Rescrieți programul de mai jos, care afișează tabela cu temperaturile de la 0 la 300 pe scara Fahrenheit și
corespondentele lor pe scara Celsius, folosind în locul constatelor literale 0, 300 și 20 constante simbolice.
#include <stdio.h>
main()
{
int fahr;
for (fahr = 0; fahr <= 300; fahr = fahr + 20)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

R. #include <stdio.h>
#define LOWER 0
#define UPPER 300
#define STEP 20
main()
{
int fahr;
for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

19
24. Scrieți un program în limbajul C care copiază intrarea sa la ieșirea sa caracter cu caracter, folosind
algoritmul următor:
citește un caracter
cât timp (caracterul nu este indicatorul de sfârșit de fișier)
scrie caracterul tocmai citit
citește un caracter
sfârșit cât timp

R. #include <stdio.h>
main()
{
int c;
c = getchar();
while (c != EOF) {
putchar(c);
c = getchar();
}
}

25. Ce face programul următor?


#include <stdio.h>
main()
{
int c;
while ( (c = getchar()) != EOF)
putchar(c);
}

R. Copiază intrarea sa la ieșirea sa caracter cu caracter până la întâlnirea caracterului de sfârșit de fișier (^Z).

26. Programul următor numără caracterele introduse de utilizator pe intrare până la întâlnirea caracterului de
sfârșit de fișier (^Z). De exemplu, dacă se introduc caracterele ab urmate de <Enter> și apoi ^Z se afișează 3.
Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (...... != EOF )
++nc;
printf("%ld\n", nc);
}

R. getchar()

27. Programul următor numără caracterele introduse de utilizator pe intrare până la întâlnirea caracterului de
sfârșit de fișier (^Z). De exemplu, dacă se introduc caracterele ab urmate de <Enter> și apoi ^Z se afișează 3.
Scrieți un program echivalent care să folosească în locul ciclului while un ciclu for.
#include <stdio.h>
main()
{
long nc;
nc = 0;
while ( getchar() != EOF )
++nc;
printf("%ld\n", nc);
}

R. #include <stdio.h>
main()

20
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
}

28. Programul următor numără liniile de text introduse de utilizator pe intrare până la întâlnirea caracterului de
sfârșit de fișier (^Z). O linie de text se termină cu caracterul newline (’\n’). De exemplu, dacă se introduc
caracterele 123 urmate de <Enter>, abc urmate de <Enter>, 456 urmate de <Enter> și apoi ^Z se afișează 3.
Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int c, nl;
nl = 0;
while (..... != EOF)
if (c == '\n')
++nl;
printf("%d\n", nl);
}

R. (c = getchar())

29. Ce afișează programul următor ?


#include <stdio.h>
main()
{
printf("%d", '\n');
}

R. 10

30. Ce afișează programul următor ?


#include <stdio.h>
main()
{
printf("%c", '\n');
}

R. o linie vidă (i.e. caracterul newline)

31. Câte caractere conține constanta '\n' ?

R. 1

32. Ce afișează programul următor ?


#include <stdio.h>
main()
{
printf(".%c.", '\n');
}

R. două linii: pe fiecare linie câte un punct

33. Programul următor numără liniile (în variabila nl), cuvintele (în variabila nw) şi caracterele (în variabila nc)
introduse. Prin cuvânt înțelegem o secvență de caractere care nu conține blank-uri (' '), tab-uri ('\t') sau
caractere newline ('\n'). Pentru exemplul de rulaj prezentat în imaginea alăturată, 3 reprezintă numărul de

21
linii de text, 11 numărul de cuvinte, iar 53 numărul de caractere citite pe intrare. Completați punctele de
suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\t' || c == '\n')
state = OUT;
else if ( ... ) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}

R. state == OUT

34. Programul următor numără liniile (în variabila nl), cuvintele (în variabila nw) şi caracterele (în variabila nc)
introduse. Prin cuvânt înțelegem o secvență de caractere care nu conține blank-uri (' '), tab-uri ('\t') sau
caractere newline ('\n'). Pentru exemplul de rulaj prezentat în imaginea alăturată, 3 reprezintă numărul de
linii de text, 11 numărul de cuvinte, iar 53 numărul de caractere citite pe intrare. Completați punctele de
suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\t' || c == '\n')
......;
else if ( state == OUT ) {
state = IN;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}

R. state = OUT

35. Programul următor numără liniile (în variabila nl), cuvintele (în variabila nw) şi caracterele (în variabila nc)
introduse. Prin cuvânt înțelegem o secvență de caractere care nu conține blank-uri (' '), tab-uri ('\t') sau
caractere newline ('\n'). Pentru exemplul de rulaj prezentat în imaginea alăturată, 3 reprezintă numărul de
linii de text, 11 numărul de cuvinte, iar 53 numărul de caractere citite pe intrare. Completați punctele de
suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
#define IN 1

22
#define OUT 0
main()
{
int c, nl, nw, nc, state;
state = OUT;
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;
if (c == '\n')
++nl;
if (c == ' ' || c == '\t' || c == '\n')
state = OUT;
else if ( state == OUT ) {
.......;
++nw;
}
}
printf("%d %d %d\n", nl, nw, nc);
}

R. state = IN

36. Programul următor afișează cele șapte componente numere reale ale unui vector v[7] în forma:
v[0] = 4.2; v[1] = 0; v[2] = -2.2; v[3] = 0.5; v[4] = 12; v[5] = 0.33; v[6] = 3.4;
#include <stdio.h>
main()
{
float v[7] = {4.2, 0, -2.2, 0.50, 12.0, 0.33, 3.40};
int i, n = 7;
for (i = 0; i < n; i++)
printf("v[%d] = %g; ", i, v[i]);
}
Scrieți cum se modifică instrucțiunea printf astfel încât numerele reale să fie afișate fiecare cu câte două
zecimale în forma: v[0] = 4.20; v[1] = 0.00; v[2] = -2.20; v[3] = 0.50; v[4] = 12.00; v[5]
= 0.33; v[6] = 3.40;

R. printf("v[%d] = %.2f; ", i, v[i]);

37. Programul următor numără apariția fiecărei cifre (0, 1, 2, … , 9) a caracterelor spații albe (blank, tab, LF) şi
a tuturor celorlalte caractere. Folosim vectorul de numere întregi ndigit[10] pentru a memora numărul de
apariții ale fiecărei cifre (în ndigit[0] de câte ori apare cifra 0, ..., în ndigit[9] de câte ori apare cifra 9) și
două variabile simple (nwhite, nother) care să memoreze numărul de apariții a caracterelor albe, respectiv
numărul de apariții a celorlalte caractere. Completați punctele de suspensie cu caracterele corespunzătoare
pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = getchar()) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\t' || c == '\n')
++nwhite;
else
.......;
printf(" digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);

23
printf("\n white space = %d \n other = %d\n",nwhite, nother);
}

R. ++nother

38. Programul următor numără apariția fiecărei cifre (0, 1, 2, … , 9) a caracterelor spații albe (blank, tab, LF) și
a tuturor celorlalte caractere. Folosim vectorul de numere întregi ndigit[10] pentru a memora numărul de
apariții ale fiecărei cifre (în ndigit[0] de câte ori apare cifra 0, ..., în ndigit[9] de câte ori apare cifra 9) și
două variabile simple (nwhite, nother) care să memoreze numărul de apariții a caracterelor albe, respectiv
numărul de apariții a celorlalte caractere. Completați punctele de suspensie cu caracterele corespunzătoare
pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int c, i, nwhite, nother;
int ndigit[10];
nwhite = nother = 0;
for (i = 0; i < 10; ++i)
ndigit[i] = 0;
while ((c = ..... ) != EOF)
if (c >= '0' && c <= '9')
++ndigit[c-'0'];
else if (c == ' ' || c == '\t' || c == '\n')
++nwhite;
else
++nother;
printf(" digits =");
for (i = 0; i < 10; ++i)
printf(" %d", ndigit[i]);
printf("\n white space = %d \n other = %d\n",nwhite, nother);
}

R. getchar()

39. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale începând cu cifra cea mai puțin semnificativă (cifra unităților). Exemplu:
n = 9301 => 1 0 3 9
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = "); scanf("%d", &n);
while (n > 0) {
c = n % 10;
.........;
n = n / 10;
}
}

R. printf("cifra = %d\n", c)

40. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale începând cu cifra cea mai puțin semnificativă (cifra unităților). Exemplu:
n = 9301 => 1 0 3 9
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = "); scanf("%d", &n);
24
while (n > 0) {
c = n % 10;
printf("cifra = %d\n", c);
.........;
}
}

R. n = n / 10

41. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale pare începând cu cifra cea mai puțin semnificativă. Exemplu: n = 2518
=> 8 2
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = "); scanf("%d", &n);
while (n > 0) {
c = n % 10;
.......
printf("cifra = %d\n", c);
n = n / 10;
}
}
R. if (c%2 == 0)

42. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale pare începând cu cifra cea mai puțin semnificativă. Exemplu: n = 2518
=> 8 2
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
.......
while (n > 0) {
c = n % 10;
if (c%2 == 0)
printf("cifra = %d\n", c);
n = n / 10;
}
}

R. scanf("%d", &n);

43. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale impare începând cu cifra cea mai puțin semnificativă. Exemplu: n = 2518
=> 1 5
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 != 0)
printf("cifra = %d\n", c);
........;
}
}

25
R. n = n / 10

44. Completați punctele de suspensie din programul următor astfel încât programul să citească un număr n
natural nenul și să afișeze cifrele sale impare începând cu cifra cea mai puțin semnificativă. Exemplu: n = 2518
=> 1 5
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
.......;
if (c%2 != 0)
printf("cifra = %d\n", c);
n = n / 10;
}
}

R. c = n % 10

45. Programul următor citește un număr n natural și afișează suma cifrelor sale. Exemplu: n = 9201 => s = 12
(1+0+2+9). Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să
funcționeze corect.
#include <stdio.h>
main()
{
int n, s, c;
printf("numarul este = "); scanf("%d", &n);
s = 0;
while (n > 0) {
c = n % 10;
s = s + c;
......;
}
printf(" suma cifrelor = %d\n", s);
}

R. n = n / 10

46. Programul următor citește un număr n natural și afișează suma cifrelor sale. Exemplu: n = 9201 => s = 12
(1+0+2+9). Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să
funcționeze corect.
#include <stdio.h>
main()
{
int n, s, c;
printf("numarul este = "); scanf("%d", &n);
s = 0;
while (n > 0) {
......;
s = s + c;
n = n / 10;
}
printf(" suma cifrelor = %d\n", s);
}

R. c = n % 10

26
47. Programul următor citește un număr n natural și afișează produsul cifrelor sale. Exemplu: n = 5231 => p =
30 (5*2*3*1). Programul conține o greșeală. Scrieți greșeala și cum este corect pentru ca programul să
funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, p, c;
printf("numarul este = "); scanf("%d", &n);
p = 0;
while (n > 0) {
c = n % 10;
p = p * c;
n = n / 10;
}
printf(" produsul cifrelor = %d\n", p);
}

R. p = 0; este greșeala, corect este: p = 1;

48. Programul următor citește un număr n natural și afișează suma cifrelor sale. Exemplu: n = 9201 => s = 12
(1+0+2+9). Programul conține o greșeală. Scrieți greșeala și cum este corect pentru ca programul să
funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, s, c;
printf("numarul este = "); scanf("%d", &n);
s = 0;
while (n < 0) {
c = n % 10;
s = s + c;
n = n / 10;
}
printf(" suma cifrelor = %d\n", s);
}

R. while (n < 0) este greșeala, corect este: while (n > 0)

49. Programul următor citește un număr n natural nenul și afișează cifrele sale impare începând cu cifra cea mai
puțin semnificativă. Exemplu: n = 2518 => 1 5. Programul conține o greșeală. Scrieți greșeala și cum este
corect pentru ca programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 != 0)
printf("cifra = %c\n", c);
n = n / 10;
}
}

R. printf("cifra = %c\n", c); este greșeala, corect este: printf("cifra = %d\n", c);

50. Programul următor citește un număr n natural nenul și afișează cifrele sale începând cu cifra cea mai puțin
semnificativă (cifra unităților). Exemplu: n = 9301 => 1 0 3 9. Programul conține o greșeală. Scrieți greșeala și
cum este corect pentru ca programul să funcționeze corespunzător.

27
#include <stdio.h>
main()
{
int n, c;
printf("numarul este = "); scanf("%d", &n);
while (n > 0) {
n = c % 10;
printf("cifra = %d\n", c);
n = n / 10;
}
}

R. n = c % 10; este greșeala, corect este: c = n % 10;

51. Programul următor citește un număr n natural și afișează cifra maximă a lui n. Exemplu: n = 3901 => max
= 9. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, max, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
max = 0;
while ( temp != 0 ) {
c = temp % 10;
if ( max < c )
c = max;
temp = temp / 10;
}
printf("cifra maxima din %d este = %d\n", n, max);
}

R. c = max; este greșeala, corect este: max = c;

52. Programul următor citește un număr n natural și afișează cifra maximă a lui n. Exemplu: n = 3901 => max
= 9. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, max, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
max = 0;
while ( temp != 0 ) {
c = temp % 10;
if ( c < max )
max = c;
temp = temp / 10;
}
printf("cifra maxima din %d este = %d\n", n, max);
}

R. if ( c < max ) este greșeala, corect este: if ( max < c )

53. Programul următor citește un număr n natural și afișează cifra maximă a lui n. Exemplu: n = 3901 => max
= 9. Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze
corect.
#include <stdio.h>
main()
{

28
int n, max, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
max = 0;
while ( temp != 0 ) {
c = temp % 10;
if ( max < c )
max = c;
..........;
}
printf("cifra maxima din %d este = %d\n", n, max);
}

R. temp = temp / 10

54. Programul următor citește un număr n natural și afișează cifra minimă a lui n. Exemplu: n = 3937 => min =
3. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, min, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
min = 0;
while ( temp != 0 ) {
c = temp % 10;
if ( c < min )
min = c;
temp = temp / 10;
}
printf("cifra minima din %d este = %d\n", n, min);
}

R. min = 0 este greșeala, corect este: min = 9

55. Programul următor citește un număr n natural și afișează cifra minimă a lui n. Exemplu: n = 3937 => min =
3. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, min, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
min = 9;
while ( temp != 0 ) {
c = temp % 10;
if ( c > min )
min = c;
temp = temp / 10;
}
printf("cifra minima din %d este = %d\n", n, min);
}

R. if ( c > min ) este greșeala, corect este: if ( c < min )

56. Programul următor citește un număr n natural și afișează cifra maximă a lui n. Exemplu: n = 3901 => max
= 9. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()

29
{
int n, max, c, temp;
printf("numarul este = "); scanf("%d", &n);
temp = n;
max = 9;
while ( temp != 0 ) {
c = temp % 10;
if ( max < c )
max = c;
temp = temp / 10;
}
printf("cifra maxima din %d este = %d\n", n, max);
}

R. max = 9 este greșeala, corect este: max = 0

57. Programul următor citește un număr natural n de minim două cifre și determină cel mai mare număr format
din cifra minimă și cea maximă a acestuia. Exemplu: n = 2725 => maxim = 72 (cifra maximă = 7, cifra
minimă = 2). Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă
pentru ca programul să funcționeze corespunzător.
#include <stdio.h>
main() {
int n, cif_max = 0, cif_min = 0, c, max;
printf("n = "); scanf("%d",&n);
while( n != 0 ){
c = n % 10;
if(c > cif_max)
cif_max = c;
if(c < cif_min)
cif_min = c;
n = n /10;
}
max = cif_max * 10 + cif_min;
printf("maxim = %d \n", max);
}

R. cif_min = 0 este greșeala, corect este: cif_min = 9

58. Programul următor citește un număr natural n de minim două cifre și determină cel mai mare număr format
din cifra minimă și cea maximă a acestuia. Exemplu: n = 2725 => maxim = 72 (cifra maximă = 7, cifra
minimă = 2). Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să
funcționeze corect.
#include <stdio.h>
main() {
int n, cif_max = 0, cif_min = 9, c, max;
printf("n = "); scanf("%d",&n);
while( n != 0 ){
c = n % 10;
if(c > cif_max)
cif_max = c;
if(c < cif_min)
cif_min = c;
n = n /10;
}
..................;
printf("maxim = %d \n", max);
}

R. max = cif_max * 10 + cif_min

30
59. Programul următor citește pe intrare cele n (n  0, natural) cifre ale unui număr de la cifra cea mai
semnificativă până la cifra cea mai puțin semnificativă, apoi formează numărul din cifrele sale și îl afișează.
Exemplu: numarul de cifre = 5, cifra = 2, cifra = 3, cifra = 1, cifra = 9, cifra = 7 => numarul = 23179.
Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int c, n, x, i;
x = 0;
printf("Cate cifre are numarul? = "); scanf("%d", &n);
for ( i = 1; i <= n; ++i ){
printf("cifra %d este = ", i); scanf("%d", &c);
.............;
}
printf("numarul format din cifrele sale este = %d\n", x);
}

R. x = x * 10 + c

60. Programul următor citește pe intrare cele n (n  0, natural) cifre ale unui număr de la cifra cea mai
semnificativă până la cifra cea mai puțin semnificativă, apoi formează numărul din cifrele sale și îl afișează.
Exemplu: numarul de cifre = 5, cifra = 2, cifra = 3, cifra = 1, cifra = 9, cifra = 7 => numarul = 23179.
Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int c, n, x, i;
x = 0;
printf("Cate cifre are numarul? = "); scanf("%d", &n);
for ( i = 1; i <= n; ++i ){
printf("cifra %d este = ", i); scanf("%d", &c);
x = x + c * 10;
}
printf("numarul format din cifrele sale este = %d\n", x);
}

R. x = x + c * 10 este greșeala, corect este: x = x * 10 + c

61. Programul următor citește pe intrare cele n (n  0, natural) cifre ale unui număr de la cifra cea mai
semnificativă până la cifra cea mai puțin semnificativă, apoi formează numărul din cifrele sale și îl afișează.
Exemplu: numarul de cifre = 5, cifra = 2, cifra = 3, cifra = 1, cifra = 9, cifra = 7 => numarul = 23179. Scrieți
o implementare echivalentă pentru ciclul for() din program folosind un ciclu while().
#include <stdio.h>
main()
{
int c, n, x, i;
x = 0;
printf("Cate cifre are numarul? = "); scanf("%d", &n);
for ( i = 1; i <= n; ++i ){
printf("cifra %d este = ", i); scanf("%d", &c);
x = x * 10 + c;
}

printf("numarul format din cifrele sale este = %d\n", x);


}

R. i = 1;
31
while( i <= n ){
printf("cifra %d este = ", i); scanf("%d", &c);
x = x * 10 + c;
++i;
}

62. Programul următor citește pe intrare cele n (n  0, natural) cifre ale unui număr de la cifra cea mai
semnificativă până la cifra cea mai puțin semnificativă, apoi formează numărul din cifrele sale și îl afișează.
Exemplu: numarul de cifre = 5, cifra = 2, cifra = 3, cifra = 1, cifra = 9, cifra = 7 => numarul = 23179. Scrieți
o implementare echivalentă pentru ciclul while() din program folosind un ciclu for().
#include <stdio.h>
main()
{
int c, n, x;
x = 0;
printf("Cate cifre are numarul? = "); scanf("%d", &n);
while ( n-- ){
printf("cifra = "); scanf("%d", &c);
x = x * 10 + c;
}
printf("numarul format din cifrele sale este = %d\n", x);
}

R. for ( ; n--; ){
printf("cifra = "); scanf("%d", &c);
x = x * 10 + c;
}

63. Programul următor citește un număr întreg n și afișează numărul inversat (oglindit). Exemplu: n = 174 =>
471. Programul conține o instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca
programul să funcționeze corespunzător.
#include <stdio.h>
main()
{
int n, invers, temp;
printf("numarul de inversat = "); scanf("%d", &n);
temp = n;
invers = 0;
while ( temp != 0 ){
invers = invers * 10 + temp;
temp = temp / 10;
}
printf("inversul lui %d este = %d\n", n, invers);
}

R. invers = invers * 10 + temp; este greșeala, corect este: invers = invers * 10 + temp % 10;

64. Programul următor citește un număr întreg n și afișează numărul inversat (oglindit). Exemplu: n = 174 =>
471. Completați punctele de suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze
corect.
#include <stdio.h>
main()
{
int n, invers, temp;
printf("numarul de inversat = "); scanf("%d", &n);
temp = n;
invers = 0;
while ( temp != 0 ){
......................;
32
temp = temp / 10;
}
printf("inversul lui %d este = %d\n", n, invers);
}

R. invers = invers * 10 + temp % 10

65. Programul următor citește un număr întreg n și verifică dacă numărul este palindrom (i.e. este egal cu
inversul său). Exemple: n = 174 => nu este palindrom; n = 17471 => palindrom. Completați punctele de
suspensie cu caracterele corespunzătoare pentru ca programul să funcționeze corect.
#include <stdio.h>
main()
{
int n, invers = 0, temp;
printf("Introduceti nr ce trebuie verificat ca e sau nu palindrom\n");
scanf("%d",&n);
..............;
while ( temp != 0 ) {
invers = invers * 10 + temp%10;
temp = temp / 10;
}
if ( n == invers )
printf("%d este palindrom\n", n);
else
printf("%d nu este palindrom\n", n);
}

R. temp = n

66. Programul următor citește un număr întreg n și verifică dacă numărul este palindrom (i.e. este egal cu
inversul său). Exemple: n = 174 => nu este palindrom; n = 17471 => palindrom. Programul conține o
instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca programul să funcționeze
corespunzător.
#include <stdio.h>
main()
{
int n, invers = 0, temp;
printf("Introduceti nr ce trebuie verificat ca e sau nu palindrom\n");
scanf("%d",&n);
temp = n;
while ( temp != 0 ) {
invers = invers * 10 + temp%10;
temp = temp % 10;
}
if ( n == invers )
printf("%d este palindrom\n", n);
else
printf("%d nu este palindrom\n", n);
}

R. temp = temp % 10 este greșeala, corect este: temp = temp / 10

67. Programul următor citește un număr întreg n și verifică dacă numărul este palindrom (i.e. este egal cu
inversul său). Exemple: n = 174 => nu este palindrom; n = 17471 => palindrom. Programul conține o
instrucțiune scrisă greșit. Scrieți instrucțiunea greșită și varianta ei corectă pentru ca programul să funcționeze
corespunzător.
#include <stdio.h>
main()
{
33
int n, invers = 0, temp;
printf("Introduceti nr ce trebuie verificat ca e sau nu palindrom\n");
scanf("%d",&n);
temp = n;
while ( temp != 0 ) {
invers = invers * 10 + temp%10;
temp = temp / 10;
}
if ( n = invers )
printf("%d este palindrom\n", n);
else
printf("%d nu este palindrom\n", n);
}

R. if ( n = invers ) este greșeala, corect este: if ( n == invers )

68. Ce afișează programul următor dacă se citește de la tastatura 7.25 ?


#include <stdio.h>
main()
{
int a, b;
scanf("%d.%d",&a, &b);
printf("%d%d", a, b);
}

R. 725

69. Ce trebuie să citim pe intrare astfel încât programul să afișeze 11 ?


#include <stdio.h>
main()
{
int a, b;
scanf("%d.%d",&a,&b);
printf("%d%d", a, b);
}

R. 1.1

70. Ce afișează programul următor dacă se citește de la tastatura 9301 ?


#include <stdio.h>
main()
{
int n, c;
printf("n = "); scanf("%d", &n);
while (n > 0) {
c = n % 10;
printf("%d ", c);
n = n / 10;
}
}

R. 1 0 3 9

71. Ce trebuie să citim pe intrare astfel încât programul să afișeze 1 2 3 ?


#include <stdio.h>
main()
{
int n, c;
printf("n = "); scanf("%d", &n);
while (n > 0) {
c = n % 10;
34
printf("%d ", c);
n = n / 10;
}
}

R. 321

72. Ce afișează programul următor dacă se citește de la tastatura 2518 ?


#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 == 0)
printf("%d ", c);
n = n / 10;
}
}

R. 8 2

73. Ce trebuie să citim pe intrare astfel încât programul să afișeze 8 ?


#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 == 0)
printf("%d ", c);
n = n / 10;
}
}

R. orice număr natural care conține doar cifre impare și o singură cifră 8

74. Ce afișează programul următor dacă se citește de la tastatura 2518 ?


#include <stdio.h>
main()
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 != 0)
printf("%d ", c);
n = n / 10;
}
}

R. 1 5

75. Ce trebuie să citim pe intrare astfel încât programul să afișeze 1 ?


#include <stdio.h>
main()
35
{
int n, c;
printf("numarul este = ");
scanf("%d", &n);
while (n > 0) {
c = n % 10;
if (c%2 != 0)
printf("%d ", c);
n = n / 10;
}
}

R. orice număr natural care conține doar cifre pare și o singură cifră 1

76. Ce afișează programul următor dacă se citește de la tastatura 3901 ?


#include <stdio.h>
main()
{
int n, x, c;
printf("numarul = "); scanf("%d", &n);
x = 0;
while ( n != 0 ) {
c = n % 10;
if ( x < c )
x = c;
n = n / 10;
}
printf("%d", x);
}

R. 9

77. Ce trebuie să citim pe intrare astfel încât programul să afișeze 3 ?


#include <stdio.h>
main()
{
int n, x, c;
printf("numarul = "); scanf("%d", &n);
x = 0;
while ( n != 0 ) {
c = n % 10;
if ( x < c )
x = c;
n = n / 10;
}
printf("%d", x);
}

R. orice număr care are cea mai mare cifră 3

78. Ce afișează programul următor dacă se citește de la tastatura 3937 ?


#include <stdio.h>
main()
{
int n, min, c;
printf("numarul = "); scanf("%d", &n);
x = 9;
while ( n != 0 ) {
c = n % 10;
if ( c < x )
x = c;
n = n / 10;
}
printf("%d", x);
36
}

R. 3

79. Ce trebuie să citim pe intrare astfel încât programul să afișeze 3 ?


#include <stdio.h>
main()
{
int n, min, c;
printf("numarul = "); scanf("%d", &n);
x = 9;
while ( n != 0 ) {
c = n % 10;
if ( c < x )
x = c;
n = n / 10;
}
printf("%d", x);
}

R. orice număr care are cea mai mică cifră 3

80. Ce afișează programul următor dacă se citește de la tastatura 2725 ?


#include <stdio.h>
main() {
int n, x = 0, y = 9, c, t;
printf("n = "); scanf("%d",&n);
while( n != 0 ){
c = n % 10;
if (c > x)
x = c;
if (c < y)
y = c;
n = n /10;
}
t = x * 10 + y;
printf("%d", t);
}

R. 72

81. Ce trebuie să citim pe intrare astfel încât programul să afișeze 11 ?


#include <stdio.h>
main() {
int n, x = 0, y = 9, c, t;
printf("n = "); scanf("%d",&n);
while( n != 0 ){
c = n % 10;
if (c > x)
x = c;
if (c < y)
y = c;
n = n /10;
}
t = x * 10 + y;
printf("%d", t);
}

R. orice număr format doar din cifre 1

37
82. Ce afișează programul următor dacă se citește de la tastatura 5 2 3 1 7 9 ?
#include <stdio.h>
main()
{
int t, n, x, i;
x = 0;
scanf("%d", &n);
for ( i = 1; i <= n; ++i ){
scanf("%d", &t);
x = x * 10 + t;
}
printf("%d", x);
}

R. 23179

83. Ce trebuie să citim pe intrare astfel încât programul să afișeze 1 ?


#include <stdio.h>
main()
{
int t, n, x, i;
x = 0;
scanf("%d", &n);
for ( i = 1; i <= n; ++i ){
scanf("%d", &t);
x = x * 10 + t;
}
printf("%d", x);
}

R. 1 1

84. Ce afișează programul următor dacă se citește de la tastatura 100 ?


#include <stdio.h>
main()
{
int n, t;
scanf("%d", &n);
t = 0;
while ( n != 0 ){
t = t * 10 + n % 10;
n = n / 10;
}
printf("%d", t);
}

R. 1

85. Ce trebuie să citim pe intrare astfel încât programul să afișeze 11 ?


#include <stdio.h>
main()
{
int n, t;
scanf("%d", &n);
t = 0;
while ( n != 0 ){
t = t * 10 + n % 10;
38
n = n / 10;
}
printf("%d", t);
}

R. 11

86 Ce afișează programul următor dacă se citește de la tastatura 174 ?


#include <stdio.h>
main()
{
int n, x = 0, y;

scanf("%d",&n);
y = n;

while ( y != 0 ) {
x = x * 10 + y%10;
y = y / 10;
}

if ( n == x )
printf("1");
else
printf("0");
}

R. 0

87. Ce trebuie să citim pe intrare astfel încât programul să afișeze 1 ?


#include <stdio.h>
main()
{
int n, x = 0, y;

scanf("%d",&n);
y = n;

while ( y != 0 ) {
x = x * 10 + y%10;
y = y / 10;
}

if ( n == x )
printf("1");
else
printf("0");
}

R. orice număr care este palindrom

39

You might also like