Sunteți pe pagina 1din 32

Limbajul C

2007
I. Generalități (6 întrebări)

Care este singura funcție pe care toate programele C trebuie să o conțină? A. start()

B. system() C. main()

D. program()

Care este operatorul corect care trebuie utilizat pentru a compara două variabile?

A. : =

B. =

C. equal

D. = =

Ce punctuaţie se utilizează pentru a încheia majoritatea liniilor de cod in C?


A. .

B. ;

C. :
D. '

Care este operatorul corect care trebuie utilizat pentru a asigna o variabila unei
expresii?

A. : =

B. =

C. equal

D. = =

Ce punctuaţie se utilizează pentru a semnala începutul si sfâr şitul unui bloc de cod
sursă in C?

A. ( )

B. -> si <-

C. BEGIN si END D. { }

Care din următoarele este un comentariu corect?

A. /* Bla..Bla */

B. */ Bla..Bla */

C. ** Bla..Bla **

D. { Bla..Bla }
1
II. Operatori, instrucțiuni IF si condiții (11 întrebări)

Care din următorii operatori este cel utilizat pentru a realiza un SI(AND) –logic?

A. &

B. && C. |

D. |&

Care din următorii operatori este cel utilizat pentru a realiza un SAU(OR) –la nivel de bit
(bitwise)?

A. | |

B. &|

C. | D. |&

Care din următorii operatori este cel utilizat pentru a realiza un SAU(OR) logic?

A. | |

B. &|

C. | D. |&

Care din următorii operatori este cel utilizat pentru a realiza un SI(AND) – la nivel de bit
(bitwise)?
A. &

B. && C. |

D. &|

Care din următorii operatori este cel utilizat pentru a realiza complementul fata de 1–la
nivel de bit (bitwise)?

A. !

B. ~

C. ^

D. !!

Care din următorii operatori este cel utilizat pentru a realiza o negare logica?
A. !!

B. ~

C. &

D. !

Evaluați expresia: (unsigned char) 0x02 << 2

A. 0x04

B. 0x06
C. 0x01

D. 0x08

2
Evaluați expresia: (unsigned char) 0x11 >> 2

A. 0x04

B. 0x07

C. 0x22

D. 0x08

Evaluați expresia: !( 0 && !( 0 || 1))

A. Adevărat (True)

B. Fals (False)

C. Expresia nu poate fi evaluată

Care este sintaxa corectă pentru o instrucţiune C de tip IF?

A. if expresie

B. if {expresie}

C. if(expresie)

D. expresie if

Care din următoarele se va evalua ca adevărat (true)?


A. 1

B. 66

C. 1

D. -1

E. Toate de mai sus

III. Bucle (Loops) (4 întrebări)

Care este valoarea finală a lui x după ce codul corespunzător for(int x=0; x<10;
x++) corespunzător unei bucle FOR, a fost executat?

A. 1

B. 0

C. 9

D. 10

Când se va executa blocul de cod care urmeaz ă după un while(x<100) ? A. Când x


este mai mic decât 100.

B. Când x este mai mare decât 100. C. Când x este egal cu 100 .

D. Depinde de prima instrucţiune din blocul care urmează.

Care din următoarele construcţii nu este o buclă in limbajul C?

A. Repeat Until
B. Do while

C. While

D. For

3
Care este numărul minim de cate ori se execută o buclă C de tip DO WHILE? A. 1

B. Infinit C. 0

D. Variabil

IV. Funcţii (4 întrebări)

Care din următoarele porțiuni de cod descrie o funcţie 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"}

Care din următoarele este un apel valid de funcţie (presupunând c ă funcţia funct
există)?

A. funct();

B. funct x, y;

C. funct;

D. int funct();
Care din următoarele construcţii nu este un prototip corect pentru o funcţie?

A. int funct(char x, char y);

B. double funct(char x)

C. void funct();

D. char x();

Care este tipul returnat de funcţia având prototipul: int func(char x, float v,
double t);

A. int B. float C. char

D. double

V. Instrucțiuni Switch, Case (4 întrebări)

Ce urmează după o instrucţiune case?

A. ;

B. :

C. O linie nouă

D. -

Ce este necesar pentru a evita trecerea dintr-un caz case in următorul caz case al unui
switch?

A. end; B. break;
4
C. Stop;

D. ;

Ce cuvânt cheie acoper ă in C posibilităţile pentru care tratarea unui switch nu este
definită?

A. all

B. contingency

C. default

D. other

Care este rezultatul execuţiei următorului cod C? x=0;

switch(x)

case 1: cout<<"One"; case 0: cout<<"Zero";

case 2: cout<<"Hello World";

One

Zero
Hello World

ZeroHello World

VI. Pointeri (8 întrebări)

Care din următoarele returnează adresa de memorie a pointerului a ?

A. a; B. *a; C. &a;

D. address(a);

Care din următoarele expresii returnează valoarea memorată in pointerul a ?

A. a;

B. val(a); C. *a;

D. &a;

Care din următoarele construcţii este o declaraţie corectă de pointer?

A. int x;

B. int &x;

C. ptr x;

D. int *x;
Următoarea linie de cod C: int *func(int a, char b); declară : A. o funcţie
func care returnează un pointer la un întreg

B. un pointer la o funcţie func care returnează un întreg

5
struct {int a;}

struct a_struct (int a;) struct a_struct int a; struct a_struct {int
a;};

Care din următoarele expresii returnează adresa de memorie a variabilei int a; ?

A. *a; B. a; C. &a;

D. address(a);

Care din următoarele cuvinte cheie este folosit in C pentru alocarea de memorie?

A. new

B. malloc

C. create

D. value

Care din următoarele cuvinte cheie este folosit in C pentru dealocarea de memorie?

A. free

B. delete

C. clear

D. remove
Următoarea linie de cod C: int (*func)(int a, char b); declară : A. o funcţie
func care returnează un pointer la un întreg

B. un pointer la o funcţie func care returnează un întreg

VII. Structuri (4 întrebări)


Care din următoarele este o structură definită corect?

A.

B.

C.

D.

Care din următoarele construcții accesează variabila var din structura b ?

A. b->var;

B. b.var;

C. b-var;

D. b>var;

Care din următoarele accesează variabila var din structura *b ?

A. b->var;

B. b.var;
C. b-var;

D. b>var;

6
int toto;

toto;

toto var;

struct toto;

Care din următoarele declară corect o variabilă de tip structură numită toto?

A.

B.

C.

D.

VIII. Vectori/tablouri (arrays) (5 întrebări)

Care din următoarele declară corect un vector?

A. int anarray[10];

B. int anarray;

C. anarray{10};

D. array anarray[10];
Care este indexul ultimului element dintr-un vector cu 29 de elemente? A. 29

B. 28

C. 0

D. Este definit de programator

Care din următoarele este o declaraţie corectă pentru un vector bidimensional?

A. array anarray[20][20];

B. int anarray[20][20];

C. int array[20, 20];

D. char array[20];

Care din următoarele accesează corect al 7-lea element memorat in toto , un


vector/tablou presupus definit anterior, având 100 de elemente?

A. toto [6];

B. toto [7];

C. toto (7);

D. toto;

Care din următoarele ne returnează adresa de memorie a primului element din toto , un
vector presupus definit anterior, având 100 de elem ente?
A. toto [0];

B. toto;

C. &toto;

D. toto [1];

IX. Şiruri (5 întrebări)

Care din următoarele este un sir (numit String) definit ca fiind cu alocare statică?

A. Static String

B. "Static String"

C. 'Static String'

D. char string[100];

7
Cu ce caracter se termină toate şirurile?

A. '.'

B. ' '

C. '/0'

D. '/n'

Care va fi valoarea lui a după asignarea (unsigned char) a= '/r'?

A. 0x00

B. 0x0D

C. 0x13

D. 0x41

Care din următoarele funcţii compară două şiruri?

A. compare();

B. stringcompare();

C. cmp();

D. strcmp();
Care din următoarele funcţii adaugă un sir la sfâr şitul altuia?

A. append();

B. stringadd();

C. strcat();

D. stradd();

X. Conversii de tip (typecasting) (5 întrebări)

Ce fişier de tip header (*.h) trebuie inclus pentru a putea folosi conversia de tip? A.
iostream.h

B. ctype.h C. math.h D. Niciunul

Care din următoarele este o conversie de tip validă?

A. a(char);

B. char:a;

C. (char)a;

D. to(char, a);

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.

8
Care din următoarele ar fi o bună utilizare a conversiei de tip?

A. Pentru a permite ca împărţirea 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 funcţie. D. Pentru a permuta rapid


variabilele.

Care din următoarele conversii nu este posibilă?

A. int în float

B. float în int

C. char în float

D. Toate de mai sus sunt posibile

XI. Diverse (16 întrebări)

Când este apelat ă o funcţie in C si trebuie să-i pasăm (transmitem) parametrii, variabilele
respective sunt pasate ca valoare sau prin referire (ca referinţă) ?

referire(ca referinţă)

valoare

Pentru ce este folosită directiva #define ?


declararea unei variabile

declararea unui întreg

crearea unei pre-compilări

definirea unei constante

dimensiune a unui vector

crearea unei constante la rulare(execuţie)

Nu există nici o diferență intre operaţiile var++ si ++var realizate asupra variabilei var,
presupusă declarată anterior.

A. Adevărat B. Fals

Când este evaluat ă funcţia sizeof()?

la compilarea programului

la rularea(execuţia) programului

Intr-o implementare tipică a limbajului C, cum este reprezentat tipul "char"?

16 biţi

8 biţi

32 biţi

3 octeţi (bytes)
Ambele instrucţiuni, continue si break, provoacă ieşirea dintr-o buclă. A. Adevărat

B. Fals

9
Care va fi valoarea lui i si j după execuţia următoarei secvenţe de cod C ? j=4;

for (i=0; i < 5; i++) { j++;

++j;

i=4j=9

i=5j=4

i=5j=9

i=5j=10

i=5j=14

necunoscut

Pentru ce este utilizată o declaraţie de tip union?

definirea unei zone de memorare comună

declararea unei structuri

iniţializarea datelor

definirea unor date de tip bitfield


Cum este implementată in C o instrucţiune de tip case?

cu goto

cu if

nu poate fi implementata

cu switch

Dacă variabilele p si i sunt declarate astfel:

long i;

long *p;

p = &i;

Atunci linia de cod : *p += 1; are acelaşi efect ca linia: *p++; A. Adevărat

B. Fals

Dacă variabilele p si s sunt declarate astfel:

char s[ ];

char *p;

p = &s[1];

Atunci linia de cod : s[3] = 'A'; are acelaşi efect ca linia: *(p+2) = 'A'; A.
Adevărat
B. Fals

Orice funcţie returnează ceva.

Adevărat

Fals

Care este valoarea lui i după execuția secvenței de cod? int i;

i = sizeof("07\0");

10
1

Care este mesajul tipărit după execuţia următoarei secvenţe 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");

Hello

Hell

Hello World

He

Necunoscut, deoarece foloseşte un format incorect

Operatorul „ <<” realizeaz ă o :


A. concatenare

B. însumare

C. deplasare

D. comparare

11

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