Documente Academic
Documente Profesional
Documente Cultură
a) analiza lexicala b)includerea fisierelor header c) definirea constantelor simbolice d)analiza sintactica e) generarea codului obiect f)editarea de legaturi
2. Fisierele header, furnizate alaturi de biblioteci de module cod obiect, impreuna cu un compilator, contin: a) definitiile functiilor de biblioteca b) macro-definitii c) prototipurile functiilor de biblioteca
3. La preprocesarea unui fisier sursa C a) se includ functiile de biblioteca b) se obtine o noua versiune a textului sursa c) se obtine codul obiect
4. In conditiile de mai jos #define PI int r; valoarea expresiei 2 * PI * r este de tip a) int b) float c) double d) long 3.14
5. Daca variabila r este declarata de tipul float, in conditiile definitiilor #define PI 3.14 2*PI*raza
#define perimetru(raza)
6. Urmatoarea macrodefinitie #define swap(a,b) {a=a^b; b=a^b; a=a^b;} poate fi apelata ca swap(x, y); a) numai daca x si y sunt variabile de tip real b) numai daca x si y sunt variabile de tip intreg c) daca x si y sunt constante intregi d) indiferent de ce tip numeric sunt variabilele x si y
7. Urmatoarea macrodefinitie #define swap(a,b) {a=a+b; b=a-b; a=a-b;} poate fi apelata ca swap(x, y);
a) numai daca x si y sunt variabile de tip real b) numai daca x si y sunt variabile de tip intreg c) daca x si y sunt constante intregi d) indiferent de ce tip numeric sunt variabilele x si y
8. In conditiile #define swap(a,b) {int aux; aux=a; a=b; b=aux;} float x=10.5, y=3.75; in urma apelului swap(x, y); valorile lui x, respectiv y vor fi a) x=3.75 si y=10.5 b) x=3.0 si y=10.5 c) x=3.75 si y=10.0 d) x=3.0 si y=10.0
9. In conditiile #define swap(a,b) {int aux; aux=a; a=b; b=aux;} float x,y; in urma apelului swap(x, y); rezultatul (interschimbarea valorilor lui x si y!) a) este corect b) nu este corect c) depinde de valorile lui x si y d) depinde doar de valoarea lui x
a) cu o directiva define nu se pot defini decat constante simbolice b) parametrului x nu i s-a declarat tipul c) la apeluri de genul cub(a+b) rezultatul nu reprezinta, in general, cubul sumei (a+b)
11. Care din variante defineste corect si complet ce anume se specifica prin tipul unei date? a) Numarul de octeti ocupati b) Spatiul necesar reprezentarii si modul de reprezentare. c) Operatiile permise
12. Care din urmatoarele cuvinte rezervate denumesc tipuri de date intregi predefinite in C? a) char b) float c) short d) int e) long f) long double
13. Cum se numeste modul de reprezentare al datelor reale? a) virgula mobila b)complement fata de doi c) virgula fixa
14. Ce este o variabila? a) litera care tine locul unor valori (de ex. a, b, c sau x, y, z) b) o valoare care se schimba c) o zona de memorie identificabila in care se pot pastra valori
15. Ce caracteristica a unei variabile este precizata de clasa sa de memorare? a) locul unde poate fi folosita b) locul unde se creaza c) locul unde se vede 16. Care din urmatoarele clase de memorare se specifica implicit? a) static b) auto c) register d) extern
17. Ce reprezinta domeniul unei variabile: a) plaja de valori pe care le poate lua b) locul unde se creaza c) locul din textul sursa unde poate fi folosita d) daca are semn sau nu
18. Care este atributul care precizeaza unde (intr-un text sursa C) poate fi utilizat legal identificatorul unei variabile? a) domeniul b) durata de viata c) vizibilitatea d) clasa de memorare
19. Care din urmatoarele cuvinte rezervate denumesc tipuri de date reale predefinite in C? a) char b) float c) short d) double e) long f) long double
20. Cum se numeste modul de reprezentare al datelor intregi? a) virgula mobila b) complement fata de doi c) virgula fixa
21. Care atribut al unei variabile indica locul in care este creata varibila? a) domeniul b) durata c) clasa de memorare d) vizibilitatea
22. Stiind ca valorile datelor de tip intreg sunt cu semn, care va fi valoarea variabilei c dupa secventa: char c=130; a) 130 b) -126 c) \0 d) c
23. Declaratia register int i; detrmina crearea variabilei i: a) intr-un registru b) pe stiva c) depinde de context d) declaratia are ca efect inregistrarea variabilei!
24. Declaratia extern int val; a) este o declaratie de referire b) determina crearea variabilei c) anunta tipul variabilei val, declarata altundeva 25. O declaratie de referire a) creaza o variabila b) se face cu cuvantul rezervat extern c) anunta tipul unei variabile nedeclarate inca in respectivul fisier sursa d) precizeaza o referinta (adresa)
26. Domeniul identificatorilor de variabile globale tine din locul declaratiei pana la: a) sfarsitul blocului b) sfarsitul programului c) sfarsitul textului sursa d) sfarsitul functiei 27. Domeniul identificatorilor de variabile locale tine din locul declaratiei a) sfarsitul programului b) sfarsitul textului sursa c) sfarsitul functiei d) sfarsitul blocului 28. La executarea programului urmator se tasteaza 20. Ce se va afisa dupa executare ? #include <stdio.h> Void main() { Char a ; Scanf(% c, & a); Printf(%c,a);} a) 20 b) 2 c) 0 29.Care este durata de viata a variabilelor globale ? a) cat timp sunt utilizate; b)cateva minute; c) cat dureaza executia programului;
30.Care este durata de viata a variabilelor locale? a)cat timp sunt utilizate; b)cateva minute; c)cate dureaza executia subprogramului; d)depinde de clasa lor de memorare;
31.Daca se tasteaza caracaterul c ce afiseaza urmatorul program: #include <sddio.h> Void main(){ Char c; Int k; C=getchar() , k= c +257; Putchar ((char)k);} a) c b) b c) C d) d e) 257 f) 259
32. Care este ordinea de evaluare a expresiilor compuse, daca nu se folosesc paranteze? a) intotdeauna de la stanga spre dreapta b) intotdeauna de la dreapta spre stanga c) aleatoare d) in functie de precedenta operatorilor
33. Cand au loc conversii implicite de tip? a) la citrea datelor de intrare si la afisarea rezultatelor b) cand operanzii unei expresii au tipuri diferite
c) cand argumentul actual cu care se apeleaza o functie are alt tip decat argumentul formal corespunzator
34. Care din urmatorii operatori NU admit operanzi reali? a) operatorii de incrementare/decrementare b) operatorii logici c) operatorii logici pe biti d) operatorii de deplasare
35. Care din urmatorii operatori admit operanzi reali? a) operatorii logici pe biti b) operatorii de deplasare c) operatorii de incrementare/decrementare d) operatorii logici
36. Care este rezultatul numeric al evaluarii unei expresii relationale sau logice? a) FALSE sau TRUE b) 0 sau 1 c) 0 sau diferit de 0
37. Care din urmatoarele valori sunt adevarate din punct de vedere logic? a) \0 b) 0x80 c) 0 d) 280 e) 0.0 f) 3.14F
38. Care din urmatoarele valori sunt false din punct de vedere logic? a) \0 b) 0x1F c) 0 d) NULL e) 0.0 f) 1F _ 39. Date declaratiile int n=10, m=4; float x; valoarea expresiei x = 1.5 + n/m este a) 4.0 b) 3.5 c) de tip double d) de tip float
40. Date declaratiile int n=10, m=4; valoarea expresiei 1.5 + n/m este a) 4 b) 3.5 c) de tip double d) de tip float
41. Data declaratia float x=2.5; valoarea expresiei x=3.0*x + 10/4 este a) 10.0 b) 9.5 c) de tip double d) de tip float
42. Date declaratiile float x=2.5; valoarea expresiei 3.0*x + 10/4.0 este a) 10.0 b) 9.5 c) de tip double d) de tip float _ 43. Date declaratiile int n=200, m=200; long r; si presupunand ca sizeof(int) este 2 iar valorile tipurile intregi sunt implicit cu semn, valoarea expresiei r=n*m este: a) 40000 b) -25536 c) de tip long d) de tip int
44. Daca a este o variabila intreaga, care este valoarea expresiei (a < 'a') && (a > 'z') a) 1 b) 0 c) depinde de valoarea lui a
45. Daca a este o variabila intreaga, care este valoarea expresiei (a < 'a') || (a > 'z') a) 1 b) 0 c) depinde de valoarea lui a
46. Date declaratiile: int i, t[10]; valoarea expresiei ( i=0 ) && ( t[i]<0 ) a) este 1 b) este 0 c) depinde de valoarea lui t[i]
47. Date declaratiile: static int i, t[10]; si presupunand ca atat i, cat si t nu sunt initializati explicit, valoarea expresiei ( i==0 ) || ( t[i]<0 ) a) este 1 b) este 0 c) depinde de context
48. Date declaratiile variabilelor locale: int i, t[10]; si presupunand ca atat i, cat si t nu sunt initializati explicit, valoarea expresiei ( i==0 ) || ( t[i]<0 ) a) este 1 b) este 0 c) depinde de context
49. Date declaratiile variabilelor locale: int i, t[10]={0}; si presupunand ca i nu este initializat explicit, valoarea expresiei ( i==0 ) || ( t[i]==0 ) a) este 1 b) este 0 c) depinde de i
50. In conditiile in care c este declarata char c: valoarea expresiei c = getchar() != EOF a) este valoarea returnata de functia getchar b) este 0 c) este 1 d) este 0 sau 1
51. Presupunand ca adresele se reprezinta pe 4 octeti, cat spatiu de memorie se rezerva prin urmatoarele declaratii: extern long count; struct node { long key; struct node *next; }; a) 12 octeti b) 8 octeti c) 4 octeti d) nici un octet
52. Care este rezultatul evaluarii expresiei "0123456789"[i] daca i=9? a) expresia este gresita sintactic b) 9 c) 9 d) 8
53. Care este rezultatul evaluarii expresiei "0123456789"[i] daca i=0? a) expresia este gresita sintactic b) 0 c) 0 d) \0
54. Care este rezultatul evaluarii expresiei "0123456789"[i] daca i=10? a) expresia este gresita sintactic b) nedefinit c) \0 d) 9
55. Care este rezultatul evaluarii expresiei "0123456789"[10] a) expresia este gresita sintactic b) expresia nu are sens c) 9 d) 0
56. Care este rezultatul numeric al evaluarii exprresiei a<b<c daca a=-2, b=-1 si c=0? a) 1 b) TRUE c) 0 d) FALSE
57. Care este rezultatul numeric al evaluarii exprresiei a<b<c daca a=0, b=1, c=2? a) 1 b) TRUE c) 0 d) FALSE
58. Daca t este un tablou, ce reprezinta valoarea expresiei sizeof t /sizeof t[0] a) expresia este gresita sintactic b) expresia nu are sens c) numarul de elemente ale tabloului t d) numarul de octeti ocupati de t respectiv t[0]
59. Presupunanad ca sizeof(int) este 2, valoarea lui c, in urma executiei secventei urmatoare int a=100, b=400; long int c; c=a*b; a) este corecta b) este eronata c) este 40000 d) este -25536
60. Discutati (in functie de valorile lui a si b) rezultatul lui c dupa: int a, c; long b; c=a*b; a) rezultatul este intotdeauna corect b) rezultatul este intotdeauna eronat c) rezultatul este corect daca a*b se incadreaza in plaja de valori a tipului int
62. Care este valoarea expresiei ~1? a) 0 b) 0xE c) -2 63. Ce se va afia n urma execuiei secvenei urmtoare: #include <stdio.h> void main() { unsigned char x=10; x=~x; printf(%d,(int)x); } a) 245 b) 0 c) 255 64. Ce se va afisa in urma executiei secventei urmatoare:
#include <stdio.h> Void main() { Unsigned char x=25; x=x<<2; Printf(%d,(int)x);} a)27 b)100 c)23
65.Ce se afisa in urma executiei secventei urmatoare: #include <stdio.h> Void main() { Printf(%d , 10>20);} a)false b)error c) 0 d)1
66.Ce va afisa in urma executiei urmatoare : #include <stdio.h> Void main () { Int a=10/4; Printf(%d %d,a,-10 %4;} a)2,5 -3 b)2-2 c)2,5 2 d)2 3 e)error
67. Fie declaratiile : Long int x=5; char y=10; Care este valoarea expresiei x+y ? si care este tipul ei ? a)rezultatul este (char) 15; b)(long int) 15; c) nu se pot aduna;
68) Fie declaratiile : int x = 10, y = 20; Care este valoarea expresiei x+20 <= y+12 ? a)1 b)0 c) 14
69) Fie declaratiile: int x=10, y=20; Care este valoarea expresiei 10==x<y ? a) 0 b) 10 c)1
70) Fie declaratiile : integer x=10,y=20. Care este valoarea expresiei !x-y ? a)0 b)-10 c)-20
71)Fie declaratiile: int x=8, y=20. Care este valoarea expresiei x--/++y ? a)0 b)3 c)0.35 d)0.4 e)0.38095
72)Fie declaratiile: int x=-1, y=1. Care este valoarea expresiei (x&&y)==!(!x||!y) ? a)0 b)1 c)-1 d)2
73) Fie declaratiile: int x=-1, y=1. Care este valoarea expresiei ~x+y ? a)0 b)1 c)-1 d)expresia este gresita
74. Fie declaratiile : int x=2, y=3. Care este valoarea expresiei x&y-x|y+x^y stiind ca ordinea (descrescatoare) de precedent a operatorilor implicate este ( +,-),&,^,| ? a) 8 b)6 c)9 d)7
75. Fie declaratiile: int x=2, y=3; Care este valoarea expresiei x=y==5 ? a)3 b)2 c)5 d)0 e)1
76. Fie declaratiile : int x=2, y=3; Care este valoarea expresiei x- =y+1 ? a)4 b)-2 c)3 d)1 e)0
77. Fie declaratiile: int x=2,y=3; Care este valoarea expresiei x=2=y stiind ca operanzii se asociaza de la dreapta la stanga cu operatorul de atribuire ? a)3 b)expresia este eronata c)2 d)0 e)1
78. Care dintre variabilele din secventa urmatoare are valoarea finala -1 ? Int x=-2,y=0 z=1,v=-1; x++; y-=2; z-=y+++2; v=a-b ; a)toate b)x c)y d)x,v e)x,y,v f)y,v
79. Fie x=2 si y=3. Stiind ca ordinea (descrescatoare) a precedentei operatorilor este !,(*,%), (+,-),>,(==,!=),&&, care din expresiile de mai jos are valoarea 1 ? a)x+y>x%y+1 b)x&& c)!(x!=y) d)2*x-y==1 e)!(x-y!=0) 80. Care dintre urmatoarele expresii conditionale este o transcriere corecta a textului : daca x este pozitiv, atunci y ia valoarea a, altfel y ia valoarea lui b ? a) y=(x>0) ?a:b b) y=!x>0?b:a c) !(x>0) ?y=a:y=b; d) x>0?y=a:y=b 81. Daca a este o variabila de tip int si a=-1, valoarea expresiei ~++a este : a)-1 b)0 c)1 d)expresia este gresita syntactic 82. Daca tipul int se reprezinta pe 4 octeti ce afiseaza programul de mai jos ? # include <stdio.h> Void main () { Int x=5; Printf (%d, (sizeof(x-1)==sizeof(int))?sizeof(x):sizeof(2));} a)5 b)4 c)2 d)1
83. Ce afiseaza programul ? #include <stdio.h> Void main() { Int x=5, y=2, z=3; Printf(%d,(z=x-2,x=y/z,y-=x,x/2)) ;} a)3020 b)1002 c)0 d)-32,5 0,5 1,75 e) programul este eronat
84.Ce valoare afiseaza programul ? #include <stdio.h> Void main() { Int x,y,z; X=y=z=4; Printf(%d,(x<<z)-(x|y)+(z&y));} a)64 b)4 c)0 d)5 e)33 f)32
85. Care din urmatoarele variante reprezinta modalitati de comunicare intre functii? a) apel b) prin variabile locale c) prin argumentele actuale d) prin valoarea returnata e) prin variabile globale f) prin includere
86. Ce este contextul de apel al unei functii? a) lista argumentelor formale b) o zona de memorie (de pe stiva) c) locul din textul sursa in care se apeleaza d) instructiunile (definitia functiei)
87. Ce se regaseste in contextul de apel al unei functii? a) definitii de constante simbolice b) valoarea returnata c) adresa de revenire d) valoarea argumentelor actuale e) variabilele locale f) variabilele globale
88. Transmiterea argumentelor catre functia apelata (conventia de apel C) se face: a) prin variabile globale b) prin valoare c) in ordine inversa celei din lista de argumente d) prin referinta
89. Ce este o functie recursiva? a) o functie nu poate fi recursiva b) o functie care recurge la context c) o functie cu lista variabila de argumente d) o functie care se autoapeleaza
90. Comparata cu varianta sa iterativa, din punct de vedere al spatiului de memorie necesar apelului, o functie recursiva este, in principiu: a) la fel de eficienta b) mai putin eficienta c) mai eficienta
91. Comparata cu varianta sa iterativa, din punct de vedere al timpului de executie, o functie recursiva este, in principiu: a) la fel de eficienta b) mai eficienta c) mai putin eficienta
92. Efectul executiei urmatoarelor secvente: for(exp_1; exp_2 ; exp_3) instructiune; | | este a) identic b) diferit | | exp_1;
c) dependent de context
93. In absenta prototipului functiei, contextul urmatorului apel f('2', -1.5F, 2L); va contine argumente de tip: a) char, float, long b) int, double, long c) char, double, long d) int, float, long
94. Doua functii pot comunica in conditiile in care nici una nu o apeleaza pe cealalta? a) nu b) da, prin mesaje c) eventual, prin variabile globale 95. O functie cu lista de argumente de lungime variabila a) poate fi apelata fara nici un argument b) poate avea, la apeluri diferite, un numar diferit de argumente c) nu poate fi definita intr-un program C d) trebuie sa aiba cel putin un argument cu nume
96. Rezultatul apelului f(2, 1.5, 0.25) al unei functiei declarate ca void f(int , ...); si care asteapta argumente de tip float in lista variabila a) este corect b) nu este corect c) depinde de implementarea limbajului
97. Rezultatul apelului f(2, 1, 25) al unei functiei declarate ca void f(int , ...); si care asteapta argumente de tip long in lista variabila a) este corect b) nu este corect c) depinde de implementarea limbajului
98. Efectul executiei urmatoarelor secvente: for(exp_1; exp_2 ; exp_3) instructiune; | | este a) identic b) diferit c) dependent de context | | exp_1;
99. Care este efectul secventei: for(i=0; i<N; i++); printf("\n %d",i); a) se afiseaza, pe linii separate, valorile de la 1 la N b) se afiseaza pe linie noua valoarea N-1 c) se afiseaza, pe linii separate, valorile de la 0 la N-1 d) se afiseaza pe linie noua valoarea N
100. Definitia: void init(int tablou[ ]) { int n, i; n=sizeof tablou / sizeof(tablou[0]; for(i=0; i<n; i++) tablou[i]=0; } a) este, formal, corecta b) este, principial, gresita c) isi atinge scopul (initializarea cu 0 a elementelor tabloului) 101. Data functia float aria(float raza, float pi) {return pi*raza*raza;} precizati contextul de apel (configuratia stivei) la apelul a=aria(10,3. 14) stiind ca nu s-a furnizat prototipul (declaratia) functiei: a) (float)10, (float)3.14, adresa de revenire b) adresa de revenire, (float)10, (float)3.14 c) adresa de revenire, (int)10, (double)3.14 d) (int)10, (double)3.14, adresa de revenire 102. Secventa urmatoare void f(int n) { int t[n], i; for(i=0; i<n; i++) t[i]=0; } a) este gresita b) este corecta /*alte instructiuni */
103. Daca n este o variabila de tip integral (char, short, int, long) care este efectul secventei: n=n%2; if(n=0) printf("n - par"); else printf("n - impar"); a) se afiseaza intotdeauna: n - impar b) se afiseaza intotdeauna: n - par c) depinde de valoarea initiala a lui n
104. Ce este gresit in urmatoarea definitie a functiei itoa: char *itoa(int n) /*converteste intregul n in sir de caractere */ { char buf[11]; sprintf(buf, "%d", n); return buf; } a) dimensiunea tabloului buf este prea mica b) nu e nimic gresit! c) integritatea rezultatului din buf nu este garantata in functia apelanta
105. Daca x este int, care din secventele de mai jos nu este echivalenta cu celalalte ? (i) (ii) if (x>>1<<1==x) printf (%d,x); if (x<<1>>1==x) printf (%d,x);
a)i b)ii c)iii d)iv e)toate sunt echivalente 106. Daca x este sirul de caractere Examen, care din secventele de mai jos nu afiseaza aceleasi rezultate ca celelalte ?
(i)
(ii)
(iii) (iv)
107. Daca x este sirul de caractere "Examen", care din secventele de mai jos l afiseaz pe x? (i) (ii) (iii) (iv) (v) if (strcmp(x,x+l) <0) printf ("%s, x) ; if(!strcmp(x,"Examen")) printf(%s",x); if(strncmp(x,"Examen",3)) printf("%s",x) if{strcmp("Examen", x)) printf("%s',x); if (strcmp("Examen",x)>0) printf (%s",x) ;
a) i b)ii c) i i i d) iv e)v f)i si ii g) iv si v h) toate sunt echivalente 108. Ce realizeaz secventa urmtoare asupra lui n: int n,k=0; while(n) { k+=(n%10==0) + (n%10==2) + (n%10==4) + (n%10==6) + (n%10==8);
n/=10;}
a) numr cifrele lui n b) numara cte cifre pare arc n c) test de paritate d) numr cate cifre pare (mai putin zerourile!) are n 109. Ce afiseaz urmtorul program? # include <stdio. h> int x; void y(int z) {printf("%d",++z;} void main () {x=1; y(x); printf ("%d", x);} a) 2 1 b) 1 1 c)21 d) 11 e)22 f)2 2
Int f(int x) {return x+1;} Void p(int x) { printf (%d,x++);} Void main () {p(f(f(0))); }
a) 1 b) 2 c) 3 d) 0 111. Ce afiseaza programul urmator: # include <stdio.h> Int a; int u() { int a=2; return a;} Void w(int a) {printf(%d,++a);} Void v() { int a=4; printf (%d,a);} Void main () { a=1; Printf (%d,a); v(); w(a); Printf (%d%d, u(), a);} a) 14221 b) 11111 c) 14121 d) 14212 112. Care antet de functie este correct ? (i) int u (int x; int y); (ii) int u (int x,y,z[20]); (iii) int u (int x,y,*z); (iv)int u (int x; int y, int z[]);
a)i
b)ii
c) iii
d) iv
e)toate
f)niciunul
g)ii si iii
113. Ce afiseaza la printf(%d %d,f(100), f(-100)) daca f este int f(int k) { if (k) Return 10 *f(k/10) + k%10; Else Return 0; }
114. Ce calculeaza functia Int f(int k) {if (k) Return (k%2==0) *k + f(k-1); Else Return 0; } a) suma numerelor <= k b) suma primelor k numere pare c) numara numerele impare
115.Ce se va afisa ?
#include <stdio.h> Void f(char c) { printf(%c, c++); If (c<d) f(c+2); printf(%c, --c); }
116. Ce valoare se returneaza la apelul f (3) ? Int f(int k) { if (k<0) return 2; Else Return f(k-1) * 2;)
117.Ce determina secventa : K=0; While (a[k] [k]) K++; a)indicele primei valori nenule de pe diagonal b)indicele primei valori nule; c)indicele primei valori nule de pe diagonal; d)altceva
118.Ce valoare se afiseaza ? Int n =16; While (n) Do { n--; } while (n! = -1); Printf(%d,n);
119. Ce este un pointer? a) un indicator; b) o adresa de memorie c) o variabila a carei valoare se interpreteaza ca adresa
120. Care dintre urmatoarele operatii sunt ilegale: a) inmultirea unui pointer cu un intreg b) impartirea a doi pointeri c) compararea a doi pointeri d) scaderea unui pointer din alt pointer e) adunarea unui intreg la un pointer f) dereferentierea unui pointer
121. Ce operator se utilizeaza pentru dereferentierea unui pointer (adica pt.accesul la valoarea stocata la adresa care este pastrata in variabila pointer)? a) & b) . c) *
122. Care este tipul expresiei n**pi, in conditiile de mai jos long n=10, *pi=&n; a) long b) int c) long *
123. Care este valoare expresiei q-p, in conditiile de mai jos: int t[10], *p=t,*q=&t[9]; a) 9 b) 10 c) t[9]-t[0] d) 20
125. Daca pointerul p indica spre un element al unui tablou, in urma evaluarii expresiei p+5 a) p nu se modifica b) p indica 5 elemente dincolo de elementul spre care indica initial c) se obtine ca rezultat adresa celui de-al 5-lea element dincolo de elementul spre care indica p
126. Presupunand ca octetii unei variabile sunt memorati incepand cu octetul mai putin semnificativ, in conditiile int t[ ] = { 0x0203, 0x1} *p=t; valoarea expresiei *p * *(p+1)
127. In conditiile int t[ ] = { 0x0203, 0x4}; char *p = t; valoarea expresiei *p * *(p+1) a) este 0x203 b) este 0x6 c) este 0x8
d) 0xC
128. In conditiile int t[ ] = { 0x0203, 0x4}; char *p = t; valoarea expresiei *p * *(p+2) + 1 a) este 0x204 b) este 0x7 c) este 0xD d) 0x9
129. Care dintre urmatoarele operatii sunt legale: a) inmultirea unui pointer cu un intreg b) impartirea a doi pointeri c) compararea a doi pointeri d) scaderea unui pointer din alt pointer e) decrementarea unui pointer f) dereferentierea unui pointer
130. Care este tipul expresiei n**pi, in conditiile de mai jos int n=10, *pi=&n; a) long b) int c) int *
131. Stiind ca numele unui tablou este sinonim cu adresa primului element al tabloului, ce diferenta exista intre urmatoarele declaratii: char char s[ ] = "Timisoara"; *p = "Timisoara";
a) nici una b) prima declara un tablou, a doua un pointer c) expresia s==p este falsa d) expresia s==p este adevarata
132. Presupunand ca adresele se reprezinta pe 4 octeti, cat spatiu de memorie se rezerva prin declaratiile urmatoare: char *name, buffer[20]; short *pshort, t[20]; double *pdouble, PI; In ordine, pt name, buffer, pshort, t, pdouble si PI: a) 1, 20, 2, 40, 8, 8 octeti b) 4, 20, 4, 40, 4, 8 octeti c) nici un octet
133. Secventa urmatoare char *p; strcpy(p, "Timisoara"); a) este corecta b) este, principial, gresita c) va avea un rezultat imprevizibil
134. Secventa urmatoare char *p=c:\\temp\\; strcat(p, lista.txt); a) este, principial, gresita b) este corecta c) va avea un rezultat imprevizibil
135. Presupunand ca se furnizeaza prototipurile functiilor apelate, ce este gresit in secventa int *pi; char *pc; scanf("%d",pi); strcpy(pc,"timisoara"); a) argumentul pi din apelul lui scanf trebuie precedat de operatorul adresa (&) b) pi trebuie initializat inainte de scanf c) pc trebuie initializat inainte de strcpy
136. Care este valoarea variabilei r dupa executia secventei urmatoare, parte a definitiei unei functii: { char *string, r; r = (string == "Timisoara"); } a) 0 b) 1 c) 0 sau 1, dependent de context
137. Care este valoarea variabilei r dupa executia secventei urmatoare daca, la compilare, constantele sir de caracter se genereaza indiferent daca mai exista o alta identica: char *nume=Timisoara, r; main() { r = (nume == Timisoara); } a) 0 sau 1, dependent de context b) 0 c) 1
138. Care este valoarea variabilei r dupa executia secventei urmatoare daca, la compilare, constantele sir de caracter nu se duplica (se genereaza o singura data, indiferent de cate ori a fost specificata in textul sursa): char *nume=Timisoara, r; main() { r = (nume == Timisoara); } a) 0 sau 1, dependent de context b) 0 c) 1
139. Ce este gresit in secventa urmatoare, care ar trebui sa rezerve saptiu pentru 10 date de tip int si sa le initializeze cu 0: void *malloc(int ); void *p; p=malloc(10*sizeof(int)); for(i=0;i<10;i++) *p=0; a) secventa e corecta! b) p ar trebui incrementat la fiecare iteratie c) nu se poate dereferentia un pointer void 140. Care este valoarea lui n dupa executia secventei: char t[ ]="timisoara", *p,*q,n; p=q=t; while(*q++); n=q-p; a) n=0 b) n=9 c) n=10 d) n=\0-t 141. Care este valoarea lui n dupa executia secventei: char t[ ]="timisoara", *p, *q, n; p=q=t; while(*q) q++; n=*q-*p; a) a t b) 10 c) t b) 9
142. Ce este gresit in secventa: int t[N], *low=t, *mid, *high=&t[N-1]; mid = ( low + high ) / 2; a) un pointer nu se poate initializa cu un tablou b) initializarea lui low, respectiv high e gresita c) adunarea a doi pointeri este ilegala d) mid nu poate fi initializat cu o valoare reala (daca low+high e impar!)
143. Ce este gresit in secventa: char *p; strcpy(p, "Timisoara"); a) nu se poate copia un sir de caractere intr-un pointer! b) secventa e corecta c) pointerul p este neinitializat
144. Date declaratiile: int t[10], *pi=t; char *pc=t; de ce tip sunt valorile expresiilor *pi respectiv *pc? a) int * respectiv char * b) int / int c) int / char d) pc nu poate fi initializat cu t!
145. Care va fi valoarea pointerului p dupa initializare, daca adresa de inceput a tabloului t este 0x1A2: long t[100],*p; p=&t[6]; a) 0x1A8 b) 0x1BA c) 0x1C6
146. Daca tab este numele unui tablou, despre expresia *(++tab) se poate afirma ca: a) un tablou nu poate fi dereferentiat b) expresia e corecta c) numele unui tablou este o constanta, deci nu poate fi incrementat
147. Daca tab este numele unui tablou, despre expresia ++(*tab) se poate afirma ca: a) un tablou nu poate fi dereferentiat b) expresia e corecta c) numele unui tablou este o constanta, deci nu poate fi incrementat
148. In conditiile de mai jos, cum se poate obtine in p adresa urmatorului element al tabloului: int t[N]; char *p=t; a) p++ b) un char * nu poate fi initializat cu adresa unui int ! c) p+sizeof(int) d) p=p+sizeof(int)
149. Care este valoarea lui n dupa executia secventei: char t[]="timisoara", *p,*q, n; p=&t[1]; q=&t[3]; n=*q-*p; a) 2 b) secventa este gresita sintactic c) 0 d) 0
150. Care este valoarea lui n dupa executia secventei: char t[]="timisoara", *p,*q, n; p=&t[1]; q=&t[3]; n=*q-*p; a) 2 b) secventa e gresita sintactic d) 0 d) \0
151. Fie declaratiile int x=7, *y=&x. Valoarea lui y este: a) adresa lui x; b) 7 c) *&x d) &x e) x
152 Ce se afiseaza dupa executia secventei : Int x=7; *&x=5; printf(%d,x); a) 7 b) 5 c) Adresa lui x d) 0 e) 35 f) Error
153. Ce reprezinta declaratia : int *(*() (int *) ? (i) functie ce primeste argument pointer la intreg si intoarce pointer la intreg (ii) o declaratie gresita (iii)pointer catre o functie care asteapta ca argument un pointer la int si intoarce un pointer la int; (iv) pointer catre o functie care intoarce un int
154. Fie declaratia de variabile : int *u[3], v[3]; Care dintre atribuiri sunt incorecte ? a) u[1] = &v[2] ; b) *u[2] = v[0] ; c) u[0] = v; d) u[1] = *v ; e) &u[1] = v[1] ;
155. Ce se afiseaza ? #include <stdio.h> Void main() { Char *u[2] = {abc, def}, **v; V=&u[0]; Printf(&c,(*v) [1]);}
a) a b) b c) c d) d e) e f) f g) abc
156. Cat spatiu de memorie ocupa o variabila structura a) cat spatiul ocupat de cel mai voluminos dintre membrii b) egal cu suma spatiilor necesare membrilor c) cel putin cat suma spatiilor necesare membrilor
157. Care din afirmatiile urmatoare, referitoare la structuri, sunt adevarate: a) sunt tipuri de date agregate b) sunt tipuri de date definite de programator c) sunt tipuri de date predefinite d) sunt tipuri de date scalare
b) * c) & d) .
159 Poate o structura sa contina ca membru o structura de acelasi tip? a) da b) nu c) depinde de context
160. Care din urmatoarele operatii sunt legale: a) compararea a doua structuri b) returnarea unei structuri ca valoare a unei functii c) adunarea a doua structuri d) copierea unei structuri
161. Data o variabila structura si o variabila uniune, ambele avand aceiasi membri, care dintre ele ocupa mai mult spatiu in memorie? a) variabila uniune b)variabila structura c) ambele ocupa acelasi spatiu
162. Declaratia int a:3; poate fi o declaratie de membru: a) al unei structuri b) al unei uniuni c) al unui bit-field d) al oricaruia din cele trei tipuri amintite
164. Poate o structura sa contina ca membru un pointer spre o structura de acelasi tip? a) da b) nu c) numai daca este primul membru d) numai daca este ultimul membru
165. Care din urmatoarele operatii sunt ilegale: a) compararea a doua structuri b) returnarea unei structuri ca valoare a unei functii c) adunarea a doua structuri d) copierea unei structuri
166. Date declaratiile de mai jos, precizati care din expresiile care urmeaza sunt corecte struct point{ float x,y;}; struct circle { struct point center; int radius; } v, *p=&v; a) p->center.x b) p.center.x c) *p->center.x d) (*p).center.x e) v->center.x f) v.center.x
167. Date declaratiile de mai jos si stiind ca i este o variabila intreaga, precizati care din expresiile care urmeaza sunt corecte struct point {int x,y;}; struct rectangle {struct point p1.p2;} *r[N]; a) r[i].p1.x b) r[i]->p1.x c) *(r[i]).p1.x d) *r[i].p1.x
168. Date declaratiile de mai jos, precizati tipul expresiei *(r[i]).p1.x, i fiind o variabila intreaga. struct point {int x,y;}; struct rectangle {struct point p1.p2;} *r[N]; a) struct rectangle b) struct rectangle * c) struct point d) int
169. Care din urmatoarele valori ale argumentului mode, pasat functiei fopen, permite deschiderea unui fisier text pt actualizare: a) "at" b) "rwt" c) "r+" d) "wt+" e) "a+" f) "rwt+"
170. Functia de pozitionare fseek poate fi folosita in cazul stream-urilor deschise a) pentru citire b) pentru scriere c) numai daca stream-ul e deschis pentru actualizare
171. Un stream binar deschis pentru citire (modul "rb") poate fi citit corect cu: a) fscanf b) gets c) getchar d) fread 172. Functia fscanf poate fi folosita pentru citirea a) numai a fisierelor text b) numai a fisierelor binare d) oricarui tip de fisier 173. Functia fputs poate fi folosita pentru scriere a) numai in fisiere binare b) numai in fisiere text d) in orice tip de fisiere 174. Functia printf este: a) o functie standard de iesire b) o functie de tiparire la imprimanta c) o functie de afisare formatata d) o functie cu lista variabila de argumente 175. Functia fputc returneaza valoarea EOF: a) numai la sfarsit de fisier