Professional Documents
Culture Documents
pdf
Modificat si simplificat in .doc.
4. 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
6. Care din operatiile urmatoare atribuie variabilei float x media aritmetica a valorilor intregi
a, b si c?
a. x = (a + b + c) /3;
7. 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
8. 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
9. Care 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
12. 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;
d. 2, 4
17. Considerand variabila x de tip float si v riabila de tip int a, care va fi secventa de
caractere afisate in urma
executarii secventei 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));
c. s44.30s0
19. 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 m x = 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 m x = a;
b. 1, 3
20. 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
22. 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];}
}
}
b. (0, 8, 2, 6, 4, 5, 3, 7, 1, 9)
24. Care dintre urmatoarele expresii are valoarea 1 daca si numai daca numarul natural c este un
multiplu comun numerelor naturale nenule (unsigned int) a si b?
c. (c%a == 0) && (c%b ==0)
28. Functia revers(v, p, q) inverseaza ordine 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);
29. 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];
31. Care dintre urmatoarele reprezinta o decl ratie 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];
32. 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++;}
34. Care dintre secventele de mai jos conduce la memor rea in variabila max a celei mai mari
dintre cele n valori intregi retinute in tabloul unidimensional a (in c re a[0] este primul element)?
b. for(i=0; i<n-1; i++) if (a[i] > a[i+1]) {max = [i]; a[i] = a[i+1]; a[i+1] = max;}
max = a[n-1];
d. max=0; for (i=0; i<n; i++) if a([i]>max) a[i]=m x;
36. 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
37. 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 car ctere).
{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
39.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
40.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]
44. 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 *);
49.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);
50. 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 *) { ... }
51. Pentru a atribui variabilei n o valoare egala cu lungimea unui sir de caractere w (ce respecta
conventia terminatorului de sir) se utilizeaza instructiunea:
d. n = strlen(w);
52. Care din urmatoarele variante reprezinta antetul corect al unei functii care primeste
parametri intregi a si b si intoarce prin cel de-al treilea parametru x, cea mai mare dintre cele
doua valori a si b?
d. void maxim (int a, int b, int * x){ *x = (a>b)? :b;}
55. Daca in cadrul unui program variabila p urmeaza sa memoreze simultan coordonatele
reale (abscisa si ordonata) pentru un punct in plan, atunci variabil p trebuie declarata astfel:
a. struct punct {float x, y;} p;
57. Se defineste tipul struct punct {float x, y;}; (pentru a memora coordonatele carteziene -
abscisa si ordonata - ale unor puncte din planul xOy) si tabloul unidimensional a cu elemente de tip
struct punt. Care dintre expresiile de mai jos are valoarea 1 daca si numai daca punctul ale carui
coordonate sunt memorate in elementul din tabloul aflat pe pozitia i are abscisa si ordonata egale?
b. a[i].x == a[i].y
59. Se considera tabloul unidimensional de intregi, notat cu a, in care a[0] = 4, a[1] = 2, a[2]
= 5, a[3] = 1, a[4]=3. Care va fi continutul sau dupa executarea secventei urmatoare (in care i si aux
sunt de tip int):
for (i = 0; i<4; i++) if (a[i] > a[i+1]){
aux = a[i]; a[i] = a[i+1]; a[i+1] = aux;
}
a. a[0] = 2, a[1] = 4, a[2] = 1, a[3] = 3, a[4]=5
60. Se considera tabloul unidimensional a = (0, 1, 3, 2). Care este tabloul unidimensional b
astfel incat pentru oricare 0 <= i <4 sa existe relatia a[b[i]] = b[a[i]]?
a. b = (0, 1, 2, 3)
62. 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;}
67. 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
72. Care dintre urmatoarele variante realizeaza deschiderea la citire a fisierului text
“A.TXT”
c. f = fopen(“A.TXT”, “r”);
73. Care dintre urmatoarele variante realizeaza deschiderea la scriere a fisierului text
“B.TXT”?
b. f = fopen(“B.TXT”,”w”);
74. Care dintre urmatoarele secvente au ca efect citirea unui caracter din fisierul “C.TXT”?
c. f = fopen(“C.TXT”, “r”); fscanf(f, “%c”, &x); fclose(f);
75. Considerand ca variabila f este de tip fisier (FILE *), care dintre urmatoarele instructiuni
verifica daca s-a la sfarsitul fisierului indicat de f?
b. if (feof(f)) printf(“final”); else printf(“mai este”);
93. 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);}
}
d. a = 1, b = 9, c = 2
94. Se considera un tablul unidimensional in care elementele sunt in ordinea: 1, 3, 5, 7, 10, 16,
21.Pentru 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