Sunteți pe pagina 1din 17

aegr

Multiple Choice
Identify the letter of the choice that best completes the statement or answers the question.

____ 1. 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?
a. A, B, C, D, E, F. c. A, B, C, D, F
b. A, B, D, F d. A, B, C, F
____ 2. Care este valoarea expresiei 20 / 10 * 2 + 30 / 15 * 2
a. 2 c. 8
b. 0 d. 4
____ 3. Care este valoarea expresiei: 4000/10/10*2+4*10*10 / 2
a. 400 c. 240
b. 280 d. 220
____ 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?
a. a = 5, b = 5
b. a = 6, b = 6
c. a = 0, b = 6
d. a = 6, b = 0
e. a = 0, b = 0
____ 5. 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;
}
a. 2, 4, 1, 3 c. 1, 2, 4, 3
b. 3, 4, 2, 1 d. 3, 1, 2, 4.
____ 6. Care din operatiile urmatoare atribuie variabilei float x media aritmetica a valorilor intregi a, b si c?
a. x = (a + b + c) /3; c. x = a / 3.0 + b/3 + c/3;
b. x = (a + b + c) / 2.0; d. a = (a + b + c) / 3.0;
____ 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;
}
a. x = 0 si y = 3 c. x= 6 si y = 0
b. x = 3 si y = 0 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;
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. a = 1200 si b = 5
b. a = 12 si b = 35
c. a = 1200 si b = 35
d. a = 1200 si b = 12
e. a = 100 si b = 35
____ 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?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. x = -11, y = 14, z = 25
b. x = 23, y = 22, z = 37
c. x = 23, y = 22, z = 45
d. x = -11, y = 22, z = 37
e. x = 23, y = -11, z = 25
____ 10. Ce va fi afisat pe ecran in urma instructiunii printf(“%6.3f\n”, 45.23); ?

a. +45.230 c. 045.230
b. 45.230 d. 45.023
____ 11. 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;

a. 1, 2, 3, 4, 5 c. 2, 3, 4, 5
b. 3 d. 2, 3, 4
____ 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;
a. 2, 4, 5 c. 2, 3, 4, 5
b. 1, 2, 3, 4, 5 d. 2, 4
____ 13. Care dintre urmatoarele declaratii sunt corecte sintactic:
1) int ab=30;
2) int a+b;
3) float a1;
4) char 2ab;
5) int m.n;
a. 1, 3, 5 c. 1, 3
b. 1, 2, 3, 4, 5 d. 1, 3, 4, 5
____ 14. Fie 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

(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).


a. 1, 2, 3, 4 c. 1, 4
b. 1, 2, 3, 4, 5 d. 1, 2, 4
____ 15. Determinati valoarea expresiei fabs(-11.2) + sqrt(floor(16.23)).
a. -9.2 c. 14.2
b. 15 d. 15.2
____ 16. Determinati valoarea expresiei ((int)fabs(-14.2)) % 7
a. 14 c. 0
b. 2 d. 8
____ 17. Considerand variabila x de tip float si variabila 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));

(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. s4s4.300 c. s44.30s0
b. 44.30s0 d. 4s4.30s0
____ 18. 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;}

(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).


a. a = 121, b = 11 c. a = 120, b = 11
b. a = 120, b = 12 d. a = 121, b = 12.
____ 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 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;

(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).


a. 1, 2, 3, 4 c. 2,3, 4
b. 1, 3 d. 1, 3, 4
____ 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);
}
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. 012 c. 021
b. 120 d. 21
____ 21. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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:
a. 13 c. 2
b. 0 d. 4
____ 22. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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];}
}
}

a. (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
b. (0, 8, 2, 6, 4, 5, 3, 7, 1, 9)
c. (1, 9, 3, 7, 5, 6, 4, 8, 2, 10)
d. (9, 1, 7, 3, 5, 4, 6, 8, 0)
____ 23. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. aria = p.laturta * p.latura;
b. aria = latura * latura;
c. p.aria = p.latura * p.latura;
d. p.aria = latura * latura;
____ 24. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. (c%a == 0 ) || (c %b ==0)
b. (c%a == 0) | (c%b == 0)
c. (c%a == 0) && (c%b ==0)
d. (c%a == 0) & (c%b == 0)
____ 25. In secventa urmatoare, variabilele n, x si y sunt de tip intreg.
{x = 1; y = x-1;
do{
y=x*(x-1)+y;
x++;
}while(x <=n);
}
Daca valoarea variabilei n este un numar naural nenul, de cate ori este evaluata expresia logica x <= n in
timpul executarii secventei?
a. de n2 ori
b. de n ori
c. o singura data
d. de n+1 ori
____ 26. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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.
a. x = 1002 si y = 5
b. x = 3 si y = 1004
c. x = 1004 si y = 3
d. x = 2007 si y = 2009
____ 27. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. a = 0 si b = 0
b. a = -1 si b = 25
c. a = 0 si b = 55
d. a = 0 si b = 30
____ 28. 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]:
a. revers(v, p, q); revers(v, p-1, q+1);
b. revers(v, p, q); revers(v, p+1, q-1);
c. revers(v, p, q); revers(v, p+1, q+1);
d. revers(v, p-1, q-1); revers(v, p, q);
____ 29. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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:
a. for(int i=2; i<=n; i++) if (v[i-1]<=v[i]) v[i-1] = v[i]; max = v[1];
b. for(int i=2; i<=n; i++)if(v[i-1]>v[i]) v[i] = v[i-1]; max = v[n];
c. for(int i=1; i<n; i++) if(v[i+1]>v[i])v[i] = v[i+1]; max = v[1];
d. for(int i=n; i>=2; i--) if (v[i]>v[i-1]) v[i]=v[i-1]; max = v[n];
____ 30. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. {p = 0; k = 1; while(v[k]>=0) k++; p = v[k];}
b. {p = 0; k = n; while(v[k]<=0) k--; p = v[k];}
c. {p = 0; for(k=1; k<=n; k++) if (v[k]>0 && !p) p = v[k];}
d. {p = 0; for(k=1; k<=n; k++) if (v[k]>0) p = v[k];
____ 31. Care dintre urmatoarele reprezinta o declaratie corecta pentru o variabila x care memoreaza simultan numele
si media a maximum 30 de studenti?
a. typedef struct {char nume[30]; double media;} x;
b. char x.nume[30]; double x.media[30];
c. struct {char nume[30]; double media;} x;
d. struct {char nume[30]; double media;} x[30];
____ 32. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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)?
a. s = 0; for (i=m; i>0; i--) s+=a[k][i];
b. s = 0; i = 1; while (i<=m) {s+=a[i][[k]; i++;}
c. s = 0; for(i=n; i>0; i--) s+=a[i][k];
d. s = 0; i=1; while(i<=n) {s+=a[k][i]; i++;}
____ 33. 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:
a. if(x>y && y>z) s = x+y+z; else p = x*y*z;
b. if(x>y || y>z) s = x+y+z;
c. if(x>y && y>z) s = x+y+z;
d. if(x>y && y>z) p = x*y*z;
____ 34. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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)?
a. for(i=0; i<n-1; i++) if (a[i] > a[i+1]) max = a[i];
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];
c. max=a[0];for (i=1; i<n; i++) if (a[i] < max) max = a[i];
d. max=0; for (i=0; i<n; i++) if a([i]>max) a[i]=max;
____ 35. Care dintre expresiile de mai jos va avea valoarea 1?
a. ‘a’ == ‘A’ c. ‘a’ < ‘b’
b. ‘1’ + ‘2’ == ‘3’ d. ‘1’ > ‘2’
____ 36. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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 c. examen20examen2008
b. examen2008 d. examen160
____ 37. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. i == j c. i<j
b. i>=j d. i!=j
____ 38. Dintre tipurile simple de date face parte tipul:
a. double c. Tablou
b. FILE d. Uniune (union)
____ 39. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
Fie secventa:
a = 99; while (a >=1) {printf(“%d\n”, a); a=a-2;}
Prin executarea acesteia se afiseaza:
a. toate numerele naturale de doua cifre
b. numerele naturale impare mai mici ca 100
c. toate numerele intregi mai mici ca 99
d. numerele naturale pare, mai mari decat 1
____ 40. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
Fie secventa:
{char c; for c=’A’; c <=’Z’; c++) printf(“%d”, c);}
Prin executarea acesteia se obtin:
a. numerele naturale din intervalul [1, 27]
b. numerele naturale din intervalul [65, 90]
c. literele mari ale alfabetului englez
d. literele mari ale alfabetului romanesc
____ 41. Parametrii utilizati la apelul unei functii, se numesc:
a. parametri locali c. parametri actuali
b. parametri globali d. parametri formali
____ 42. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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:
a. 13,13,13,13,16,14
b. 15,10,10,20,23,18
c. 15,13,13,13,16,11
d. 15,10,15,20,23,20
____ 43. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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
a. 2 3 4 c. 2 3 4 5 6
345 34567
456 45678
567
678
b. 2 4 5 d. 2 3 4 5 6
345 32345
456 43456
____ 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:
a. int calcul(int, int, int *); c. void calcul (int, int, double *, int *);
b. void calcul(int, int, double, int); d. void calcul(int, int, int *, int *);
____ 45. Fie declaratiile:
int a[5] = {1, 2,4, 3, 5};
int b[4] = {4, 2, 1, 3};
atunci a[b[0]] este:
a. 3 c. 5
b. 1 d. 4
____ 46. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. 1151515 c. 6101315
b. 15 d. 1361015
____ 47. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. p-1-j
b. j-p+1
c. p-1+j
d. p-j+1
____ 48. Se considera declararea
struct fractie {unsigned int x, y;} s, f1, f2;
in care campurile x si y reprezinta numaratorul, respectiv numitorul unei fractii. Care dintre urmatoarele
variante construieste in variabila s o fractie echivalenta cu suma fractiilor f1 si f2?
a. {s.x = f1.x + f2.x; s.y = f1.y + f2.y;}
b. {s = f1 + f2;}
c. {s.x = f1.x * f2.y + f1.y * f2.x; s.y = f1.y * f2.y;}
d. {s.x = f1.x * f1.y + f2.x * f2.y; s.y = f1.y * f2.y;}
____ 49. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?
a. for (i = 1; i >= a; i += 2) printf(“%d ”, i);
b. for (i = 1; i <= a; i--) if (a % 2 == 0) printf(“%d ”, i);
c. for (i = a; i >= 1; i--) if (i % 2 != 0) printf(“%d ”, i);
d. for (i = a; i <=1; i++) if (a%2 == 1) 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:
a. void s(int x, int y) { ... }
b. void s(int *x, int *y) { ... }
c. void s(unsigned int *, unsigned int *) { ... }
d. 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:
a. n = length(w); c. n = (int)w[0];
b. strlen(w) = n; 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?
a. int maxim (int a, int b, int x){ x = (a>b)?a:b; return x;}
b. int maxim (int a, int b) {return (a>b)?a:b;}
c. void maxim (int a , int b, int x) {x = (a>b)?a:b;}
d. void maxim (int a, int b, int * x){ *x = (a>b)?a:b;}
____ 53. Conditia ca doua numere intregi a si b sa fie ambele nenule este:
a. (a ! = 0 || b != 0)
b. a*b != 0
c. a+b != 0;
d. ! (a == 0 && b == 0)
____ 54. Fie functia
void f( ... ) {a++; *b--; *c = a + *b;}
Se stie ca x, y si z sunt variabile intregi. Intitial x = 11 si y = 6, iar dupa apelul f(x, &y, &z), valorile celor trei
variabile sunt x = 11, y = 5 si z = 17. Care dintre urmatoarele constructii reprezint antetul corect al functiei?
a. void f(int *a, int b, int *c)
b. void f(int a, int b, int c)
c. void f(int a, int *b, int *c)
d. void f(int *a, int *b, int *c)
____ 55. Daca in cadrul unui program variabila p urmeaza sa memoreze simultan coordonatele reale (abscisa si
ordonata) pentru un punct in plan, atunci variabila p trebuie declarata astfel:
a. struct punct {float x, y;} p;
b. typedef struct punct {
float x, y;} p;
c. char p[2];
d. float p;
____ 56. Care este rezultatul tiparit de programul urmator?
#include <stdio.h>
#include <string.h>
void f(char s[], int);
void main(){f(“examenul”,0);}
void f(char s[256], int i){
if(i<strlen(s)) {
f(s, i+1);
if (strchr(“aeiou”, s[i]) != 0) printf(“%c”, s[i]);
}
}

a. eaeu c. ueae
b. examenul d. e
____ 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?

a. a[i]->x == a[i]->y c. x[a[i]] == y[a[i]]


b. a[i].x == a[i].y d. a.x[i] == a.y[i]
____ 58. Variabila s a fos declarata prin: char s[32];
Ce se afiseaza dupa executarea urmatoarei secvente?
{
strcpy(s,”Programare procedurala”);
printf(“%c”, s[strlen(s)-3]);
}
a. u c. a
b. r d. 29
____ 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
b. a[0] = 4, a[1] = 2, a[2] = 5, a[3] = 1, a[4]=3
c. a[0] = 1, a[1] = 2, a[2] = 3, a[3] = 4, a[4]=5
d. a[0] = 4, a[1] = 2, 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) c. b = (2, 3, 0, 1)
b. b = (3, 1, 0, 2) d. b = (1, 0, 2, 3)
____ 61. Variabilele a si i sunt declarate astfel:
int a[100], i;
Care dintre urmatoarele instructiuni este corecta din punct de vedere sintactic?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. a = i; c. i[1] = a;
b. i = a; d. i[a] = 1;
____ 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?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. int f(int a, int b){return a*b;}


b. int f(int a, int b){return a-b+1;}
c. int f(int a, int b){return a%b;}
d. int f(int a, int b){return a/b;}
____ 63. 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];
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. Suma elementelor situate strict deasupra diagonalei principale


b. Suma elementelor situate strict deasupra diagonalei secundare
c. Suma elementelor situate deasupra diagonalei principale, inclusiv diagonala principala
d. Suma elementelor situate strict sub diagonala principala
____ 64. 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? (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea
software-ului).
a. 12 60 5 7 c. 60 12 60 7
b. 60 12 5 7 d. 60 12 60 12
____ 65. 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?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. 16 c. 38
b. 36 d. 28
____ 66. 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?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. aabbdeeff c. aabbddeff
b. nici una dintre variantele propuse d. egalitate
____ 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?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. n+1 ori c. 0 ori


b. n ori d. n-1 ori
____ 68. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

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:

a. m c. n
b. 1 d. cel mult n(n-1)/2
____ 69. 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?
a. p.denumire[1] c. p.denumire[0]
b. p->denumire d. p->denumire[1]
____ 70. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
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?

a. 0 c. 13
b. 5 d. valoare nedeterminata
____ 71. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

Daca n este un numar natural (intreg pozitiv), ce realizeaza urmatoarea secventa?


{p=1;
while(n) {p *= n; n--};
}
a. Calculeaza in p valoarea n*p c. Calculeaza in variabila p valoarea lui n!
p
b. Calculeaza in p valoarea n d. Calculeaza in variabila p valoarea lui pn.
____ 72. Care dintre urmatoarele variante realizeaza deschiderea la citire a fisierului text “A.TXT”
a. f = fopen(“A.TXT”, “w”);
b. f = fopen(“r”, “A. TXT”);
c. f = fopen(“A.TXT”, “r”);
d. f = fopen(”A.TXT”, r);
____ 73. Care dintre urmatoarele variante realizeaza deschiderea la scriere a fisierului text “B.TXT”?
a. f = fopen(“B.TXT”,”r”);
b. f = fopen(“B.TXT”,”w”);
c. f = fopen(“w”, “B.TXT”);
d. f = fopen(“B.TXT”, w);
____ 74. Care dintre urmatoarele secvente au ca efect citirea unui caracter din fisierul “C.TXT”?
a. f = fopen(“C.TXT”, “r”); fclose(f);
b. f = fopen(“C.TXT”, “r”); scanf(“%c”, &x); fclose(f);
c. f = fopen(“C.TXT”, “r”); fscanf(f, “%c”, &x); fclose(f);
d. f = fopen(“C.TXT”, “r”); fscanf( “%c”, &x, f); fclose(f);
____ 75. Considerand ca variabila f este de tip fisier (FILE *), care dintre urmatoarele instructiuni verifica daca s-a
ajuns la sfarsitul fisierului indicat de f?
a. if (eof(f)) printf(“final”); else printf(“mai este”);
b. if (feof(f)) printf(“final”); else printf(“mai este”);
c. if (!eof(f)) printf(“final”); else printf(“mai este”);
d. if(!feof(f)) printf(“final”); else printf(“mai este”);
____ 76. Stiind ca fisierul “D.TXT” 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(“D.TXT”,”r”);
fscanf(f, “%d %d %d\n”, &x, &y, &z);
fscanf(f, “%d”, &z);
printf(“%d %d %d \n”, x, y, z);
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. 13 45 23 c. 13 32 23
b. 13 32 56 d. 13 45 32
____ 77. Stiind ca fisierul “E.TXT” 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(“E.TXT”, “r”);
fscanf(f, “%d %d”,&x, &y);
fscanf(f, “%d\n”,&z);
printf(“%d %d %d \n”, x, y, z);
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. 1 2 3 c. 1 67 567
b. 1 2 67 d. 2 3 4
____ 78. Stiind ca fisierul “F.TXT” 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(“F.TXT”, “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);
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. 1 2 3 c. 1 9 8
b. 1 2 9 d. 1 9 3
____ 79. Stiind ca fisierul “G.TXT” 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(“G.TXT”,”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);
}
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).
a. I S - c. S - X
b. a S - d. I E S
____ 80. (Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

Care va fi continutul fisierului “H.TXT” in urma executarii programului urmator?


#include <stdio.h>
FILE *f; char x, y, z;
void main(){
f = fopen(“H.TXT”,”w”);
fprintf(f,”Ieri %d\n”,13);
fprintf(f,”Azi %d”,14);
fprintf(f,”Maine %d\n”,15);
fclose(f);
}
a. Ieri c. Ieri 13
13 Azi 14 Azi 14
Maine Maine 15
15
b. Ieri 13 d. Ieri
Azi 14 Maine 15 13 Azi 14 Maine
15
____ 81. 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?

a. 0, 1, 1, 1, 2, 2, 3 c. 0, 1, 1, 2, 3, 5, 8
b. 0, 1, 1, 2, 3, 3, 6 d. 0, 1, 0, 1, 0, 1, 0
____ 82. Care din urmatoarele afirmatii este falsa?
a. n2 = O(n2/2) c. 2n = O(n)
b. sin(n) = o(n) d. n2+3n ~ n2
____ 83. Se considera algoritmul:
procedure insert_sort(n, x);
integer n;
integer array x(n);
integer i, j, temp;
SEQ
for i = 2, n, 1 do
SEQ
temp := x[i];
j := i-1;
while ( j>=1) and (x[j] > temp) do
SEQ
x[j+1] := x[j];
j := j-1;
END
x[j+1] := temp
END;
return
END
Complexitatea algoritmului (la nivelul numarului de comparatii efectuate) este:
a. O(n) c. O(n2)
b. O(1) d. O(n log2n)
____ 84. Care dintre urmatoarele formule de corectitudine logica este falsa?
a. {x = n!} n:=n+1; x := x*n {x = n!}
b. {(x = 640) and (y = 480)} t:=x; x:=y; y:=t {(x = 480) and (y=640)}
c. {(x = 640) and (y = 480)} x:=x+y; y:=x-y; x:=x-y {(x = 480) and (y=640)}
d. {true} if x>y then SEQ t:=x; x:=y; y:=t END {x >y}
____ 85. Se considera algoritmul:
integer m, n, x, y;
SEQ
read m, n ;
if (x>0) and (y>0) then
SEQ
x:=m; y:=n;
while x <> y do if x>y then x:=x-y else y:=y-x;
write x
END
END
Care este proprietatea invarianta a buclei while?
a. x <> y
b. (x = m) and (y = n)
c. (cmmdc(x, y) = cmmdc(m, n)) and (x>0) and (y>0)
d. (x > 0) and (y > 0)
____ 86. 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)?
a. 1122 c. 121
b. 112 d. 1121
____ 87. 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?
a. printf(“%p”,p); c. printf(“%d”, p*);
b. printf(“%d”,*p); d. printf(“%d”, &p);
____ 88. 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).

(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. 1 c. -4
b. -3 d. 4
____ 89. 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).
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. 3 c. 2
b. 1 d. 4
____ 90. 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)?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. 50 c. 40
b. 45 d. 55
____ 91. 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)?
(Atentie! Pentru rezolvare nu este voie sa se apeleze la medii de dezvoltarea software-ului).

a. int v[] = {1, 4, 3, 2, 1, 6, 5, 4, 3, 10};


b. int v[] = {3, 2, 1, 4, 3, 6, 7, 2, 9, 2};
c. int v[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
d. int v[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
____ 92. 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 c. n%(i-1)=0 si i
b. n% (i-1) si i-1 d. n%i si i-1
____ 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);}
}
a. a = 0, b = 10, c = 3 c. a = 1, b = 9, c = 3
b. a = 1, b = 3, c = 9 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:.
a. 21,16, 10 c. 1, 3, 5, 7, 10
b. 7, 16, 10 d. 5, 7, 10

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