0% au considerat acest document util (1 vot)
4K vizualizări30 pagini

Rezolvari PP

Încărcat de

msiulian
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (1 vot)
4K vizualizări30 pagini

Rezolvari PP

Încărcat de

msiulian
Drepturi de autor
© Attribution Non-Commercial (BY-NC)
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd

1.

Se considera programul C:
#include <stdio.h>
int f(void){ int i = 0; return (i++); }
int g(void){static int x = 0; return (x++); }
void main(void){ int k;
for (k = 0; k < 3; k++) printf("F %d\n", f());
for (k = 0; k < 3; k++) printf("G %d\n", g());
}
Analizati modul de functionare si precizati care este iesirea acestui program.
b)
F 0
F 0
F 0
G 0
G 1
G 2

2. Se considera programul. Analizati textul si identificati rezultatele obtinute


in urma executarii acestuia.
#include <stdio.h>
static void mp(
int c[3][3], int a[3][3], int b[3][3]){
int i, j, k;
for(i = 0; i < 3; ++i){
for(j = 0; j < 3; ++j){
c[i][j] = 0;
for(k = 0; k < 3; ++k){
result[i][j] += a[i][k] * b[k][j];
}
}
static void pm( int m[3][3]){
int i, j;
for (i = 0; i < 3; ++i){
for (j = 0; j < 3; ++j) printf("%o \t", m[i][j]); printf("\n");
}
}
void main(void){
int x[3][3] = {{4, 8, 2}, {3, 1, 1}, {8, 8, 2} }; int y[3][3] =
{{3, 4, 5}, {3, 0, 2}, {2, 1, 3} }; int z[3][3];
mp(z, x, y);
pm(z);
}
a)
40 18 42
14 13 20
52 34 62

3. Se considera programul
#include <stdio.h>
void main(void){
int s;
int k;
for (k = 1; k <= 10; ++k) s += k;
printf("Suma primelor 10 de numere naturale nenule este %d\n", s);
}
Ce afiseaza programul:
c) 10

4. Se considera programul
#include <stdio.h>
void main(void){
int s=0;
int k;
for (k = 1; k <= 10; ++k); s += k;
printf("Suma primelor 10 de numere naturale nenule este %d\n", s);
}
Ce afiseaza programul:
b) intotdeauna11

5. Se considera programul
#include <stdio.h>
void main(void){
int s=0;
int n, k;
printf("N = "); scanf("%d", &n);
for (k = 1; k <= n; s+=++k);
printf("Suma primelor %d numere naturale nenule este %d\n", n,
s);
}
Valoarea variabilei s pentru n
= 10 este
d) 65

6. Se considera programul C:
#include <stdio.h>
void main(void){
int k[5] = {1, 2, 3, 4, 5}, i=7;
for(i = 1; i<= 5; i++) printf("%d, ", k[i]);
printf("\n");
}
Care este rezultatul obtinut in urma executarii programului:
d) 2, 3, 4, 5, 7.

7. Se considera programul C:
#include <stdio.h>
void main(void){ char c;
c = 0xFF;
if(c == 0xFF) printf("Da\n"); else printf("Nu\n");
}
Ce se afiseaza?
b) Nu

8. Fie programul:
#include <stdio.h>
void main(void){
int a=0, b=0; /* definire cu initializare */
int s = 6;
a = 5, /* incarca a
b=2; incarca b */ s = (a*b)/2;
printf("s= %d\n", s);
}
Care este valoarea variabilei s la incheierea executarii programului:
b) 0

9. Fie programul:
#include <stdio.h>
void main(void){ int a=1, b=3;
double f = 0.6;
f = a/b;
printf("f= %7.5lf\n", f);
}
Care este valoarea variabilei f afisata in urma executarii programului:
c) 0.00000

10. Se considera fisierul [Link] al carui continut este:


#include <stdio.h>
extern char *a; void main(void)
{ printf("%s\n", *a);
}
si fisierul [Link] al carui continut este:
char a[] = "Programare procedurala\n";
Prin analiza programului se constata:
a) Se afiseaza: Programare procedurala

11. Se considera programul C:


#include <stdio.h>
void main(void){ int x, y=10;
x = 1; y = x << 2 + 1;
printf("%d\n", y);
y = 7;
}
Care este valoarea variabilei y ce se afiseaza prin executarea programului?
d) 8

12. Se considera programul C:


#include <stdio.h>
void main(void){ int x, y=10;
x = 7;
y = (x = 1)? (-5) : 7;
printf("%d\n", y), y = 8;
}
Care este valoarea variabilei y ce se afiseaza prin executarea
programului:
a) -5

13. Se considera programul C:


#include <stdio.h>
void main(void){ int k;
clrscr();
for(k = 2; k<=10; ++k){
switch(k){ case 2: case 3:
case 5:
case 7: printf("k = %d, Da\n", k); break;
defualt: printf("k = %d, Nu\n", k); break;
}
}
}
Ce afiseaza programul in urma executarii?
a)
k = 2, Da
k = 3, Da k = 4, Nu k =
5, Da k = 6, Nu k = 7, Da
k = 8, Nu k = 9, Nu
k = 10, Nu

14. Se considera programul C:


#include <stdio.h>
void main(void){ int k; for (k = 1; k<= 10; k++);
printf("k = %d , sqr(k) = %d\n", k, k*k);
}
In urma executarii acestuia se afiseaza:
b) k = 11, sqr(k) = 121

15. Se considera textul C:


#include <stdio.h>
static int div(int *x){
int k = 5;
k = k/*x;
return k;
}
void main(void){
int n = 5;
printf("%d\n", div(&n));
} Atunci:
a) Programul afiseaza valoarea 1

16. Se considera programul:


#include <stdio.h>
void main(void){
int n1, n2;
printf("n1 = "), scanf("%d", &n1);
printf("n2 = "), scanf("%d", &n2);
if (n2 =! 0) printf("n1/n2 = %d\n", n1/n2);
else printf("Impartire prin ZERO\n");
}
Ce se afiseaza pentru n1 = 8 si n2 = 16?
b) n1/n2 = 8

17. Se considera programul C:


#include <stdio.h>
#define MAX 10; void main(void){
int k;
for (k=MAX k>0; --k) printf("Succes!\n");
} Atunci:
b) Afiseaza pe 10 rinduri secventa Succes!

18. Se considera programul C:


#include <stdio.h>
void main(void){int k1 = 12, k2 = 3;
if (k1 & k2) printf("Ambele numere sint nenule\n");
else printf("Cel putin un numar este zero\n");
}
Prin executarea acestui program se obtine:
a) Mesajul redat prin "Cel putin un numar este zero\n"

19. Se considera programul C:


#include <stdio.h>
int a[3][3]={{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
void main(void){
printf("Elementul de pe rindul cu indicele 1\n"), printf(" si coloana
cu indicele 2 este %d\n", a[1,2]);
}
La executarea programului, valoarea afisata este:
b) 6

20. Se presupune ca lucrati pentru o casa de software americana si


vi se cere sa afisati 'un milion' in scrierea americana , adica
1,000, 0000.
Secventa de cod potrivita este:
d) {char a[]="1,000,000"; puts(a);}

21. Se considera programul:


#include <stdio.h>
void main(void){
float treime = 1.0/3.0;
float unu = 1.0;
if ((treime+treime+treime) == unu) printf("Da!\n"); else
printf("Nu\n");
}
c) Afiseaza "Nu!"

22. Se considera programul C:


#include <stdio.h>
#include <conio.h>
void bit(const unsigned short int k){
unsigned short int x = (1 << 16);
int i;
for(i = 0; i<16; i++) {
if ((x & k) != 0) printf("%c", '*'); else printf("%c",'-');x >>= 1;
}
printf("\n");
}
void main(void){
bit(0x55AF);
}
La executare acesta afiseaza:
a) -*-*-*-**-*-****

24. Fie programul C?


#include <stdio.h>
void main(void){
int a = 7, b=5, c = 2;
if(a > b > c) printf("Da!"); else printf("Nu!");
}
Care este rezultatul acestuia (ce se afiseaza)?
b) Mesajul "Nu"

25. Variabila x este de tip double. Care dintre urmatoarele


expresii
C are valoarea 1 daca si numai daca numarul real memorat in
variabila x apartine intervalului (a,b], unde a si b sunt numere in
virgula mobila date (initializate, citite sau rezultat al unor operatii
preliminare)?
d. (x<=b) && (x>a)

26. Variabilele x si y sunt tip int. Care dintre expresiile C de mai


jos are valoarea 1 daca si numai daca valorile intregi nenule memorate in
variabilele x si y sunt egale?
c. (x<=y) || (y<=x)

27. Care dintre urmatoarele expresii C are valoarea 1 daca si numai


daca numarul real
memorat in variabila x se afla in intervalul (-a, a)?
b. a*a-x*x>0

28. Fie expresia C 10*2/3*3/2. Care este rezultatul evaluarii expresiei?


d. 9

29. Care dintre urmatoarele expresii C, are ca valoare cel mai mic
dintre numerele naturale nenule, cu cel mult 4 cifre fiecare, memorate in
variabilele intregi x si y?
a. (x+y-abs(x-y))/2

30. Fiecare dintre variabilele intregi x si y memoreaz cate un numar


natural. Care dintre expresiile C de mai jos are valoarea 1 daca si
numai daca numarul memorat in x este strict mai mare decat 0 si numarul memorat
in y este strict mai mare decat 5?
c. x*(y-5)>=0

31. Care dintre urmatoarele expresii C, are ca valoare cel mai mare
dintre numerele naturale nenule memorate in variabilele intregi a si
b?
a. (a+b+abs(a-b))/2

32. Fie expresia C: ((a>3) && (a<15)) || (a!=b) Care dintre


expresiile C de mai jos ii este echivalentă? b. !((a<=3) ||
(a>=15)) || (a!=b)
33. Care este valoarea expresiei C: 9/2*2-5
a. 3

34. Variabilele x si y sunt de tip intreg, x memorand valoarea


8, iar y valoarea 6. Care dintre expresiile C de mai jos are valoarea 0?
c. !(x/2+2==y)

35. Care dintre urmatoarele expresii C are valoarea 1 daca si numaidaca


variabilele x si y memoreaza doua numere naturale pare consecutive?
d. ((x-y==2) || (y-x==2)) && (x%2==0)

36. Care dintre expresiile C de mai jos este echivalenta cu expresia !


((a<5)&&(b>7)) ?
c. !(a<5) && !(b>7)

37. Pentru care dintre perechile de valori de mai jos expresia


C:
(a%100==b%100) && (a>99) || (b>99)
are valoarea 1?
a. a=1003 şi b=3

[Link] x si y sunt de tip


intreg, x memorand valoarea
4,
iar y valoarea 2. Care dintre expresiile C de mai jos are
valoarea 0?
d. !(x==2*y)

39. Care dintre următoarele instrucţiuni C determina inserarea


cifrei 7 în fata ultimei cifre a unui numar natural, cu mai mult de 2 cifre,
memorat in variabila x?
a. x=(x/10*10+7)*10+x%10;

40. Se considera secventa C:


y=0; do{ x=x/10; y++;
} while(x%100==0);
Care este valoarea pe care poate sa o aiba initial variabila
intreaga x daca, la sfarsitul executării secventei, variabila intreaga y are
valoarea 2?
b. 5000

41. Care dintre urmatoarele instructiuni C determina eliminarea cifrei din


mijloc a unui numar natural, cu exact 5 cifre, memorat in
variabila x?
a. x=x/1000*100+x%100;

42. Fie secventa C:


p=1; n=279;
while (n>=100)
{ p=p*10;
n=n-100;
}
Cate atribuiri se executa, in total, in secventa alaturata, daca n
si p sunt variabile de tip intreg?
a. 4

43. Care este valoarea tiparita de secventa de program C:


x=30; y=5; z=(x+y)/6.0; z=(int)
(z*100); z=z/100;
printf(“%0.2f”,z);
stiind ca x si y sunt variabile intregi, iar z este o variabila reala?
c. 5.83

44. Care dintre expresiile C/C++ de mai jos are valoarea 1 dupa executarea
secventei de instrucţiuni C:
v1=0; v2=0;
for(i=1;i<=3;i++)
{ for (j=1;j<=i;j++)
v1=v1+1;
for (k=i;k<=3;k++)
v2=v2+1;
}
in care toate variabilele sunt intregi?
c. v1==v2

45. Care este valoarea expresiei C: (a/b%c<=b)||!(b==a) daca variabilele


intregi a, b, c au valorile a=20, b=3, c=5?
b. 1

46. Variabilele a, b, c si d memoreaza valori reale astfel incat a<b


si c<d. Care dintre expresiile C de mai jos are valoarea 1 daca si
numai daca intersectia intervalelor inchise [a,b] si [c,d] este vida?
a. (d<a) || (b<c)

47. Care din urmatoarele afirmatii despre operatorii din C este falsa?
d. <= este operator logic

48. Care este cea mai mica valoare pe care o poate avea expresia
C:
x/7-x%7 daca variabila x, de tip int, memoreaza un numar natural cu o singură
cifra?
a. 0

49. In expresia C: x%2+(x+1)%2 variabila x este de tip intreg.


Aceasta expresie:
a. are valoarea 1 pentru orice numar natural x.

50. Cate valori distincte, numere naturale, poate primi


variabila x
pentru ca valoarea expresiei x/2/2 scrisa in C sa fie egala cu
1?
b. 4

51. Care dintre urmatoarele expresii C are valoarea 1 daca si


numai
daca numarul natural nenul memorat in variabila x, de tip int,
este
divizibil cu 100?
d. x%10+x%10/10==0

52. Care dintre urmatoarele expresii C are valoarea 1 daca si numai


daca numarul natural memorat de variabila x de tip int are exact doua cifre?
d. x/100==0 && x/10!=0

53. Se considera variabila a care memoreaza un numar cu exact 6 cifre. Care


dintre expresiile C de mai jos are ca valoare numarul
format din cele doua cifre din mijloc ale valorii memorate in a?
b. a/100%100

54. Stabiliti care dintre urmatoarele expresii C are valoarea 1 daca si numai
daca numarul intreg memorat in variabila x nu apartine intervalului (-a,-
b)u[c,d], unde a, b, c si d sunt numere reale pozitive.
a. (x<=-a) || ((x<c)|| (x>=-b)) || (x>d)

55. Variabila a memoreaza un numar natural care are exact 3


cifre.
Care dintre expresiile C de mai jos are ca valoare numarul
format din prima si ultima cifra a numarului memorat de a?
c. a/100*10+a%10

56. In secventa alaturata de program:


for (i=1;i<=3;i++)
for (j=10;j>=i+1;j--)
printf(”%d”,j);
instructiunea de afisare se va executa de un numar de ori egal cu:
a. 24

58. Stabiliti care dintre urmatoarele expresii C are valoarea 1 dacasi numai
daca numarul intreg memorat in variabila x nu apartine intervalului (-a,-b],
unde a si b sunt valori reale pozitive astfel
incit b < a.
d. (x<=-a) && (x>b)

59. In secventa de instructiuni:


y=x;
while(x<=3)
{
printf("*");
y=y+1; x=x+y;
}
variabilele x si y sunt de tip int. Care este valoarea pe care
trebuie să o aiba initial variabila x daca la finalul executarii secventei s-a
afisat un singur caracter asterisc (*)?
a. 0

60. Care este valoarea pe care trebuie să o aiba initial variabila


intreaga x pentru ca, in urma executarii secventei
while (x!=3){
x=x-1;
printf(”HH”);
}
sa se afiseze sirul HHHHHH?
c. 6

61. Care dintre expresiile urmatoare, scrise in limbajul C, are valoarea 1 daca
si numai daca valorile variabilelor intregi x si y
sunt numere pare?
c. (x%2==0) || (y%2==0)

62. Fie secventa de instructiuni C:


x=4; y=6;
while (y==6) y=y+1;
if (x==y) x=x+1;
Care este numărul total de atribuiri efectuate la executarea secvenţei de
instrucţiuni?
c. 2

63. Care este valoarea expresiei C: 50-(100–300/2/(2+3))?


c. -20

64. Stiind ca variabilele x si y sunt de tip intreg, care este


instrucţiunea prin care variabilei x i se atribuie ultima cifra a numarului
natural memorat in variabila y?
c. x=y%10;

65. Stiind ca variabilele x si y sunt de tip intreg, care este


instructiunea prin care variabilei x i se atribuie cifra zecilor numarului
natural cu cel putin doua cifre memorat de variabila
y?
a. x=y/10%10;

66. Care este instructiunea prin care variabilei x i se atribuie


valoarea sumei cifrelor numarului natural format din exact trei cifre, memorat
de variabila y?
a. x=y/100+y/10%10+y%10;

67. Care este instructiunea prin care variabilei x i se atribuie valoarea cifrei
sutelor numarului natural cu cel putin 4 cifre memorat in variabila y?
a. x=y/100%10;

68. Care este instructiunea prin care variabilei x i se atribuie


numarul obtinut prin inversarea ordinii cifrelor numarului natural format
din exact 2 cifre, memorat in variabila y?
a. x=y%10*10+y/10;

69. Variabila intreaga n memoreaza un numar natural impar. Care


dintre urmatoarele expresii C are valoarea 1?
c. n%2!=0

70. Care dintre urmatoarele variabile nu isi modifica valoarea in urma


executarii secventei de instructiuni:
c=2*a-b;
a=a-b; a=c-a;
b=2*a-c;
oricare ar fi valorile lor initiale? (a,b,c sunt variabile de
tip int).
b. doar c

71. Variabilele a, b si c, de tip int, pot fi initializate cu oricare numere


naturale impare distincte. Stiind ca c este divizor al lui a, iar b nu este
multiplu al lui c, care dintre urmatoarele expresii scrise in C are valoare
1?
a. !((a % c!=0) || !(b % c!=0))

72. Variabila a, de tip int, memoreaza un numar natural impar, iar variabila
b, de tip int, memoreaza un numar natural par. Care dintre urmatoarele
expresii C are valoarea 1?
a. a%2 && b%2;

73. Variabilele a si b sunt de tip int, iar variabilele c si d


sunt de tip double. Care dintre urmatoarele instructiuni de atribuire nu este
corecta din punct de vedere sintactic?
d. b=(d<=c);

74. Pentru o valoare naturala mai mare decat 1 memorata in variabila globala n,
subprogramul urmator afiseaza cel mai mare divizor al lui n, mai mic decat n,
la apelul divi(n).
void divi(long i){
if ( ... == 0) printf(“%ld”, ...); else divi(i-1);
}
Cu ce expresii trebuie completate punctele de suspensie?
a. n % i si i

75. Se considera algoritmul:


1. citeste n; a = 0; b = 1; k = 2;
2. Cat timp k<n executa { scrie a, b; a = a+b; b = a+b; k =
k+2;}
3. Daca k = n atunci scrie a, b; altfel scrie a.
Ce sir va calcula algoritmul pentru n = 7?
c. 0, 1, 1, 2, 3, 5, 8

76. Se considera definitia


void f(int n){
int j;
if (n>0) for (j=1; j<=n; j++) {printf(“%d”,j); f(n-1);}
}
Ce se afiseaza ca urmare a apelului f(2)?
d. 1121

77. Variabila p este declarata astfel:


int *p;
Stiind ca p retine adresa unei variabile de tip int, care dintre
urmatoarele instructiuni afiseaza valoarea respectivei variabile intregi?
b. printf(“%d”,*p);

78. Se considera un tablul unidimensional in care elementele sunt in


ordinea: 1, 3, 5, 7, 10, 16, [Link] a afla pozitia pe care se afla
valoarea x = 10 se aplica metoda cautarii binre. Care este succesiunea de
elemennte care astepau valoarea lui x:.
b. 7, 16, 10

79. Variabilele a si i sunt declarate astfel:


int a[100], i;
Care dintre urmatoarele instructiuni este corecta din punct de vedere
sintactic?
a. a = i;

80. Stiind ca p este un vector (tablou unidimensional) cu 3 componente


intregi (tabloul este declarat global), M este multimea tuturor cifrelor
nenule, iar functia tipar afiseaza valorile elementelot p[0], p[1] si p[2],
cu ce trebuie inlocuite simbolurile a, b si c in definitia functiei G
astfel incat in urma apelului G(0)sa se afiseze toate elementele produsului
cartezian MxMxM?
void G(int k){
int i;
for (i = a; i<=b; i++) { p[k] = i; if (k == c) tipar(); else
G(k+1);}
}
Nu e a. a = 0, b = 10, c = 3

81. Se considera urmatoarea functie recursiva apelata numai pentru numere


naturale nenule:
int f(int a, int b){
if (a<b) return a; else return f(a-b, b);
}
Care dintre urmatoarele functii este echivalenta cu functia data?
c. int f(int a, int b){return a%b;}

82. Fie v un tablou unidimensional cu n elemente de tip intreg, iar n un numar


natural nenul (n <=100) si secventa urmatoare:
{i=0;
while (i<n) {v[i] = i*i; i++;}
}
De cate ori se repeta instructiunea i++; in timpul executarii secventei date?
b. n ori

83. Se considera urmatoarele declaratii:


int x[5] = {0, 1, 5, 3, 4};
int y, i;
si secventa de instructiuni:
{
y = x[1];
for (i = 0; i<=4; i++) if (y < x[i]) y = x[i];
printf(“%d”, y);
}
Ce se va afisa in urma executarii acestei secvente?
b. 5

84. Daca n este un numar natural (intreg pozitiv), ce realizeaza urmatoarea


secventa?
{p=1;
while(n) p *= (n--);
}
c. Calculeaza in variabila p
valoarea lui n!

85. Care dintre urmatoarele variante realizeaza deschiderea la


citire a fisierului text “[Link]”
c. f = fopen(“[Link]”, “r”);

86. Se considera functia f al acarui prototip/antet este bazat


pe:
void f(int a[100][100], int n, int m, int i, intj);
Functia precizata realizeaza interschimbarea liniilor i si j ale tabloului
transmis prin parametrul a, care are n linii si m coloane.
Pentru a ordona crescator numerele de pe coloana a 3-a a
tabloului a,functia f se apeleaza in timpul executarii secventei:
for (i=0; i<n-1;i++)
for(j = i+1; j<n; j++)
if(a[i][3] >a[j][3]) f(a, n, m, i, j);
de un numar de ori egal cu:
c. n

87. Consideram urmatoarea declaratie:


struct produs {char denumire[10]; int pret;} p;
Cum se poate accesa prima litera a denumirii unui produs ale carui
caracteristici sunt memorate in variabila p?
c. [Link][0]

88. Care dintre urmatoarele variante realizeaza deschiderea la


scriere a fisierului text “[Link]”? b. f =
fopen(“[Link]”,”w”);

89. Stiind ca fisierul “[Link]” are urmatorul continut:


13 45 23
32 42 234
56 78
32 23 43
32 32 32 32
ce se va afisa in urma executarii programului urmator?
#include <stdio.h> FILE *f; int x, y,
z; void main(){
f = fopen(“[Link]”,”r”);
fscanf(f, “%d %d %d\n”, &x, &y, &z);
fscanf(f, “%d”, &z);
printf(“%d %d %d \n”, x, y, z);
}
d. 13 45 32

90. Stiind ca fisierul “[Link]” are urmatorul continut:


1 2 3 4
67 34 23
567 546 677
1234 3234 4565 6564
12345 12445 12223
ce se va afisa in urma executarii programului urmator?
#include <stdio.h>
FILE *f, int x, y, z;
void main(){
f = fopen(“[Link]”, “r”); fscanf(f, “%d
%d”,&x, &y); fscanf(f, “%d\n”,&z);
printf(“%d %d %d \n”, x, y, z);
}
a. 1 2 3

91. Care dintre urmatoarele secvente au ca efect citirea unui


caracter din fisierul “[Link]”?
c. f = fopen(“[Link]”, “r”); fscanf(f, “%c”, &x); fclose(f);

92. Considerand ca variabila f este de tip fisier (FILE *), care


dintre urmatoarele instructiuni verifica daca s-a ajuns la sfarsitul
fisierului indicat de f?
b. if (feof(f)) printf(“final”); else printf(“mai este”);

93. Stiind ca fisierul “[Link]” are urmatorul continut:


12345 12
93 16 32
8.023 322 21
0.823 21
0.21 213.12
ce se va afisa in urma executarii programului urmator?
#include <stdio.h>
FILE *f, char x, y, z;
void main(){
f = fopen(“[Link]”, “r”);
fscanf(f, “%c”, &x); fscanf(f,” %c”, &y);
while(getc(f) != ‘\n’); fscanf(f, “%c”, &z);
printf(“%c %c %c \n”, x,y,z);
}
a. 1 2 3

94. Care va fi continutul fisierului “[Link]” in urma executarii programului


urmator?
#include <stdio.h>
FILE *f; char x, y, z;
void main(){
f = fopen(“[Link]”,”w”);
fprintf(f,”Ieri %d\n”,13); fprintf(f,”Azi
%d”,14); fprintf(f,”Maine %d\n”,15);
fclose(f);
}
b. Ieri 13
Azi 14 Maine 15

95. Stiind ca fisierul “[Link]” are urmatorul continut:


IaEaws
S,a.d sdll
-dsa
Xda dsa asd
da
sda sad
ce se va afisa in urma executarii programului urmator?
#include <stdio.h>
FILE *f; char x, y, z;
void main(){
f = fopen(“[Link]”,”r”); while(getc(f) !
= ‘\n’); fscanf(f,”%c”, &x);
while(getc(f) != ‘\n’); fscanf(f,”%c”,
&y); while(getc(f) != ‘\n’);
fscanf(f,”%c”, &z);
printf(“%c %c %c \n”, x, y, z);
}
a. I S –

96. Se considera definitia:


long f(int n){
if (n == 0) return 1;
else if (n == 1) return 4;
else return f(n-1) - f(n-2);
}
Stabiliti ce valoasre returneaza apelul f(7).
d. 4

97. Se considera programul C:


#include <stdio.h>
void F(int *a, int b){ b +=*a; (*a)*=b;
printf(“%d %d “, *a, b);
}
void main(void){
int x = 5, y = 7; F(&x, y);
printf(“%d %d“, x, y);
}
Ce se va afisa in urma executarii?
c. 60 12 60 7

98. Se considera definitia


long f(int n, int k){
if (n == k || k == 1) return 1;
if (n < k) return 0;
long s=0, i;
for (i=1; i<=k; i++) s+=f(n-k,i);
return s;
}
Stabiliti ce valoare returneaza apelul f(6,3).
a. 3

99. Se considera definitia:


long f(int x, int y){
if (x == y || x == 0) return 1;
else return f(x,y-1)+f(x-1,y-1);
}
Ce valoare returneaza apelul f(8,10)?
b. 45

100. Pentru un tablou bidimensional a cu 10 randuri si 10


coloane,stabiliti ce calculeaza secventa de program urmatoare, in
variabila
s:
s = 0;
for (i = 0; i<10; i++) for (j = i; j <10; j++) s+=a[i][j];
c. Suma elementelor situate deasupra diagonalei principale, inclusiv
diagonala principala

101. Se considera secventa:


{int i, j;
for (i = 1; i<n; i++) for(j = i; j < n; j++) if (j%i == 0)
printf(“%d%d”, i, j);
}
De cate ori se va executa instructiunea de decizie (marcata ingrosat:
j%i == 0) din secventa de program de mai sus daca valoarea initiala a
variabilei intregi n este 8?
d. 28

102. Se considera secventa de instructiuni:


{char a[]=”aabbddeff”;
char b[] =”aabbdeeff”’
if (strcmp(a, b) == 0) printf (“egalitate”); else printf(“%s
“,b);
}
Care este rezultatul obtinut in urma executarii?
a. aabbdeeff

103. In functia recursiva de mai jos se considera ca tabloul unidimensional


v este declarat global.
void star(int i){ if(i<10)
{ printf(“*”);
if (v[i] == i+1) star(i+2); else star(i+1);
}
}
Pentru care dintre declaratiile urmatoare, apelul star(0)
produce 7
asteriscuri (stelute)?
a. int v[] = {1, 4, 3, 2, 1, 6, 5, 4, 3, 10};

104. Variabila d, declarata prin


struct dreptunghi
{
float a,b,p;
}d;
memoreaza in campurile a si b latimea si, respectiv, lungimea unui
dreptunghi. Care dintre urmatoarele instructiuni atribuie campului p al
variabilei d valoarea perimetrului dreptunghiului respectiv?
c. d.p=2*d.a+2*d.b;

105. Variabila d,declarata prin struct


dreptunghi
{
float a,b,aria;
}d;
memoreaza in campurile a si b latimea si, respectiv, lungimea
unui dreptunghi. Care dintre urmatoarele instructiuni atribuie
campului aria al variabilei d valoarea ariei dreptunghiului respectiv?
d. [Link]=d.a*d.b;

106. In declararea struct p{


int a,b;} x,y;
int t;
campul a al structurii memoreaza numaratorul, iar campul b memoreaza numitorul
unei fractii. Care dintre urmatoarele secvente de instructiuni determina, in
urma executarii, interschimbarea numitorului fractiei x cu numitorul fractiei y?
a. t=x.b; x.b=y.b; y.b=t;

107. Se considera tabloul bidimensional a cu n linii numerotate de la 0 la n-1


si m coloane numerotate de la 0 la m-1. Ce reprezinta elementul a[n-1][p] dupa
executarea secventei de program:
p=0;
for (i=1;i<m;i++)
if (a[n-1][p]<a[n-1][i]) p=i;
a. cel mai mare element de pe linia n-1

108. Considerand declararea struct {


int a, b;
} x;
care dintre urmatoarele secvente de instructiuni realizeaza in mod corect
citirea de la tastatura a valorilor celor doua campuri ale variabilei x?
c. scanf(”%d %d”, &x.a,&x.b);

109. Considerand declararea struct {


int a, b;
} x;
care dintre urmatoarele secvente de instructiuni afiseaza valorile memorate in
cele doua campuri ale variabilei x, separate printr- un spatiu?
a. printf(”%d %d”, x.a,x.b);
110. Pentru a memora simultan numele şi media la ‚Programare Procedurala’ a unui
student in variabila e, se poate utiliza declararea:
d. struct {char a[40]; float b;} e;

111. Care dintre urmatoarele variante reprezinta o declarare corecta pentru o


variabila x care memoreaza simultan varsta in ani impliniti si media la licenta
a unui absolvent?
a. struct {float media;
int varsta;} x;

112. Care dintre urmatoarele variante reprezinta o declarare corecta pentru o


variabila x care memoreaza simultan codul de identificare al unui candidat la un
examen, exprimat ca un numar natural de cel mult 4 cifre si media obtinuta de
acesta la examen, exprimata ca un număr real?
b. struct { int cod;
float media;} x;

113. Care dintre urmatoarele variante reprezinta o declarare corecta


pentru o variabila x care memoreaza simultan coordonatele reale (abscisa si
ordonata) ale unui punct in planul xOy?
a. struct punct {float ox,oy;} x;

114. Care dintre urmatoarele variante reprezinta o declarare corecta pentru o


variabila x care memoreaza simultan partea reala si partea imaginara a unui
numar complex?
c. struct complex{
float im, re;} x;

115. Care dintre urmatoarele variante reprezinta o declarare corecta pentru


o variabila x care memoreaza simultan numaratorul si numitorul unei fractii
ireductibile:
a. struct fractie{int n1,n2;} x;

116. În secvenţa: p=1;


for(i=1;i<=4;i++)
....
variabila a memoreaza un tablou bidimensional cu 4 linii si 4 coloane,
numerotate de la 1 la 4, cu elementele reale. Variabila p este reală, iar i este
de tip întreg. Care dintre instructiunile de mai jos poate inlocui punctele de
suspensie astfel incat secventa sa determine memorarea in variabila p a valorii
produsului celor 8 elemente aflate pe diagonalele
matricei.
a. p=p*a[5-i][i]*a[i][5-i];

117. Pentru declararea


struct student
{char nume[20];
int nota;} e1,e2;
precizati care dintre instructiunile de atribuire este gresita:
a. e1=e2+1;

118. Care din urmatoarele expresii are valoarea 1 daca si numai daca sirul de
caractere s, de lungime 10, este obtinut prin
concatenarea a doua siruri identice?
d. strcmp(s,strcat(s,s+5))==0

119. Functia predefinita care returneaza modulul unui numar intreg este:
d. abs

120. Care este valoarea expresiei strlen(s) pentru variabila s de tip sir de
caractere, declarata si initializata astfel: char
s[15]=”Proba_1”;
a. 7

121. Pentru declararea unei variabile care memoreaza un cuvant avand maximum 25
caractere, putem utiliza sintaxa:
c. char c[26];

122. Stiind ca in urma executarii secventei x=strlen(s);


for (i=0;i<x/2;i++) printf(“%c%c”,s[i],s[x-i-1]);
s-a afisat succesiunea de caractere EXAMEN, care este sirul de
caractere memorat de variabila s?
a. EAENMX

123. Fie declararile:


struct student{ char nume[30];
float nota;}; student x;
Dacă variabila x retine informatii despre un student, precizati care este
varianta corecta ce afisează prima litera din numele acestuia?
b. printf(“%c“,[Link][0]);

124. Consideram ca variabila s memoreaza sirul de caractere examen.


Care va fi valoarea lui s dupa executarea instructiunilor?
s[0]= ‘E’;s[strlen(s)-1]= ‘N’;s[strlen(s)/2-1]= ‘A’;s[strlen(s)/
2]=
‘M’.
c. ExAMeN

125. Consideram ca variabila s memoreaza sirul de caractere mama.


Care va fi valoarea lui s dupa executarea instructiunilor de mai jos?
s[0]=′M′; s[strlen(s)-3]= ′A′;
a. MAma

127. In secventa
if(!(strcmp(s1,s2) || strcmp(s1,s3)))
val=1; else val=2;
variabilele s1, s2 si s3 retin siruri de caractere. Dupa executarea acesteia,
variabila intreaga val primeste valoarea 1 daca
a. s1, s2, s3 retin siruri identice de caractere

128. Fiind dat un tablou bidimensional cu 20 linii şi 20 coloane,cate elemente


se gasesc strict deasupra diagonalei secundare a tabloului?
d. 210

129. Elementele tabloului bidimensional


1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
cu 4 linii si 4 coloane, sunt toate numerele naturale cuprinse intre 1 si 16
asezate in spirala, incepand cu primul element al primei linii si continuand in
sens invers trigonometric. Care este cel mai mare numar situat in zona
triunghiulara de sub diagonala secundara (exclusiv diagonala secundara), in
cazul unui tablou bidimensional cu 5 linii si 5 coloane generat dupa aceeasi
regulă?
d. 22

130. Consideram declararea


struct student{
char nume[10],prenume[20];
float medie;
}p;
folosita pentru a memora numele, prenumele si media unui student.
Care dintre expresiile de mai jos are ca valoare prima litera a numelui unui
student ale carui informatii sunt memorate in variabila
p?
[Link][0]

131. Consideram declararea struct student{


char nume[10], prenume[20];
float nota1,nota2;
} x;
Folosita pentru a memora numele, prenumele si cele 2 note ale unui
student(verificare,laborator).Care dintre instructiunile de mai jos
calculeaza in variabila reala m media aritmetica a notelor studentului ale
carui informatii sunt memorate in variabila x?
a. m=(x.nota1+x.nota2)/2;

132. In secventa
for(i=0;i<=strlen(x)-1;i=i+3) printf(“%c”,x[i]); variabila x memoreaza un sir cu
cel mult 100 de caractere, iar variabila i este de tip intreg. Care este numarul
maxim de caractere pe care il poate avea sirul x astfel încat secventa alaturata
sa afiseze exact 3 caractere ale acestuia?
a. 7

133. Consideram declararea:


struct punct{
int x,y;
} p;
Care dintre urmatoarele instructiuni este corecta din punct de vedere
sintactic?
c. p.x=7;

134. Variabila x este utilizata pentru a memora numele, prenumele si salariul


unei persoane. Numele si prenumele pot avea cel mult 20 de litere fiecare, iar
salariul este un numar natural nenul mai mic decat 30000 . Care dintre
urmatoarele declarari este corecta?
c. struct persoana{
char nume[21],prenume[21];
int sal;} x;

135. Variabila t este utilizata pentru a memora pretul (val) si numele autorului
unei carti. Pretul cartii este un numar natural de cel mult 3 cifre, iar numele
autorului nu poate avea mai mult de 20 de litere. Care dintre urmatoarele
declarari este corecta?
c. struct carte{ int val;char nume[21];} t;

136. Variabila t este utilizata pentru a memora numarul de


exemplare disponibile intr-o biblioteca si titlul unei carti. Numarul de
exemplare este un numar natural de cel mult 2 cifre, iar titlul nu poate avea
mai mult de 20 de litere. Care dintre urmatoarele declarari este corecta?
b. struct carte{
int nr;
char titlu[21];
} t;

137. Variabila s memoreaza un sir de caractere. Care dintre


urmatoarele expresii C este nenula daca si numai daca lungimea sirului este
strict mai mică decat 10?
a. strlen(s)<10

138. Variabila s memoreaza un sir de caractere. Care dintre urmatoarele


expresii C este nenula daca si numai daca lungimea sirului este un numar par?
d. strlen(s)%2==0

139. Care vor fi valorile afisate dupa executarea secventei


char s1[20]=”variabila”, s2[20]=”varianta”;
if(strcmp(s1,s2)<0 && strlen(s1)<strlen(s2)) printf(”%s
%s”,s1,s2);
else
printf(”%s %s”,s2,s1);
daca variabilele s1 si s2 sunt de tip sir de caractere?
c. varianta variabila

140. Considerand declararile struct cerc


{float raza; int x,y;}; cerc
c;
care dintre urmatoarele referiri este corecta din punct de vedere sintactic ?
b. c.x

141. Se considera un tablou bidimensional a, format din numere naturale, cu n


linii si n coloane, numerotate de la 1 la n. Ce reprezinta valoarea variabilei
x, dupa executarea secventei de program:
x=a[n][1]; for(i=n;i>=1;i--) if
(x<a[i][n-i+1]) x=a[i][n-i+1];
b. cel mai mare număr de pe diagonala secundară a tabloului a

142. Considerand declararile struct


punct{float x,y;}; struct fig
{ char tip;
punct a,b,c;}
fig e;
care dintre urmatoarele referiri este corecta din punct de vedere sintactic ?
d. e.a.x

143. Se considera un tablou bidimensional a cu n linii si n coloane,numerotate


de la 1 la n, cu elemente numere intregi. Ce reprezinta valoarea variabilei
intregi x, dupa executarea secventei de program: x=0; for(i=1;i<=n;i++) x=x+a[i]
[i];
a. Suma elementelor de pe diagonala principală a tabloului a

144. Daca variabila s de tip sir de caractere memoreaza sirul INFORMATICA atunci
strlen(s) are valoarea?
d. 11

145. Cum se poate accesa prima litera a denumirii unui produs ale carui
caracteristici sunt memorate in variabila p, declarata prin:
struct produs{
char denumire[15];
int pret;}p;
c. [Link][0]

146. Cum se poate accesa prima litera a numelui unei personae ale carei date de
identificare sunt memorate in variabila p,declarat prin:
struct persoana{
char nume[20],prenume[20];
int varsta;} p;
a. [Link][0]

147. Cum se poate accesa prima litera a denumirii unui material ale carui
caracteristici sunt memorate în variabila m, declarată prin:
struct material{
char denumire[20];
int pret;} m;
d. [Link][0]

148. Cum se poate accesa prima literă a numelui unui student ale carui date de
identificare sunt memorate in variabila e,declarata prin:
struct student{
char nume[20],prenume[20];
int varsta;}e; b. [Link][0]
149. Stiind ca fiecare dintre variabilele var1, var2 memoreaza numele si nota
unui student in forma data de declararea: struct student
{ char nume[30];
float nota;
}var1,var2;
Indicati care dintre urmatoarele expresii atribuie variabilei
reale m media aritmetica a notelor celor doi studenti.
a. m=([Link]+[Link])/2;

150. Variabilele x si s memoreaza siruri cu cel mult 20 de caractere: x


memoreaza sirul primavara, iar variabila s memoraza sirul anotimp.
Ce se va memora in variabila s în urma executării instrucţiunii:
strncat(s, x, 5);
a. anotimpprima

151. Se considera declararile:


struct A {
int x; char y; float z;};
struct B { struct A x; long
y;};
B x, y;.
Care este tipul expresiei x.x.y
d. char

152. Ce se va afisa în urma executarii secventei de program if(strcmp(x, y) > 0)


printf(“%s”,x);
else
if(strcmp(x,y) < 0) printf(“%s”,y);
else printf(“imposibil”);
daca variabila x memoreaza cuvantul examen, iar variabila y memoreaza cuvantul
banal?
b. examen

153. Ce se va afisa in urma executarii secventei de program:


for(i = 0; i < strlen(x); i++)
if(x[i] >= ‘A’ && x[i] <=’N’) x[i] = x[i] +
‘a’-‘A’; printf("%s", x);
stiind ca i este o variabila de tip intreg, iar variabila x memoreaza initial
sirul de caractere ExAMeNe?
d. examene

154. Variabila t memoreaza o matrice cu 5 linii si 5 coloane, numerotate de la 0


la 4, cu elemente numere intregi, iar celelalte variabile sunt intregi. Secventa
de program x=0;
for(i=0;i<5;i++) for(j=i+1;j<5;j+
+) x=x+t[i][j];
determina memorarea in variabila x a sumei elementelor situate:
b. strict deasupra diagonalei principale

155. Variabila t memoreaza o matrice cu 8 linii si 8 coloane, numerotate de la 0


la 7, cu elemente numere intregi, iar variabilele i si j sunt intregi. Secventa
de program
z=0; for(i=0;i<8;i++)
for(j=0;j<i;j++) z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor elementelor situate:
a. strict sub diagonala principala

156. Variabila t memoreaza o matrice cu 8 linii si 8 coloane, numerotate de la 0


la 7, cu elemente numere intregi, iar celelalte variabile sunt intregi. Secventa
de program
z=0;
for(i=0;i<8;i++) for(j=0;j<8-i;j+
+) z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor elementelor situate:
d. strict deasupra diagonalei secundare

157. Variabila t memoreaza o matrice cu 8 linii si 8 coloane,numerotate de la 0


la 7, cu elemente numere intregi, iar celelalte variabile sunt intregi. Secventa
de program
z=0;
for(i=0;i<8;i++) for(j=7-i;j<8;j+
+) z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor elementelor situate:
a. sub diagonala secundara, inclusiv diagonala secundara

158. Pentru o matrice t cu 8 linii si 8 coloane, numerotate de la 0 la 7, cu


elemente numere intregi, secventa de program
z=0; for(i=0;i<8;i++) for(j=8-
i;j<8;j++) z=z+t[i][j];
determina memorarea in variabila intreaga z a sumei tuturor elementelor
situate:
d. strict sub diagonala secundara

159. Un sir de caractere se numeste palindrom daca sirul citit de la stanga la


dreapta este identic cu sirul citit de la dreapta spre stanga. Care dintre
urmatoarele expresii C are valoarea 1 daca si numai daca sirul de caractere
memorat în variabila s, avand exact 3 caractere, este palindrom?
c. s[0]==s[2]

160. Ce valoare are variabila s de tip sir de caractere dupa executarea


instructiunilor de mai jos? strncpy(s,strstr(″examen″,″am″),4); s[4]='\0';
(4p.)
a. amen

161. Ce valoare are variabila s de tip sir de caractere dupa executarea


instructiunilor de mai jos?
strncpy(s,strstr("Informatica","form"),strlen("EXA09")); s[5]='\ 0';
b. forma

162. Ce valoare are variabila s de tip sir de caractere dupa executarea


instructiunii de mai jos?
s=strstr(strnset("Olimpiada",'#',strlen("2009")),"ad");
b. ada

163. Ce valoare are variabila s de tip sir de caractere dupa executarea


instructiunilor de mai jos?
s=strncpy(s,strstr("informatica","form"),strlen("LIC009")); s[6]='\0';
a. format

164. Ce valoare are variabila s de tip sir de caractere dupa executarea


instructiunii de mai jos?
s=strcat(strncpy(s,"informatica",strlen("2008")),"LIC");
b. infoLIC

166. In declararea struct punct


{
float x,y;
}P;
campurile x si y ale inregistrarii pot memora coordonatele carteziene ale unui
punct din planul xOy. Care dintre urmatoarele expresii are valoarea 1 daca si
numai daca punctul P este situat pe axa Ox ?
b. P.y==0

167. In secventa
for(i=0; i<8; i++) for(j=0; j<8;
j++) a[i][j] = (i+j)%8;
i, j si n sunt variabile intregi, iar a este o matrice formata din 8 linii şi 8
coloane, numerotate de la 0 la 7. Care este suma elementelor de pe ultima linie
a matricei, in urma executării acestei secvenţe?
a. 28

168. In secventa for(i=0; i<n; i+


+) for(j=0; j<n; j++) a[i][j] =
(i+j)%n;
i, j si n sunt variabile intregi, iar a este o matrice patratica formata din n
linii si n coloane numerotate de la 0 la n-1. Care este suma elementelor de pe
diagonala secundara din matricea a, in urma executarii acestei secvente, daca
n=8?
d. 56

169. In secventa
for(i=0; i<n; i++) for(j=0; j<n;
j++) a[i][j] = (i+j)%n;
i, j si n sunt variabile intregi, iar a este o matrice patratica formata din n
linii si n coloane, numerotate de la 0 la n-1. Care este suma elementelor de pe
diagonala principala din matricea a, in urma executarii acestei secvente, daca
n=8?
a. 24

170. Ce se va afisa in urma executarii secventei de instructiuni char


a[10]="Examen"; n=strlen(a); strcpy(a+1,a+n-1); printf("%s",a);
considerand ca s este o variabila sir de caractere, iar n o variabila de tip
intreg?
a. En

171. Consideram variabila x care memoreaza sirul de caractere ABAC. Care dintre
urmatoarele instructiuni conduc la afisarea caracterului B?
a. printf("%c",x[strlen(x)-3]);

172. Fie x un număr natural cu exact 4 cifre. Care dintre urmatoarele


instructiuni C/C++ determina, in urma executarii, eliminarea cifrei sutelor
numarului memorat de variabila x?
d. x=x/1000*100+x%100;

173. Fie x o variabila care memoreaza un numar natural. Care dintre


urmatoarele expresii C are valoarea 0 daca si numai daca numarul memorat de
x nu este divizibil cu 3?
c. (1-x%3)*(2-x%3)

[Link] dintre urmatoarele


expresii C este echivalenta cu !
((x>=5)&&(x<10))?
c. (!(x>=5)) && (!(x>10))

176. Variabilele intregi x si y memoreaza numere naturale


nenule. Care dintre urmatoarele expresii C este nenula daca si numai daca
numarul obtinut prin insumarea valorilor variabilelor x si y are ultima cifra 0?
d. (x%10+y%10)%10==0

177. Stiind ca variabila intreaga n memoreaza un numar natural


cu cel putin 3 cifre, care dintre urmatoarele expresii C are ca
valoare numarul obtinut dupa eliminarea ultimelor 2 cifre ale lui n?
c. n/100

178. Fiecare dintre variabilele intregi x, y si t memoreaza cate un numar


natural de cel mult 4 cifre. Stiind ca x<y, care dintre urmatoarele expresii C
este egala cu 1 daca si numai daca numarul memorat de variabila t apartine
intervalului inchis [x,y]?
b. (t>=x) && (t<=y)
179. Fiecare dintre variabilele intregi x, y si t memoreaza cate un numar
natural de cel mult 4 cifre. Stiind ca x<y, care dintre urmatoarele expresii C
este egala cu 1 daca si numai daca numarul memorat de variabila t nu apartine
intervalului deschis (x,y)?
a. (t<=x) || (t>=y)

180. Variabilele intregi x si y memoreaza doua numere naturale cu cel mult 4


cifre fiecare. Care dintre expresiile de mai jos are valoarea 1, daca si numai
daca valoarea memorata de x
apartine intervalului [10,100] si valoarea memorata de y
apartine intervalului [5,30]?
c. (x<=100 && x>=10)|| (y>=5 && y<=30)

181. Toate variabilele din secventa de instructiuni C


if (a>b)
{ aux=a;a=b; b=aux;}
for(i=a;i<=b;i++) printf(“%d”,i);
sunt intregi. Care dintre urmatoarele afirmatii este adevarata?
b. Secventa contine o instructiune alternativa urmata de o instructiune
repetitiva.

182. Consideram variabilele intregi i si j. Care dintre


urmatoarele secvente de instructiuni C determina afisarea pe ecran , in urma
executarii, a succesiunii de cifre 55?
a.i=5; j=6; while(j>4){ printf(”%d”,i); j--;
}

183. Variabila intreaga a memoreaza un numar natural format din exact trei
cifre, toate cifrele fiind nenule si distincte. Care dintre urmatoarele
instructiuni C atribuie variabilei e suma cifrelor lui a?
c. e=a*10/1000+a/10%10+a%10;

184. Variabilele a, b si z sunt reale, iar a ≤ b. Care dintre expresiile C


urmatoare are valoarea 1 daca si numai daca valoarea variabilei z nu apartine
intervalului inchis determinat de valorile variabilelor a si b?
b. (z<a)||(z>b)

185. Variabilele x, y si z sunt intregi, x memoreaza valoarea 7, y memoreaza


valoarea 20, iar z memoreaza valoarea 5. Care este rezultatul evaluarii
expresiei aritmetice C: x+y+x*z/y ?
b. 28

186. Variabilele x, y, z si w sunt intregi, x memoreaza valoarea 2,y memoreaza


valoarea 3, z memoreaza valoarea 5, iar w memoreaza valoarea 7. Care dintre
urmatoarele expresii, scrise în limbajul C,are valoarea 1?
c. (z<=w) && (x>0) || (y>=x)

187. Variabilele x, y si z memoreaza valori reale, iar x<y. Care dintre


expresiile de mai jos, scrise in limbajul C, are valoarea 1 daca valoarea
variabilei z este situata in intervalul inchis determinat de valorile memorate
in variabilele x si y?
a. (z>=x) && (z<=y)

188. In secventa de instructiuni C:


x=20; y=5;
x=x+y; y=x-2*y; x=y+x;
variabilele x si y sunt intregi. Ce valoare va retine variabila x dupa
executarea acesteia?
d. 40

189. Care dintre expresiile C de mai jos, are valoarea 1 daca valoarea
variabilei intregi x este un numar intreg par si strict pozitiv?
a. !((x%2!=0)||(x<=0))
190. Variabila intreaga x retine un numar natural cu cel putin doua cifre. Care
dintre urmatoarele expresii C are valoarea egala cu cifra zecilor numarului
natural memorat in variabila x?
c. x / 10 % 10

191. Care dintre urmatoarele expresii C are valoarea 1 daca numarul natural
memorat de variabila n este strict mai mare decat 100 si divizibil cu 12?
d. (n%100%4 == 0) && (n%3 == 0)

192. Variabila reala x memoreaza numarul 2.682. Care dintre urmatoarele


instructiuni C va atribui variabilei intregi y valoarea 10?
b. y = (floor)(x*100)/100 + (floor)(x*100%100/10);

193. Care dintre urmatoarele expresii C are valoarea 1 daca variabila x


memoreaza un numar natural patrat perfect?
a. sqrt(x) == floor(sqrt(x))

194. Care dintre urmatoarele instructiuni C sunt corecte sintactic daca x si y


sunt doua variabile de tip intreg?
a. if (x < 2) && (x > - 5)
{x=x+1; y=y-1;}

195. Care dintre urmatoarele expresii C are valoarea 1 daca si numai daca
valoarea reala memorata de variabila y nu apartine intervalului deschis
determinat de valorile reale distincte memorate de variabilele x si z (x<z)?
b. (z>x) && (z<y)

196. Variabila intreaga n memoreaza un numar natural de exact 5 cifre.


Instructiunea care determina eliminarea din numarul n a primei si ultimei cifre
este:
b. n=n/10%1000;

197. Variabila intreaga n memoreaza un numar natural de exact 7 cifre.


Instructiunea care determina eliminarea din numarul n a celor 3 cifre din
mijlocul lui este:
a. n=n/100000*100+n%100;

198. Stabiliti ce se afiseaza in urma executarii secventei de instructiuni C


y=10.1234; x=(int)(y*100)/100;
printf(”%d”,x);
daca y este o variabila reala, iar x o variabila intreaga.
d. 10

200. Care dintre expresiile de mai jos are valoarea 1 dupa executarea secventei
de instructiuni C,
a=11;b=1;
for(i=1;i<=5;i++)
{ b=b+1;
a=a-1;
}
in care toate variabilele sunt intregi?
b. a==b

200. Variabilele intregi a si b memoreaza numere naturale. Care dintre


expresiile C de mai jos este echivalenta cu expresia(a+b)%2==0 ?
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)

201. Variabilele intregi a si b memoreaza numere naturale. Care dintre


expresiile C de mai jos este echivalenta cu expresia (a+b)%2==1 ?
a. (a%2==0) && (b%2==1)|| (a%2==1) && (b%2==0)

202. Variabila întreaga n memoreaza un numar natural cu exact 4 cifre. Care


dintre expresiile C de mai jos este echivalenta cu expresia n/100%10%2==0 ?
b. n%1000%2==0

203. Variabilele intregi n si m memoreaza numere naturale nenule pare, iar n<m.
Care dintre expresiile C de mai jos are valoarea egala cu numarul de valori
impare din intervalul inchis [n,m] ?
b. m/2-n/2

204. Care dintre instructiunile C de mai jos determina inlocuirea cu 0 a ultimei


cifre a numarului natural, cu cel putin doua cifre, memorat in variabila
intreaga n?
c. n=n-n%10;

205. Care dintre variantele de mai jos declara constanta x astfel incat aceasta
sa memoreze corect numarul real 3,14?
d. const float x=3.14;

206. In secventele C urmatoare toate variabilele sunt de tip intreg si memoreaza


numere cu cel mult 3 cifre. Care dintre variantele de mai jos determina
interschimbarea valorilor memorate de variabilele a si b?
b. a=a+b; b=a-b; a=a-b;

207. Variabila intreaga n memoreaza un numar natural format din exact doua cifre
nenule. Care dintre urmatoarele instructiuni C determina memorarea in variabila
intreaga t a numarului care are aceleasi cifre ca si n, dar in ordine inversa?
a. t=n%10*10+n/10;

208. Care dintre urmatoarele instructiuni C atribuie variabilei intregi t


valoarea -1 daca si numai daca variabilele intregi a si b sunt nenule si au
semne diferite?
c. if (a*b<0) t=-1;

209. Stiind ca variabila intreaga nr memoreaza valoarea 5, stabiliti ce


mesaj se va afisa in urma executarii secventei de instructiuni C
urmatoare.
if (nr<7) if (nr>3)
printf(”Bine”);
else printf(”Foarte bine”);
else printf(”Rau”);
d. Bine

210. Stabiliti care dintre urmatoarele expresii C are valoarea 1 daca si numai
daca numarul intreg x, nu apartine intervalului
A=(-10,-2)u[50,100]?
a. (x<=-10) || (x<50 && x>=-2) || (x>100)

211. Variabile intregi x si y memoreaza cate un numar natural, cu exact doua


cifre. Care este valoarea expresiei x-y stiind fiecare dintre expresiile C
alaturate are valoarea 1?
x/10==y%10 y/10==x%10
x/10==x%10+1
c. 1

212. In secventa de instructiuni,


y=1;
if (k>0)
if (i!=j)
y=0;
else y=2;
variabilele i, j, k si y sunt de tip intreg. Pentru care dintre urmatoarele
seturi de valori ale variabilelor i,j si k variabila y va avea valoarea 1 in
urma executarii secventei?
a. k=0; i=5; j=5

213. In secventa de instructiuni,


if (k>0)
if (i!=j) x=0;
else x=1; else x=2; if
(i!=j)
if (k>0) y=0;
else y=2;
else y=1;
variabilele i, j, k, x si y sunt de tip intreg. Pentru care dintre urmatoarele
seturi de valori ale variabilelor i, j si k variabilele x si y vor primi
valori diferite intre ele in urma executarii acestei secvente?
d. k=0; i=5; j=5

214. In secventa de instructiuni,


if (k>0)
if (i!=j) y=0;
else y=1;
else y=2;
variabilele i, j, k si y sunt de tip intreg. Pentru care dintre urmatoarele
seturi de valori ale variabilelor i, j si k variabila y va avea valoarea 1 in
urma executarii secventei?
c. k=10; i=5; j=5

215. Care dintre variabilele intregi x, y si z vor avea la finalul


executarii secventei de instructiuni, x = y + z;
z = x – z;
y = z;
z = x - y;
aceeasi valoare ca inainte de executare?
b. numai y şi z

216. Variabila intreaga x memoreaza o valoare mai mare ca 1000, formata doar
din cifre distincte. Care dintre urmatoarele instructiuni C afisează o singura
cifra?
d. printf("%d",x%10/1);

217. Care dintre urmatoarele instructiuni C este echivalenta cu x=(x+y+z)/2;


stiind ca variabilele x, y si z sunt reale?
b. x = x/2 + y/2 + z/2;

218. Stiind ca initial variabilele intregi x, y si z au valorile x=1,y=2


respectiv z=3, in ce ordine trebuie scrise atribuirile urmatoare astfel incat,
in final, expresia x+y+z sa aiba valoarea maxima?
I) x=x+y-z; II) y=x-y+z; III) z=z-x+y;
d. I III II

219. Care din operatiile urmatoare atribuie variabilei float x mediaaritmetica a


valorilor intregi a, b si c?
a. x = (a + b + c) /3;

[Link] sunt valorile finale ale variabilelor intregi x, y si z dupa executarea


operatiei de decizie,
if (x>1 && y-z>0) x = y-z;
else {y = x-1; z = y+x;}
daca initial x = 23, y = 14 si z = 25?
c. x = 23, y = 22, z = 45

[Link] dintre urmatoarele declaratii sunt corecte sintactic:


1) int ab=30;
2) int a+b;
3) float a1;
4) char 2ab;
5) int m.n;
c. 1, 3
[Link] definitia:
int a = 5, b = 3, c = 1, d = 3;
Care dintre urmatoarele expresii logice au valoarea 1 (adevarat):
1) a < b || c)
2) (b == d && c || a >= b)
3) (c && d > b)
4) a > b || !(d<a)
5) (a == b) && c
d. 1, 2, 4

223. Considerand variabila x de tip float si variabila de tip int a,care va fi


secventa de caractere afisate in urma executarii scventei de instructiuni(s
inseamna un spatiu):
x = -4.3;
a = (int)fabs(-4.0);
printf(“%2d%4.2f%2d”, a, fabs(x), (int)ceil(a+x));
d. 4s4.30s0

224. Pentru definitia alaturata a functiei ex(), stabiliti ce se afiseaza la


apelul ex(120)?
void ex(int x){ if (x != 0)
{ printf(“%d”, x %10); ex(x/10);
}
}
c. 021

225. In secventa urmatoare de instructiuni, n si y sunt variabile


intregi.
{n=156; y = 770;
while(n*y > 0) if (n >y) n = n%y; else y = y%n;
y = y+n;
}
Valoarea variabilei y la finalul executarii secventei este:
c. 2

226. Pentru un tablou x declarat global, cu 10 componente intregi,stabiliti care


sunt valorile memorate de componentele tabloului x in urma apelului ex(0, 9),
daca functia ex este definita astfel:
void ex(int i, int j){
if(i <= j) {
x[i] = i; x[j] = j; ex(i+1, j-1);
if (i % 2 != 0) {x[i]=j; x[j]=9-x[i];}
}
}
c. (1, 9, 3, 7, 5, 6, 4, 8, 2, 10)

227. Se considera ca declaratia struct patrat { float latura, aria;} p;


defineste in C patrate caracterizate prin latura si arie. Care din urmatoarele
expresii atribuie campului aria al variabilei p valoarea ariei patratului
respectiv?
c. [Link] = [Link] * [Link];

228. Ce va fi afisat pe ecran in urma instructiunii


printf(“%6.3f\n”,
45.23); ?
b. 45.230

229. Stabiliti care dintre urmatoarele declaratii de variabile sunt corecte:


1) float 1t, 2t;
2) int a[1..10];
3) int x, y;
4) string s;
5 ) double e; v;
d. 2, 3, 4

230. Daca a, b sunt variabile de tip int, iar x si y sunt variabile de tip
float, stabiliti care dintre urmatoarele secvente de atribuiri sunt incorecte:
1) b = 2; a = b/2;
2) x = 8; y = 10; a == x+y;
3) x = 4; b = 2; y = x/b;
4) x == 20; y == 10; x =(x+y)/2;
5) a = b = 5; x = a+b;
c. 2, 3, 4, 5

231. Care dintre urmatoarele expresii are valoarea 1 daca si numai daca
numarul natural c este un multiplu comun al numerelor naturale nenule
(unsigned int) a si b?
c. (c%a == 0) && (c%b ==0)

232. Care vor fi valorile variabilelor intregi a si b dupa executarea


urmatoarelor instructiuni:
{if (a = 10, b = a+1, a != b) b++; else a++; a*=b;}
b. a = 120, b = 12

233. Care dintre urmatoarele secvente de instructiuni determina, in mod corect


maximul a trei numere?
1) if (a>b && a >c) max = a; else if (b > a && b > c) max = b;
else
max = c;
2) if (a>b) if (a>c) max = a; else max = c; else max = b;
3) if (a>b) if (a>c) max = a; else if (b>c) max = b; else max =
c;
4) if (a>b) if (b>c) max = b; else max = c; else max = a;
b. 1, 3

235. Fie secventa de instructiuni:


{x=x-1; y=2*x+y; x=2*x+1;}
Care au fost valorile variabilelor x si y, de tip int, la inceputul executarii
secventei de instructiuni date, daca la finalul executarii x are valoarea 2007
iar y are valoarea 2009.
c. x = 1004 si y = 3

236. Se considera secventa:


{int a = 5, b = 0;
do {
a--; b +=a*a;
}while(a!=0);
}
Ce valori vor avea variabilele a si b la finalul executarii secventei?
d. a = 0 si b = 30

237. Functia revers(v, p, q) inverseaza ordinea elementelor din tabloul


unidimensional v aflate pe pozitiile p, p+1, ..., q-1, q (se presupune ca p <=
q). Care dintre urmatoarele secvente de program inverseaza doar prdinea
elementelor v[p] si v[q]:
b. revers(v, p, q); revers(v, p+1, q-1);

238. Fie v un tablou unidimensional format din n numere intregi (n>=2). Stiind
ca primul element din tablou se afla pe pozitia 1 (pozitia 0 este utilizata in
alte scopuri), indicati care dintre urmatoarele secvente atribuie variabilei
intregi max cea mai mare valoare din tabloul v:
b. for(int i=2; i<=n; i++)if(v[i-1]>v[i]) v[i] = v[i-1]; max =
v[n];

239. Fie v un tablou unidimensional format din n componente


intregi,numerotate de la 1 la n (pozitia 0 are alta semnificatie), iar p si
k doua variabile de tip intreg. In care dintre urmatoarele secvente
variabilei p i se atribuie prima valoare strict pozitiva din tabloul v,
daca exista o astfel de valoare, sau 0 in caz contrar?
c. {p = 0; for(k=1; k<=n; k++) if (v[k]>0 && !p) p = v[k];}

240. Care dintre urmatoarele reprezinta o declaratie corecta pentru o


variabila x care memoreaza simultan numele si media a maximum 30 de
studenti?
d. struct {char nume[30]; double media;} x[30];

241. Care dintre urmatoarele secvente calculeaza suma elementelor de pe linia k


a unei matrice a, cu m linii (numerotate de la 1 la m; linia de indice 0 este
utilizata in alte scopuri) si n coloane (numerotate de la 1 la n; coloana de
indice 0 este utilizata in alte scopuri)?
d. s = 0; i=1; while(i<=n) {s+=a[k][i]; i++;}

242. Fie instructiunea:


if (x>y) if (y>z) if(z>x) s = x+y+z; else p = x*y*z;
O secventa de instructiuni echivalenta cu aceasta, dar care foloseste o singura
data cavantul cheie if, este:
d. if(x>y && y>z) p = x*y*z;

243. Care dintre secventele de mai jos conduce la memorarea in variabila max a
celei mai mari dintre cele n valori intregi retinute in tabloul unidimensional a
(in care a[0] este primul element)?
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];

244. Dintre tipurile simple de date face parte tipul:


a. double

245. Fie secventa:


a = 99; while (a >=1) {printf(“%d\n”, a); a=a-2;}
Prin executarea acesteia se afiseaza:
b. numerele naturale impare mai mici ca 100

246. Fie secventa:{char c; for c=’A’; c <=’Z’; c++) printf(“%d”, c);} Prin
executarea acesteia se obtin:
b. numerele naturale din intervalul [65, 90]

247. Parametrii utilizati la apelul unei functii, se numesc:


c. parametri actuali

248. Se considera programul


#include <stdio.h>
void aplic(int x, int *y){x+=3; (*y)-=2; printf(“%d, %d”, x,
*y);}
void main(void){int x=12, y=20; aplic(x, &x); printf(“,%d,”,x);
printf(“%d,”,y);aplic(y,&y); }
Ce se va afisa in urma executarii acestuia:
b. 15,10,10,20,23,18

249. Care sunt valorile variabilelor intregi x si y dupa executarea in


ordine a urmatoarelor trei instructiuni:
{
x = 0x3;
y = x + 0x3;
x = x - 3;
}
d. x= 0 si y = 6

250. Care sunt valorile variabilelor intregi a si b dupa executarea


instructiunilor urmatoare:
{ a = 1235; b = a % 10;
if ((a-b) % 10 == 0) { a = a / 100; b = a % 100;}
if (a == b) a = a *100;
}
d. a = 1200 si b = 12

251. Fie secventa:


for(j=1; j<=5; j++) for (i=1; i<=3; i++) a[i][j] = i+j;
Prin executarea acesteia, tabloul a va avea urmatorul continut
d. 2 3 4 5 6
3 2 3 4 5
4 3 4 5 6

252. Prototipul corect al unei functii care primeste doua numere intregi ca
primi doi parametri (de intrare) si determina media aritmetica si produsul celor
doua numere, pe care le transmite apelantului prin urmatorii doi parametri este:
c. void calcul (int, int, double *, int *);

253. Fie declaratiile:


int a[5] = {1, 2,4, 3, 5};
int b[4] = {4, 2, 1, 3};
atunci a[b[0]] este:
c. 5

254. Se considera tabloul unidimensional int a[5]={1, 2,


3, 4, 5};
si secventa de instructiuni
for(i=0; i<5; i++) {s=0; for(j=0; j<=i; j++) s+=a[j];
printf(“%d”,s);}
Care va fi rezultatul afisat in urma executarii secventei de mai sus?
d. 1361015

255. Care din urmatoarele secvente de instructiuni va afisa (cu un spatiu intre
ele) in ordine descrescatoare toate numerele naturale impare mai mici sau egale
cu o valoare naturala data a?
c. for (i = a; i >= 1; i--) if (i % 2 != 0) printf(“%d ”, i);

256. Functia s (scrisa in limbajul C, standard) este utilizata pentru


interschimbarea valorilor a doua numere intregi, pozitive.
Definitia corecta (in antet) a acesteia trebuie sa fie:
c. void s(unsigned int *, unsigned int *) { ... }

257. Fie expresiile A = 18 - 3 +2; B = 18 + 7 / 3 +2; C = 2.3 +


3%; D = 3 + 7.0/3; E = 3 + 4 % 2.3; F = 24 % (7 + 1); Care din aceste expresii
sunt corecte?
b. A, B, D, F

258. Care este valoarea expresiei 20 / 10 * 2 + 30 / 15 * 2


c. 8

259. Care dintre expresiile de mai jos va avea valoarea 1?


c. ‘a’ < ‘b’

260. Variabile a si b sunt declarate astfel: char a[20,b[20]; Ce


se afiseaza in urma executarii secventei urmatoare:
{
strcpy(a, “examen20”); strcpy(b, “08”);
printf(“%s%s”, strcat(a, “*”), b);
}
a. examen20*08

261. Algoritmul urmator testeaza daca sirul de caractere s este palindrom


(citit atat de la stanga la dreapta, cat si de la dreapta la stanga, se obtine
acelasi sir de caractere).
{i=0; j=strlen(s)-1;
while(i<j && s[i]==s[j]) {i=i+1; j=j-1;}
if(...) printf(“palindrom”; else printf(“nu este palindrom”);
}
Care este expresia care poate inlocui punctele de suspensie astfel incat
algoritmul sa fie corect?
b. i>=j

262. Care este valoarea expresiei: 4000/10/10*2+4*10*10 / 2


b. 280

263. Se considera secventa:


{ int a =82, b = 24;
a = a % 2 + b / 2 / 2;
b = 2 * a % 2;
a = a + b;
b = a % 2 + b + 10 % 2;
}
Care sunt valorile finale ale variabilelor a si b?
d. a = 6, b = 0

264. Care este ordinea de executare a instructiunilor urmatoare pentru ca in


final variabilele intregi x, y si z sa aiba valori egale, indiferent de valorile
lor initiale:
{
/* 1 */ x = x / 10;
/* 2 */ z = x / y;
/* 3 */ x = 100;
/* 4 */ y = x / 10;
}
b. 3, 4, 2, 1

265. Fie tabloul unidimensional v si secventa for (j = k; j>=q; j--) v[...] =


v[j];
Cu ce expresie trebuie inlocuite punctele de suspensie astfel incat in urma
executarii secventei elementele v[q], v[q+1], ..., v[k] sa se deplaseze cu p-
1 vpozitii spre dreapta?
c. p-1+j

266. Se considera declararea


struct fractie {unsigned int x, y;} s, f1, f2;
in care campurile x si y reprezinta numaratorul, respective numitorul unei
fractii. Care dintre urmatoarele variante construieste in variabila s o fractie
echivalenta cu suma fractiilor f1 si f2?
c. {s.x = f1.x * f2.y + f1.y * f2.x; s.y = f1.y * f2.y;}

267. Determinati valoarea expresiei fabs(-11.2) +


sqrt(floor(16.23)).
d. 15.2

268. Determinati valoarea expresiei ((int)fabs(-14.2)) % 7


c. 0

S-ar putea să vă placă și