You are on page 1of 18

TEMA DE CASA 1 (ANP) Limbajul C 2017-2018

NUME: Data predrii: ............................. 2017

GRUPA:

I. Generaliti

1. Care din urmtoarele simboluri(caractere) speciale este permis intr-un nume


de variabil?

A. * (asterisk)
B. | (pipeline)
C. - (hyphen)
D. _ (underscore)

2. Care din urmtoarele este un comentariu corect?


A. */ Bla..Bla */
B. ** Bla..Bla **
C. /** Bla..Bla **/
D. // Bla..Bla

3. In cazul unui compilator C, domeniul de reprezentare a unei variabile de tip


unsigned char este (in zecimal):
A. 0 256
B. 0255
C. 0512
D. -128 +127

4. Ce punctuaie se utilizeaz pentru a semnala nceputul si sfritul unui bloc


de cod surs in C?
A. { }
B. -> si <-
C. BEGIN si END
D. ( )

5. Ce punctuaie se utilizeaz pentru a ncheia majoritatea liniilor de cod in C?


A. .
B. ;
C. :
D. '

6. Care din urmtoarele nu este un tip corect de variabil in C?


A. float
B. real

1
C. int
D. double

7. Care din urmtoarele nu este o declaraie valid de nume de variabila?


A. int _a3;
B. int a_3;
C. int 3_a;
D. int _3a

8. Care din urmtoarele tipuri generice nu exist nativ in limbajul C:


A. Caracter
B. Boolean
C. ntreg
D. Flotant

9. Care este operatorul corect care trebuie utilizat pentru a compara dou
variabile?
A. : =
B. =
C. equal
D. = =

10. Care din urmtoarele este ordinea corect de evaluare a operanzilor pentru
expresia: z = x + y * z / 4 % 2 1 ?
A. * / % + - =
B. = * / % + -
C. / * % - + =
D. * % / - + =

11. In C valoarea unei variabile locale (automate) declarat dar neiniializat va


fi:
A. 0
B. 1
C. neprecizat
D. nici una din cele de mai sus

12. Ce reprezint urmtoarea instruciune:

const int i;

A. o declaraie
B. o definiie
C. o funcie

2
13. Este adevrat c o variabil global poate avea mai multe declaraii dar o
singur definiie?
A. Da
B. Nu

14. In C care este dimensiunea tipului de date int?

A. 4 Octei
B. 8 Octei
C. Depinde de sistem/compilator
D. Nu poate fi determinata

II. Operatori la nivel de bit (bitwise) si operatori logici

15. Care din urmtorii operatori booleeni este cel utilizat pentru a realiza un
SI(AND) logic?
A. &
B. &&
C. |
D. |&

16. Care din urmtorii operatori booleeni este cel utilizat pentru a realiza un
SAU(OR) la nivel de bit (bitwise)?
A. | |
B. &|
C. |
D. |&

17. Care este rezultatul urmtoarei operaii (in C): ~ (0x55 & 0x55) ?
A. 0xBB
B. 0x55
C. 0xAA
D. 0x00

18. Presupunnd ca operandul de tip unsigned char a are valoarea 0x02,


care este valoarea lui dup operaia a = a >> 2;
A. 0x22
B. 0x01
C. 0x00
D. 0x0F

19. Presupunnd ca operandul de tip unsigned char a are valoarea 0x8F,


care este valoare lui dup operaia a = a << 2;

3
A. 0x22
B. 0x11
C. 0x88
D. 0x0C

15. Presupunnd ca operandul de tip unsigned char a are valoarea 0xFF,


care este valoare lui dup operaia a = a >> 5;
A. 0x0F
B. 0xF0
C. 0x07
D. 0x70

16. Care este rezultatul urmtoarei operaii (in C): 0x55 | 0x55 ?
A. 0xBB
B. 0x55
C. 0xAA
D. 0x11

17. Care din urmtoarele operaii (in C) realizeaz nmulirea cu 8 a valorii


operandului unsigned char a ?

A. a = a << 2;
B. a = a >> 3;
C. a = a << 3;
D. a = a >> 2;

III. Instruciuni IF

18. Care din urmtoarele valori se va evalua ca adevrat (true) in C?


A. 1
B. 66
C. 1
D. -1
E. Toate de mai sus

19. Evaluai expresia: !( 1 && !( 0 || 1) )


A. Adevrat (true)
B. Fals (false)
C. Expresia nu poate fi evaluat

4
20. Evaluai expresia: !(0x00)
A. Adevrat (true)
B. Fals (false)
C. Expresia nu poate fi evaluat

21. Care este sintaxa corect pentru o instruciune tip IF?


A. if expresie
B. if {expresie}
C. if(expresie)
D. expresie if

22. Expresia if (a == 1||b == 2){} poate fi scris si ca :

A. if (a == 1)
if (b == 2){}
B. if (a == 1){}
if (b == 2){}
C. if (a == 1){}
else if (b == 2){}
D. Nici una de mai sus

IV. Bucle (Loops)

23. Care este numrul minim de cate ori se execut o bucl C de tip DO-WHILE?

A. 0
B. Infinit
C. 1
D. Variabil

24. Care din urmtoarele construcii nu este o bucl in limbajul C?


A. For
B. Do while
C. While
D. Repeat Until

25. Care este valoarea final a lui x dup ce codul corespunztor buclei FOR
for(int x=0; x<10; x++) a fost executat?
A. 10
B. 9
C. 0

5
D. 1

26. Cnd se va executa blocul de cod care urmeaz dup un while(x<100) ?


A. Cnd x este mai mic dect 100.
B. Cnd x este mai mare dect 100.
C. Cnd x este egal cu 100.
D. Depinde de prima instruciune din blocul care urmeaz.

27. Dac ntr-o bucla FOR condiia lipsete, atunci:


A. Ea va fi implicit considerat prezent si evaluat ca adevrat
B. Ea va fi implicit considerat prezent si evaluat ca fals
C. Va rezulta o eroare de sintax
D. Execuia se va termina brusc

28. Cuvntul cheie break nu poate fi utilizat simplu si direct intr-un constructor :

A. DO-WHILE
B. IF-ELSE
C. FOR
D. WHILE

29. Care din urmtoarele tipuri de bucle este adecvata pentru a realiza mai nti
operaia si apoi testa o condiie?

A. DO-WHILE
B. WHILE
C. FOR
D. Nici una din cele de mai sus

V. Funcii

30. Este adevrat c o funcie poate avea mai multe declaraii dar o singur definiie?
A. Da
B. Nu

31. Care este sintaxa corecta prin care un vector tri-dimensional a (declarat anterior
ca int a[5][4][3];) este transmis ca parametru unei funcii func?

A. func(a);
B. func(&a);
C. func(*a);

6
D. func(**a);

32. Care din urmtoarele definiii de funcii se va executa corect?

A. int sum(int a, int b)


return (a + b);
B. int sum(int a, int b)
{return (a + b);}
C. int sum(a, b)
return (a + b);
D. att A ct si B

33. Care din urmtoarele este un apel valid de funcie (presupunnd c funcia funct
exist)?
A. funct;
B. funct x, y;
C. funct();
D. int funct();

34. Care din urmtoarele construcii nu este un prototip corect pentru o funcie?
A. int funct(char x, char y);
B. double funct(char x)
C. void funct();
D. char x();

35. Care este tipul returnat de funcia avnd prototipul: int func(char x, float
v, double t);
A. char
B. int
C. float
D. double

36. Care din urmtoarele linii descrie o funcie complet?


A. int funct();
B. int funct(int x) {return x=x+1;}
C. void funct(int) {cout<<"Hello"}
D. void funct(x) {cout<<"Hello"}

37. O variabil declarat ntr-o funcie poate fi utilizat in main() ?

A. Da
B. Nu
C. Da, numai dac este o variabil static

7
38. Numele unei variabile folosit ntr-o funcie nu mai poate fi utilizat in alt funcie.

A. Adevrat
B. Fals

VI. Instruciuni Switch, Case

39. Intr-un constructor switch, ce cuvnt cheie acoper in C posibilitile pentru care
tratarea nu este definit?
A. all
B. contingency
C. default
D. other

40. Ce urmeaz dup o instruciune case?


A. :
B. ;
C. -
D. O linie nou

41. Ce ar fi necesar pentru a evita trecerea dintr-un caz case in urmtorul caz case?
A. end;
B. break;
C. Stop;
D. ;

42. Care este rezultatul execuiei urmtorului cod C?

x=0;
switch(x)
{
case 1: cout<<"One";
case 0: cout<<"Zero";
case 2: cout<<"Hello World";
}
A. One
B. Zero
C. Hello World
D. ZeroHello World

VII. Pointeri

8
43. Care din urmtoarele construcii este o declaraie corect de pointer?
A. int x;
B. int &x;
C. ptr x;
D. int *x;

44. In codul de mai jos ce este de fapt p2 ?

typedef int *ptr;


ptr p1, p2;

A. un ntreg
B. un pointer la un ntreg
C. declaraia este eronata

45. Care din urmtoarele expresii returneaz adresa de memorie a variabilei int a; ?
A. *a;
B. a;
C. &a;
D. address(a);

46. Care din urmtoarele returneaz adresa de memorie a pointerului a ?


A. a;
B. *a;
C. &a;
D. address(a);

47. Care din urmtoarele expresii returneaz valoarea memorat in pointerul a ?


A. a;
B. val(a);
C. *a;
D. &a;

48. Care din urmtoarele nu este o declaraie de pointer?


A. char a[10]
B. char a[] = {1, 2, 3, 4};
C. char *str
D. char a;

49. Urmtoarea linie de cod C: int *func(int a, char b); declar :


A. o funcie func care returneaz un pointer la un ntreg
B. un pointer la o funcie func care returneaz un ntreg

9
50. Urmtoarea linie de cod C: int (*func)(int a, char b); declar :
A. o funcie func care returneaz un pointer la un ntreg
B. un pointer la o funcie func care returneaz un ntreg

51. In codul de mai jos ce este de fapt x ?

typedef char (*(*arrfptr[3])())[10];


arrfptr x;

A. un pointer
B. un vector de trei pointeri
C. un vector de trei pointeri la funcii
D. declaraia este eronat

VIII. Structuri

52. Care din urmtoarele este o structur definit corect?


A. struct {int a;}
B. struct a_struct (int a;)
C. struct a_struct int a;
D. struct a_struct {int a;};

53. Care din urmtoarele nu poate fi un membru al unei structuri?

A. O alt structur
B. O funcie
C. Un vector
D. Niciuna din cele de mai sus

54. Care din urmtoarele acceseaz variabila var din structura b ?

A. b->var;
B. b.var;
C. b-var;
D. b>var;

55. Care din urmtoarele tipuri de date nu poate fi returnat de o funcie in C?

A. char *
B. struct
C. void

10
D. Niciuna din cele menionate

56. Care din urmtoarele declar corect variabila de tip structur numit foo?
A. struct foo;
B. foo var;
C. foo;
D. int foo;
57. Care din urmtoarele operaii este ilegal in cazul unei structuri?
A. Conversia de tip pentru o structur
B. Pointer la o variabil din aceiai structur
C. Alocarea dinamic de memorie pentru o structur
D. Toate cele menionate

58. Care este sintaxa corect pentru a accesa un membru al celei de i-a structuri dintr-
un vector de structuri s declarat ca:

struct stemp
{int b;
}s[50];
A. s.b.[i];
B. s.[i].b;
C. s.b[i];
D. s[i].b;

IX. Vectori (arrays)

59. Care din urmtoarele declar corect un vector?


A. int anarray[10];
B. int anarray;
C. anarray{10};
D. array anarray[10];

60. Care este indexul ultimului element dintr-un vector cu 30 de elemente?


A. 30
B. 29
C. 0
D. Este definit de programator

61. Care este dimensiunea (numrul de elemente) pentru vector pentru care ultimul
element are indexul 20?

11
A. 19
B. 21
C. 20

62. Care din urmtoarele este o declaraie corect pentru un vector bidimensional?
A. array anarray[20][20];
B. int anarray[20][20];
C. int array[20, 20];
D. char array[20];

63. Care din urmtoarele acceseaz corect al 7-lea element memorat n foo , un
vector presupus definit anterior, avnd 100 de elemente?
A. foo[6];
B. foo[7];
C. foo(7);
D. foo;

64. Care din urmtoarele ne returneaz adresa de memorie a primului element din
foo , un vector presupus definit anterior, avnd 100 de elemente?
A. foo[0];
B. foo;
C. &foo;
D. foo[1];

65. In C, cnd i transmitem (pasm) unei funcii ca argument un vector, de fapt i


transmitem:

A. Valoarea elementelor vectorului


B. Primul element al vectorului
C. Adresa de baza a vectorului
D. Adresa ultimului element al vectorului

66. Ce se ntmpl cu un program in C dac asignm o valoare unui element al unui


vector al crui index depete de fapt dimensiunea declarat a vectorului ?

A. Elementul va fi avea valoarea 0


B. Compilatorul va raporta o eroare
C. Programul ar putea s crape (crash) datorit eventualei suprascrieri a unor
date importante
D. Dimensiunea vectorului va creste corespunztor

X. iruri (strings)

12
67. In C cu ce caracter se termin (intern) toate irurile?
A. '.'
B. ' '
C. '/0'
D. '/n'

68. Care din urmtoarele citete irul x, un sir definit anterior, avnd 100 de
caractere?
A. cin.getline(x, 100, '/n');
B. cin.getline(100, x, '/n');
C. readline(x, 100, '/n');
D. read(x);

69. Care din urmtoarele funcii este funcia standard care compar dou iruri?
A. compare();
B. stringcompare();
C. cmp();
D. strcmp();

70. Care din urmtoarele funcii este funcia standard care adaug un sir la sfritul
altuia?
A. append();
B. stringadd();
C. strcat();
D. stradd();

XI. Conversii de tip(typecasting)

71. De ce conversia de tip poate fi si periculoas ?


A. Anumite conversii nu sunt definite, cum ar fi din char n int.
B. Se poate modifica permanent valoarea unei date.
C. Se poate pierde temporar o parte a datelor, cum ar fi trunchierea unei variabile
float la conversia de tip ntr-un int.
D. Nu exist nici un pericol.

72. Ce fiier de tip header (*.h) trebuie inclus pentru a putea folosi conversia de tip?
A. iostream.h
B. ctype.h
C. math.h
D. Niciunul

13
73. Care din urmtoarele conversii nu este posibil?
A. int n float
B. float n int
C. char n float
D. Toate de mai sus sunt posibile

74. Care va fi tipul de data rezultat in urma urmtoarei conversii de tip?

(float)a * (int)b / (long)c * (double)d

A. int
B. long
C. float
D. double

75. Care din urmtoarele este o conversie de tip valid?


A. a(char);
B. char:a;
C. (char)a;
D. to(char, a);

76. Care din urmtoarele ar fi o bun utilizare a conversiei de tip?


A. Pentru a permite ca mprirea a doi ntregi sa returneze o valoare zecimala.
B. Pentru a permite ca programul s foloseasc doar variabile de tip ntreg.
C. Pentru a schimba tipul variabilei returnate de o funcie.
D. Pentru a permuta rapid variabilele.

XII. Diverse

77. Care din urmtoarele tipuri nu poate fi verificat intr-un constructor (instruciune)
switch-case ?

A. char
B. int
C. float
D. enum

14
78. In limbajul C, s presupunem c examinm sau citim coninutul unei variabile a
de tip char si gsim valoarea 0x92 (exprimat evident in hexazecimal). Care este
valoarea exprimat in zecimal a acestei variabile ?

A. 110
B. -110
C. 146
D. -146

79. Cnd este apelat o funcie in C si trebuie s-i pasm/transmitem parametrii,


variabilele respective sunt pasate ca valoare sau prin referire (ca referin) ?

A. Referire (ca referin)


B. Valoare

80. Intr-o implementare tipic a limbajului C, tipul "char" este reprezentat pe:

A. 16 bii
B. 8 bii
C. 32 bii
D. 3 octei (bytes)

81. Pentru ce este folosit directiva #define ?

A. declararea unei variabile


B. crearea unei pre-compilri
C. definirea unei constante
D. ca dimensiune a unui vector

82. Care va fi valoarea lui i si j dup execuia urmtoarei secvene de cod C ?

j=4;
for (i=0; i < 5; i++) {
j++;
++j;
}
A. i=4j=9
B. i=5j=4
C. i=5j=9
D. i=5j=10
E. i=5j=14
F. necunoscut

15
83. Pentru ce este utilizat o declaraie de tip union?

A. definirea unei zone de memorare comun


B. declararea unei structuri
C. iniializarea datelor
D. definirea unor date de tip bitfield

84. Cum este implementat in C o instruciune de tip case?

A. cu un goto
B. cu un if
C. nu poate fi implementata
D. cu un switch

85. Pentru ce este utilizat operatorul " << "?

A. deplasare(shift) ctre stnga


B. comparaie, mai mic
C. comparaie, mult mai mare
D. exponeniere

86. Dac variabilele p si i sunt declarate astfel:

long i;
long *p;
p = &i;
Atunci linia de cod : *p += 1; are acelai efect ca linia: *p++;
A. Adevrat
B. Fals

87. Dac variabilele p si s sunt declarate astfel:

char s[ ];
char *p;
p = &s[1];
Atunci linia de cod : s[3] = 'A'; are acelai efect ca linia: *(p+2) = 'A';
A. Adevrat
B. Fals

88. Orice funcie returneaz ceva.

16
A. Adevrat
B. Fals

89. Care este valoarea lui i ?

int i;
i = sizeof("07\0");

A. 1
B. 2
C. 3
D. 4
E. 5
F. 6

90. Nu exist nici o diferen intre operaiile var++ si ++var realizate asupra
variabilei var, presupus declarat anterior.

A. Adevrat
B. Fals

91. Ambele instruciuni continue si break provoac ieirea dintr-o bucl.

A. Adevrat
B. Fals

92. Care este mesajul tiprit dup execuia urmtoarei secvene de cod C:

int i,j;
char s1[20], s2[20];
strcpy(s1, "Hello World");
s1[5] = '\0';
sprintf(s1, "%%.%is\n", strlen(s1));
printf(s1, "Hello World");

A. Hello
B. Hell
C. Hello World
D. He
E. Necunoscut, deoarece folosete un format incorect

17
93. Cu care din urmtoarele o s tiprim pe ecran caracterele \n ?

A. printf("\n");
B. echo "\\n";
C. printf('\n');
D. printf("\\n");

94. Care ar fi valoarea tiprit dup execuia urmtoarei secvene de cod C:

#include<stdio.h>
main()
{
printf("%d", -1<<1 );
}
A. 2
B. -2
C. 1
D. -1

OBSERVATII
1. ntrebrile au un singur rspuns corect.
2. In principiu trebuie sa va ateptai ca la verificare, prin sondaj, s vi se cear o
justificare la oricare din ntrebri. La toate ntrebrile in care apare o secven de cod
precum si la cele unde opiunile sunt valori numerice rspunsul trebuie si justificat (scris
de mn pe foaie, in spaiul adiacent!).
3. Evaluare: 100% -10, 90%-9, 80%-8, 70%-7, 60%-6, 50%-5; fiecare zi ntrziere la
predare duce la scderea unui punct ! Dup o ntrziere de 5 zile (1 sptmn) nu se mai
poate obine dect nota 5, dar tema oricum trebuie predat si acceptat!

18

You might also like