Sunteți pe pagina 1din 56

Universitatea Spiru Haret

Facultatea de Matematica-Informatica
Programare Procedurala

Probleme propuse

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.
a)
F 1
F 1
F 1
G 1
G 2
G 3
b)
F 0
F 0
F 0
G 0
G 1
G 2
c)
F 1
F 2
F 3
G 1
G 2
G 3
d)
F 0
F 1
F 2
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
b)
64 28 35
68 40 41
20 10 11
c)
0 2 2
6 5 4
4 2 6
d)
0 4 3
4 0 1
4 2 3

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:
a) 6
b) intotdeauna 55
c) 10
d) uneori si 55
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:
a) 55
b) intotdeauna 11
c) uneori si 55
d) uneori si 11

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
a) 55
b) uneori si 65
c) uneori si 55
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:
a) 1, 2, 3, 4, 5,
b) 0, 1, 2, 3, 4,
c) 2, 3, 4, 5, 0,
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?
a) Da
b) Nu
c) La compilare apare eroare de sintaxa
d) In timpul executarii apare o eroare

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:
a) 6
b) 0
c) 5
d) La compilare apare eroare de sintaxa

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:
a) 0.33333
b) 0
c) 0.00000
d) 0.6

10. Se considera fisierul MAIN.CPP al carui continut este:


#include <stdio.h>
extern char *a;
void main(void){
printf("%s\n", *a);
}
si fisierul F1.CPP al carui continut este:
char a[] = "Programare procedurala\n";

Prin analiza programului se constata:


a) Se afiseaza: Programare procedurala
b) La compilare apare eroare de sintaxa
c) La executare executarea programului se incheie cu un mesaj de
eroare
d) Programul afiseaza adresa celului, din memoria volatila, ce
contine sirul "Programare procedurala\n".

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?
a) 5
b) 10
c) 7
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
b) 7
c) 10
d) 8

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
b)
k = 2, Da
k = 3, Da
k = 5, Da
k = 7, Da
c)
k = 2, Da
k = 2, Nu
k = 3, Da
k = 3, Nu
k = 4, Nu
k = 5, Da
k = 5, Nu
k = 6, Nu
k = 7, Da
k = 7, Nu
k = 8, Nu
k = 9, Nu
k = 10, Nu
d)
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:


a) Numerele de la 1 la 10 impreuna cu patratele acestora, in baza 10
b) k = 11, sqr(k) = 121
c) Numerele de la 1 la 10 impreuna cu patratele acestora, in baza 8
d) Numerele de la 1 la 10 impreuna cu patratele acestora, in baza 16

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
b) La compilare apare o eroare de sintaxa
c) Programul afiseaza valoarea 0
d) Programul afiseaza valoarea 5
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?
a) n1/n2 = 0
b) n1/n2 = 8
c) n1/n2 = 16
d) n1/n2 = 0.5

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:
a) La compilare apare eroare de sintaxa in instructiunea for
b) Afiseaza pe 10 rinduri secventa Succes!
c) Afiseaza pe 10 rinduri secventa Succes!\n
d) La compilare apare eroare de sintaxa la directiva #define

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"
b) Mesajul redat prin "Ambele numere sint nenule\n"
c) La compilare se obtine eroare de sintaxa
d) La executare se obtine eroare de calcul

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:
a) 2
b) 6
c) 8
d) O valoare din memoria volatila din afara spatiului alocat
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:
a) {unsigned long int k = 1,000,000; printf("%ul", k);}
b) {char a[9]={'1', ',', '0', '0', '0', ',', '0', '0', '0'};
puts(a);}
c) {char *a = {'1', ',', '0', '0', '0', ',', '0', '0', '0', '\0'};
puts(a);}
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");
}

a) La compilare apare o eroare de sintaxa in legatura cu prezenta ;


inaintea cuvintului else
b) Afiseaza "Da!" pentru ca 3 treimi formeaza un intreg
c) Afiseaza "Nu!"
d) In timpul executarii apare eroare de calcul in virgula mobila.

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) -*-*-*-**-*-****
b) ---------------- (16 simboluri)
c) La compilare apare eroare de sintaxa
d) Executarea programului se incheie fortat.

23. Care dintre urmatoarele programe afiseaza diferenta perechilor


de elemente din orice tablou initializabil tab cu maximum 12
componente?

a)
#include <stdio.h>
static int tab[12]={1, 2, 4, 3, 5, 6, 9, 7, 10, 8, 0, 0};
static int dif[6];
void main(void){
int i=0, id=0;
while (tab[i] != 0) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}

b)
#include <stdio.h>
#define MAX 12
static int tab[12]={1, 2, 4, 3, 0, 6, 9, 7, 10, 8, 12, 11};
static int dif[6];
void main(void){
int i=0, id=0;
while (i < MAX) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}

c)
#include <stdio.h>
static int tab[12]={1, 2, 4, 3, 5, 6, 9, 7, 10, 8, -1, -1};
static int dif[6];
void main(void){
int i=0, id=0;
while (tab[i] != EOF) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}

d)
#include <stdio.h>
#define MAX 12
static int tab[MAX]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
static int dif[MAX/2];
void main(void){
int n = sizeof(tab)/sizeof(int);
int i=0, id=0;
while (i < n) dif[id++] = tab[i++]-tab[i++];
for(id = 0; id<6; id++) printf("dif[ %d ] = %d\n", id, dif[id]);
}

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)?
a) Mesajul "Da!"
b) Mesajul "Nu"
c) Eroare de compilare la a > b > c
d) Eroare de comparare in timpul executarii

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)?
a. (x<b) && (x>=a)
b. (x<=b) || (x>a)
c. (x>b) || (x<=a)
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?
a. (x%y==0) && (y%x==0) && (x*y>0)
b. (x<=y) && (y<x)
c. (x<=y) || (y<=x)
d. x*x==y*y

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)?
a. x*x-a*a<=0
b. a*a-x*x>0
c. (a<x)&&(x<-a)
d. (x-a)*(x+a)>0

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


expresiei?
a. 0
b. 10
c. 1.11
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
b. x+y-abs(x-y)/2
c. (x+y+abs(x-y))/2
d. (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?
a. x*y-5!=0
b. x*(y-5)!=0
c. x*(y-5)>=0
d. !(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
b. a+b+abs(a-b)/2
c. (a+b-abs(a-b))/2
d. (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ă?
a. ((a>3) || (a<15)) && (a==b)
b. !((a<=3) || (a>=15)) || (a!=b)
c. ((a>3) || (a<15)) && (a!=b)
d. !(a<3 || a>15) && (a!=b)

33. Care este valoarea expresiei C: 9/2*2-5


a. 3
b. 4
c. -3
d. -3.75

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?
a. 3*x-4*y==0
b. (x+y)/2 > x%y+1
c. !(x/2+2==y)
d. x-y+3!=0

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


daca variabilele x si y memoreaza doua numere naturale pare
consecutive?
a. (x-y==2) && (y-x==2)
b. (x==2) && (y==4)
c. x-y==2
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)) ?
a. (a>=5)&&(b<=7)
b. !(a<5) || !(b>7)
c. !(a<5) && !(b>7)
d. !(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
b. a=35 şi b=35
c. a=1100 şi b=10
d. a=1234 şi b=12

38. Variabilele 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?
a. x-y!=0
b. x+y>x%y+1
c. x-2*y==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;
b. x=x/10+7+x%10;
c. x=(x%10*10+7)*10+x/10;
d. x=(x/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?
a. 300
b. 5000
c. 120
d. 0

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;
b. x=x%1000*100+x/100;
c. x=x/100*100+x%100;
d. x=x/1000+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
b. 6
c. 2
d. 8

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?
a. 5
b. 5.833333
c. 5.83
d. 583

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?
a. v1>v2
b. v1<v2
c. v1==v2
d. v1+v2==9

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?
a. 0
b. 1
c. 2
d. true

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)
b. !(c<a) && !(b<d)
c. (d>a) || (b>c)
d. (a>=c) && (b<=d)

47. Care din urmatoarele afirmatii despre operatorii din C este


falsa?
a. > este operator relaţional
b. % este operator aritmetic
c. && este operator logic
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
b. 1.14
c. -6
d. 1

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.
b. are valoarea 1 daca si numai daca x este un numar par.
c. are valoarea 1 daca si numai daca x este un numar impar.
d. are o valoare strict mai mare decat 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?
a. 1
b. 4
c. 2
d. 0

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?
a. x%10+x/10%10==0
b. x/100==0
c. x%10+x/10==0
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?
a. x/100==0
b. x/100==0 && x%10==0
c. x/10!=0
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?
a. (a%100)/100
b. a/100%100
c. a/1000+a%1000
d. a/100%10+a/1000%10

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)
b. (x<=-a) || ((x<=c) && (x>=-b)) || (x>=d)
c. (x<-a) || ((x<c-1) && (x>-b)) || (x>d)
d. (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?
a. a/10+a%100
b. a/100+a%10
c. a/100*10+a%10
d. a-a/10%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
b. 21
c. 3
d. 30
58. Stabiliti care dintre urmatoarele expresii C are valoarea 1 daca
si 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.
a. (x<-a) || (x>-b)
b. (x<=-a) || (x>=-b)
c. (x<=-a) || (x>-b)
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
b. 2
c. 1
d. 4

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?
a. 0
b. 4
c. 6
d. 5

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?
a. x-y==0
b. (x+y)%2==0
c. (x%2==0) || (y%2==0)
d. (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?

a. 4
b. 3
c. 2
d. 5
63. Care este valoarea expresiei C: 50-(100–300/2/(2+3))?
a. -30
b. 70
c. -20
d. 60

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?
a. y=x/10;
b. y=x%10;
c. x=y%10;
d. x=x/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;
b. x=y%10/10;
c. x=y%10;
d. x=x/100;

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;
b. x=y+y/10+y/100;
c. x=y%10+y%10/10+y/100;
d. x=y%10+y%100+y%1000;

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;
b. x=y/10/10;
c. x=y%100;
d. x=y%10/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;
b. x=y/10*10+y%10;
c. x=y%10+y/10*10;
d. x=y%10+y/10;

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


dintre urmatoarele expresii C are valoarea 1?
a. !(n%2)
b. n%2==0
c. n%2!=0
d. !((n+1)%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).
a. niciuna
b. doar c
c. doar a si c
d. doar a si b

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))
b. (a % c!=0) && !(b % c!=0)
c. (a % c!=0) || !(b % c!=0)
d. !(c % a!=0) && (c % b!=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;
b. !(!(a%2) || b%2);
c. (a+b+1)%2;
d. !(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?
a. c=d+2*c;
b. c=2-d%2*a;
c. c=sqrt(b*b);
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 c. n%(i-1)=0 si i
b. n% (i-1) si i-1 d. n%i si i-1

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?

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
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)?
a. 1122 c. 121
b. 112 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?
a. printf(“%p”,p); c. printf(“%d”, p*);
b. printf(“%d”,*p); d. printf(“%d”, &p);

78. 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

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; c. i[1] = a;
b. i = a; d. i[a] = 1;

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);}
}
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
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?

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;}

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?

a. n+1 ori c. 0 ori


b. n ori d. n-1 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?

a. 0 c. 13
b. 5 d. valoare nedeterminata

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


urmatoarea secventa?
{p=1;
while(n) p *= (n--);
}
a. Calculeaza in p valoarea n*p c. Calculeaza in variabila p
valoarea lui n!
b. Calculeaza in p valoarea np d. Calculeaza in variabila p
valoarea lui pn.
85. 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);

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:

a. m c. n
b. 1 d. cel mult n(n-1)/2

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?
a. p.denumire[1] c. p.denumire[0]
b. p->denumire d. p->denumire[1]

88. 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);

89. 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);
}
a. 13 45 23 c. 13 32 23
b. 13 32 56 d. 13 45 32

90. 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);
}
a. 1 2 3 c. 1 67 567
b. 1 2 67 d. 2 3 4

91. 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);

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?
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”);

93. 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);
}
a. 1 2 3 c. 1 9 8
b. 1 2 9 d. 1 9 3

94. 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

95. 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);
}
a. I S - c. S - X
b. a S - d. I E 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).

a. 1 c. -4
b. -3 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?
a. 12 60 5 7 c. 60 12 60 7
b. 60 12 5 7 d. 60 12 60 12

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 c. 2
b. 1 d. 4

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)?

a. 50 c. 40
b. 45 d. 55

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];

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

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?

a. 16 c. 38
b. 36 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 c. aabbddeff
b. nici una dintre variantele d. egalitate
propuse

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};


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};

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?
a. p.d=2*(d.a+d.b);
b. p.d=2*a.d+2*b.d;
c. d.p=2*d.a+2*d.b;
d. 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?
a. d.aria==d.a*d.b;
b. aria.d=a.d*b.d;
c. aria.d=d.a*d.b;
d. d.aria=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;
b. t=b.x; b.x=b.y; b.y=t;
c. x.b=y.b;
d. b.x=b.y;

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
b. cel mai mic element de pe linia n-1
c. cel mai mare element de pe coloana n-1
d. cel mai mic element de pe coloana 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?
a. scanf(”%d”, &x);
b. scanf(”%d %d”, &a.x,&b.x);
c. scanf(”%d %d”, &x.a,&x.b);
d. scanf(”%d %d”, &a->x,&b->x);

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);
b. printf(”%d %d”, a.x,b.x);
c. printf(”%d”, x);
d. printf(”%d %d”, a->x,b->x);

110. Pentru a memora simultan numele şi media la ‚Programare


Procedurala’ a unui student in variabila e, se poate utiliza
declararea:
a. struct e{
string nume; float media;}
b. char e.nume[40];
float e.media;
c. float e;
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;
b. struct x {float media;
int varsta;};
c. float x.media;
int x.varsta;
d. struct absolvent {float x.media;
int x.varsta};

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?
a. struct x { int cod;
float media;};
b. struct { int cod;
float media;} x;
c. int x.cod ;
float x.media;
d. struct candidat { int x.cod;
float x.media;};
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;
b. char x[2];
c. struct x {float ox,oy;};
d. float 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?
a. struct x {float im,re;};
b. char x[2];
c. struct complex{
float im, re;} x;
d. float 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;
b. char x[2];
c. struct x{int n1,n2;};
d. float 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];
b. p=p*a[i][i]*a[i][4-i];
c. p=p*a[i][i]*a[5-i][5-i];
d. p=p*a[5-i][5-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;
b. e1.nume[2]=’x’;
c. e1=e2;
d. e1.nota=e2.nota+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?
a. strcmp(s,s+5)==0
b. s==strstr(s,s+5)
c. s==s+5
d. strcmp(s,strcat(s,s+5))==0

119. Functia predefinita care returneaza modulul unui numar intreg


este:
a. sgn
b. fabs
c. mod
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
b. 15
c. 6
d. 5

121. Pentru declararea unei variabile care memoreaza un cuvant avand


maximum 25 caractere, putem utiliza sintaxa:
a. char c;
b. char c[];
c. char c[26];
d. char[26] c;

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
b. ENXAME
c. NEEXMA
d. NEMAXE

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?
a. printf(“%c“,x);
b. printf(“%c“,x.nume[0]);
c. printf(“%c“,x.nume);
d. printf(“%c“,nume);

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’.
a. EXAMEN
b. exAMen
c. ExAMeN
d. 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
b. MamA
c. MaAa
d. MAMA

126. In secventa
for ( i=k+1; i<=n; i++)
for (j=1; j<=n; j++)
v[i-1][j] = v[i][j];
n=n-1;
variabila v memoreaza elementele unei matrice cu liniile si
coloanele numerotate de la 1 la n, iar toate celelalte variabile
sunt intregi. Daca 1<=k<n, atunci executarea secventei determina:
a. eliminarea liniei k din matrice
b. adaugarea liniei k in matrice
c. eliminarea coloanei k din matrice
d. adaugarea coloanei k in matrice

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
b. s1, s2, s3 retin siruri de caractere ordonate lexicografic
c. s1, s2, s3 retin siruri de caractere de lungimi diferite
d. s1 este obtinut prin concatenarea sirurilor retinute in s2 si s3

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


cate elemente se gasesc strict deasupra diagonalei secundare a
tabloului?
a. 180
b. 200
c. 190
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ă?
a. 16
b. 15
c. 25
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?
a. p.nume[0]
b. p.nume[1]
c. p.nume
d. nume[1]

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;
b. m=(nota1+nota2)/2;
c. x.m=(x.nota1+x.nota2)/2;
d. 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
b. 3
c. 9
d. 8

133. Consideram declararea:


struct punct{
int x,y;
} p;

Care dintre urmatoarele instructiuni este corecta din punct de


vedere sintactic?
a. p->y=p->y+1;
b. p=9;
c. p.x=7;
d. p=p+1;

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?
a. float x[3][21]; b. int x[3][21];
c. struct persoana{
char nume[21],prenume[21];
int sal;} x;
d. 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?
a. struct carte{ int val;char nume;} t;
b. struct carte{int val,nume;} t;
c. struct carte{ int val;char nume[21];} t;
d. struct carte{ int val[21][21];char nume;} 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?
a. struct carte {
float nr,titlu;
} t;
b. struct carte{
int nr;
char titlu[21];
} t;
c. struct carte{
char nr; int titlu;
} t;
d. struct carte{
long nr,titlu;
} 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
b. strlen(s,10)<0
c. leng(s)<10
d. s-’0’<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?
a. s-2==0
b. strlen(s,2)=0
c. leng(s)%2
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?


a. variabila varianta
b. Variantavariabila
c. varianta variabila
d. variabila variabila

140. Considerand declararile


struct cerc
{float raza;
int x,y;};
cerc c;
care dintre urmatoarele referiri este corecta din punct de vedere
sintactic ?
a. cerc.x
b. c.x
c. c.cerc.x
d. raza.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];

a. cel mai mare număr de pe diagonalele tabloului a


b. cel mai mare număr de pe diagonala secundară a tabloului a
c. cel mai mare număr de pe diagonala principală a tabloului a
d. cel mai mare număr din tabloul 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 ?
a. e.fig.tip
b. e.a
c. e.punct.x
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
b. Suma elementelor de pe diagonala secundară a tabloului a
c. Suma elementelor tabloului a
d. Cel mai mare element de pe diagonala principală a tabloului a

144. Daca variabila s de tip sir de caractere memoreaza sirul


INFORMATICA atunci strlen(s) are valoarea?
a. 10
b. 12
c. TRUE
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;

a. produs.denumire[0]
b. denumire.p[0]
c. p.denumire[0]
d. P->denumire[0]

146. Cum se poate accesa prima litera a numelui unei persoane ale
carei date de identificare sunt memorate in variabila p, declarata
prin:
struct persoana{
char nume[20],prenume[20];
int varsta;} p;
a. p.nume[0]
b. persoana.nume[0]
c. p->nume[0]
d. nume.p[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;

a. denumire.m[0]
b. m->denumire[0]
c. material.denumire[0]
d. m.denumire[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;

a. e->nume[0]
b. e.nume[0]
c. student.nume[0]
d. nume.e[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=(var1.nota+var2.nota)/2;
b. m=var1.nota+var2.nota/2;
c. m=(var1+var2).nota/2;
d. m=nota(var1+var2)/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
b. anotimpprimavara
c. primavara
d. prima

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

a. float
b. int
c. long
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?
a. imposibil
b. examen
c. banal
d. examenimposibil

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?
a. exAmeNe
b. ExAmene
c. 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:
a. deasupra diagonalei principale, inclusiv diagonala principala
b. strict deasupra diagonalei principale
c. strict sub diagonala principala
d. strict deasupra diagonalei secundare

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
b. deasupra diagonalei principale, inclusiv diagonala principala
c. strict deasupra diagonalei principale
d. strict deasupra diagonalei secundare

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:
a. strict sub diagonala secundara
b. deasupra diagonalei principale, inclusiv diagonala principala
c. deasupra diagonalei secundare, inclusiv diagonala secundara
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
b. deasupra diagonalei principale, inclusiv diagonala principala
c. strict sub diagonala principala
d. strict deasupra diagonalei secundare

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:
a. strict deasupra diagonalei principale
b. deasupra diagonalei principale, inclusiv diagonala principala
c. deasupra diagonalei secundare, inclusiv diagonala secundara
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?
a. s[0]==s[1]
b. s[1]==s[2]
c. s[0]==s[2]
d. s[1]==s[3]

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
b. exam
c. menn
d. men

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';

a. form
b. forma
c. InfoEXA
d. Infor

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


executarea instructiunii de mai jos?
s=strstr(strnset("Olimpiada",'#',strlen("2009")),"ad");
a. Oli2009
b. ada
c. Olimp2009
d. ####2009
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
b. informat
c. inform
d. informLIC

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");
a. info
b. infoLIC
c. LICinfo
d. InformaticaLIC

165. Variabila s este de tip sir de caractere, iar variabilele c1 si


c2 sunt de tip char. Care expresie are valoarea 1 daca si numai daca
sirul de caractere s contine caracterele memorate de variabilele c1
si c2?
a. strstr(s,c1+c2)!=0
b. strchr(s,c1)!=0 && strchr(s,c2)!=0
c. strchr(strchr(s,c1),c2)!=0
d. strchr(s,c1)*strchr(s,c2)!=0

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 ?
a. P.x==0
b. P.y==0
c. P.x+P.y==0
d. P.x==P.y

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
b. 84
c. 36
d. 21

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?
a. 8
b. 64
c. 24
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
b. 64
c. 56
d. 8

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
b. Een
c. Exam
d. Exn

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]);
b. printf("%c",x[strlen(x)-1]);
c. printf("%c",x[2]);
d. printf("%c",x[strlen(x)]);

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?
a. x=x%10+x/10+x/1000;
b. x=x%1000*100+x/100;
c. x=x%1000+x%100+x%10;
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?
a. x%3
b. (1-x%3)+(2-x%3)
c. (1-x%3)*(2-x%3)
d. 3-x%3

174. Care dintre urmatoarele expresii C este echivalenta


cu !((x>=5)&&(x<10)) ?
a. (x<5) || (x>=10)
b. (x<5) || (x>10)
c. (!(x>=5)) && (!(x>10))
d. (x>=5) || (x<10)

175. Variabilele intregi x si y memoreaza cate un numar natural


nenul. Cel mai mic multiplu comun al valorilor lor este egal cu
numarul memorat in y daca si numai daca urmatoarea
expresie C are o valoare nenula:
a. y%x
b. y%x==0
c. x%y
d. x%y==0

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?
a. x%10+y%10==0
b. y%10==x%10
c. x+y%10==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?
a. n%10/10
b. n%10
c. n/100
d. n/10%10

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]?
a. (t<x) && (t>y)
b. (t>=x) && (t<=y)
c. (t>=x) || (t<=y)
d. (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)
b. (t>x) || (t<y)
c. (t<=x) && (t>=y)
d. (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]?
a. (x<=100 && x>10) && (y>=5 || y<30)
b. (x<=100 && x>=10) && (y<5 && y<=30)
c. (x<=100 && x>=10)|| (y>=5 && y<=30)
d. !((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?
a. Secventa contine o instructiune repetitiva inclusa intr-o
instructiune alternativa.
b. Secventa contine o instructiune alternativa urmata de o
instructiune repetitiva.
c. Secventa contine o instructiune alternativa, urmata de o
instructiune repetitiva, urmata de o instructiune de afisare.
d. Secventa contine o instructiune alternativa inclusa intr-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--;
}
b.
i=5; j=6;
while(j>4)
printf(”%d”,j);
j--;
c.
j=5;
for(i=5;i<=5;i++)
printf(”%d”,i);
d.
j=5;
for(i=1;i<2;i++)
printf(”%d”,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?
a. e=a%10/10+a/100%10+a%10;
b. e=a/10+a/100+a/1000;
c. e=a*10/1000+a/10%10+a%10;
d. e=a*10/1000+a%100%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 ?
a. (z>a||(z>b)
b. (z<a)||(z>b)
c. z<a && z>b
d. 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 ?
a. 28.75
b. 28
c. 29
d. 27

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?
a. (y>z) || (x>3)
b. (x==z) && ((y==3)||(w==7))
c. (z<=w) && (x>0) || (y>=x)
d. (y>=3) && (w<7)

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)
b. (z<=x) && (z<=y)
c. (y<x) || (z<=x)
d. (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?
a. -10
b. 25
c. 15
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))
b. (x%2!=0)||(x<0)
c. !((x%2==0)||(x>0))
d. ((x+1)%2==0)&&(x>=2)
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?
a. x % 10 / 10
b. x – (x / 10) * 10
c. x / 10 % 10
d. x – (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?
a. (n%4 == 1) || (n%3 == 1)
b. (n%100/4 == 0) && !(n%3)
c. (n%100%4 == 0) && n%3
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?
a. y = (x*100)/100 + (x*1000%100/10);
b. y = (floor)(x*100)/100 + (floor)(x*100%100/10);
c. y = (floor)(x*100) – (floor)(x*10)*10+(floor)(x);
d. y = (floor)(x*1000)/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))
b. sqrt(x) != floor(sqrt(x))
c. floor(sqrt(x))!=ceil(sqrt(x))
d. x-floor(x)==ceil(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;}
b.
if -5 < x < 2
{ x=x+1; y=y-1;}
c.
if x < 2 && x >-5
{ x=x+1; y=y-1;}
d.
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)?
a. !((z<x) || (z>y))
b. (z>x) && (z<y)
c. !((y>x) && (y<z))
d. (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:
a. n=n%100/10;
b. n=n/10%1000;
c. n=n/10%10000;
d. 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;
b. n=n%10000/100+n/100;
c. n=n/10%10000;
d. n=n/1000;

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.
a. 1012.34
b. 10.12
c. 0.12
d. 10

199. Variabilele n, z si u sunt intregi, iar n memoreaza un numar


natural cu cel putin 2 cifre. Secventa C care determina
interschimbarea ultimelor doua cifre din scrierea numarului memorat
de n este:
a. n=(n/100*10+n%10)*10+n%100/10;

b. u=n%10;
z=n/100%10;
n=n/100+u*10+z;

c. n=(n/100*10+n%10)*10+n/100%10;

d. u=n%10;
z=n/100%10;
n=n/100*100+z*10+u;

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?
a. a<b
b. a==b
c. a>b
d. a+b==6
200. Variabilele intregi a si b memoreaza numere naturale. Care
dintre expresiile C de mai jos este echivalenta cu expresia
(a+b)%2==0 ?
a. (a%2==0) && (b%2==0)&& (a%2==1) && (b%2==1)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (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)
b. (a%2!=0) && (b%2!=0) && (a%2==1) && (b%2==1)
c. (a%2==1) || (b%2==1) || (a%2==0) && (b%2==0)
d. (a%2==0) && (b%2==0) && (a%2==1) && (b%2==1)

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 ?
a. n%100/10%2!=1
b. n%1000%2==0
c. n/100%2==0
d. n/10%10!=1

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] ?
a. (m-n)/2+1
b. m/2-n/2
c. (m-n)/2-1
d. 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?
a. n=n*(n%10);
b. n=n/10;
c. n=n-n%10;
d. n=n-n/10;

205. Care dintre variantele de mai jos declara constanta x astfel


incat aceasta sa memoreze
corect numarul real 3,14?
a. const int x=314/100;
b. const char x=3.14;
c. const unsigned int x=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?
a. aux=b; a=b; b=aux;
b. a=a+b; b=a-b; a=a-b;
c. a=b; b=a;
d. a=a+b; b=a-b; a=b-a;
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;
b. t=n/10*10+n%10;
c. t=n%10+n/10;
d. t=n%10*10+t/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?
a. if ((a>0)||(b<0)) t=-1;
b. if ((a>0)&&(b<0)) t=-1;
c. if (a*b<0) t=-1;
d. 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”);
a. BineRau
b. Foarte bine
c. 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)
b. (x<=-10) || (x<=50 && x>=-2) || (x>=100)
c. (x<-10) || (x<50 && x>-2) || (x>100)
d. (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

a. 0
b. 9
c. 1
d. 11

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
b. k=10; i=5; j=6
c. k=10; i=5; j=5
d. y nu va avea valoarea 1 indiferent de valorile variabilelor i,j
si k

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?
a. x şi y primesc aceeaşi valoare indiferent de valorile
variabilelor i,j şi k
b. k=0; i=5; j=6
c. k=10; i=5; j=5
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?
a. k=0; i=5; j=5
b. k=10; i=5; j=6
c. k=10; i=5; j=5
d. k=0; i=5; j=6

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?

a. numai x şi z
b. numai y şi z
c. numai x şi y
d. x, 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?
a. printf("%d",x/1);
b. printf("%d",x/100);
c. printf("%d",x%100);
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?
a. x = x/4/2+ y/4/2 + z/4/2;
b. x = x/2 + y/2 + z/2;
c. x = x + y + z/2;
d. x = x/1/2+ y/1/2 + z/1/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;

a. III II I
b. I II III
c. III I II
d. I III II

219. 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;

220.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?
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

221.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

222.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
a. 1, 2, 3, 4 c. 1, 4
b. 1, 2, 3, 4, 5 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
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));
a. s4s4.300 c. s44.30s0
b. 44.30s0 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);
}
}
a. 012 c. 021
b. 120 d. 21

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:
a. 13 c. 2
b. 0 d. 4

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];}
}
}
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)

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?
a. aria = p.laturta * p.latura;
b. aria = latura * latura;
c. p.aria = p.latura * p.latura;
d. p.aria = latura * latura;

228. 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

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;
a. 1, 2, 3, 4, 5 c. 2, 3, 4, 5
b. 3 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;
a. 2, 4, 5 c. 2, 3, 4, 5
b. 1, 2, 3, 4, 5 d. 2, 4

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?
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)
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;}
a. a = 121, b = 11 c. a = 120, b = 11
b. a = 120, b = 12 d. a = 121, 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;
a. 1, 2, 3, 4 c. 2,3, 4
b. 1, 3 d. 1, 3, 4

234. 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

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.
a. x = 1002 si y = 5
b. x = 3 si y = 1004
c. x = 1004 si y = 3
d. x = 2007 si y = 2009

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?
a. a = 0 si b = 0
b. a = -1 si b = 25
c. a = 0 si b = 55
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]:
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);

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:
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];

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?

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];

240. 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];
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)?
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++;}

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:
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;

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)?
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;

244. Dintre tipurile simple de date face parte tipul:


a. double c. Tablou
b. FILE d. Uniune (union)

245. 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

246. 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

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


a. parametri locali c. parametri actuali
b. parametri globali d. parametri formali

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:
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

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;
}
a. x = 0 si y = 3 c. x= 6 si y = 0
b. x = 3 si y = 0 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;
}
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

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
a. 2 3 4 c. 2 3 4 5 6
3 4 5 3 4 5 6 7
4 5 6 4 5 6 7 8
5 6 7
6 7 8
b. 2 4 5 d. 2 3 4 5 6
3 4 5 3 2 3 4 5
4 5 6 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:
a. int calcul(int, int, int *); c. void calcul (int, int,
double *, int *);
b. void calcul(int, int, d. void calcul(int, int, int *,
double, int); int *);

253. 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

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?
a. 1151515 c. 6101315
b. 15 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?
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);

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:
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) { ... }

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?
a. A, B, C, D, E, F. c. A, B, C, D, F
b. A, B, D, F d. A, B, C, F

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


a. 2 c. 8
b. 0 d. 4

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


a. ‘a’ == ‘A’ c. ‘a’ < ‘b’
b. ‘1’ + ‘2’ == ‘3’ d. ‘1’ > ‘2’

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 c. examen20examen2008
b. examen2008 d. examen160

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?
a. i == j c. i<j
b. i>=j d. i!=j

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


a. 400 c. 240
b. 280 d. 220

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?
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

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;
}
a. 2, 4, 1, 3 c. 1, 2, 4, 3
b. 3, 4, 2, 1 d. 3, 1, 2, 4.

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?
a. p-1-j
b. j-p+1
c. p-1+j
d. p-j+1

266. 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;}

267. Determinati valoarea expresiei fabs(-11.2) + sqrt(floor(16.23)).


a. -9.2 c. 14.2
b. 15 d. 15.2

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


a. 14 c. 0
b. 2 d. 8

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