Cap3 Flashcards

(16 cards)

1
Q

2) Una din următoarele propoziţii este adevărată:
a Un identificator nu poate să înceapă cu caracterul de subliniere
b Constanta caracter se delimitează folosind ghilimele
c Orice valoare diferită de zero reprezintă fals
d Operatorul de atribuire are prioritatea cea mai mare
e O variabilă de tip pointer ocupă întotdeauna doi octeţi

A

d) Operatorul de atribuire are prioritatea cea mai mare

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

1) Una din următoarele propoziţii nu este adevărată:

a Funcţia fopen() returnează un pointer de fişier
b O enumerare e un set de constante care specifică toate valorile permise pe care le
poate avea o variabilă de acest tip
c Caracterul \n este terminator la un şir de caractere

d În cazul transmiterii prin adresă, operaţiile asupra variabilelor se fac în zona
original
e se pot scădea doi pointeri de acelaşi tip

A

c) Caracterul \n este terminator la un şir de caractere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3) int a[5] = {1, 2, 3, 4, 5};
int *aPtr;
aPtr = a;
printf(“element=%d\n”, *(aPtr + 2));
Ce se va afisa dupa executia codului de mai sus?
a. element=1 b. element=2 c. element=3
d. element=4 e. eroare

A

element=3

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4) char y = ‘A’;
char *ptr_y;
In exemplul de mai sus, cum vom face astfel incat ptr_y sa pointeze catre y ?
a. ptr_y = (char *)y;
b. *ptr_y = y;
c. (char *) *ptr_y = y;
d. *ptr_y = &y;
e. ptr_y = &y;

A

e. ptr_y = &y;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

5)int x[] = {1, 2, 3, 4, 5};
int *ptr = x;

x++;
printf( “%d “, *( ptr + 2 ) );
printf( “%d\n”, * ptr + 1 );
Ce se va afisa dupa executia secventei:
a 3 2 b 4 2 c 4 3 d 3 1
e eroare

A

eroare

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

6)
int x[] = {1, 2, 3, 4, 5};
int u; int *ptr = x;
????
for( u = 0; u < 5; u++ )
{printf(“%d-“, x[u]);
}
printf( “\n” );

In exemplul de mai sus, ce intructiune trebuie sa inlocuiasca ???? astfel incat sa se
afiseze 1-2-3-10-5- la executia codului?
a. *(ptr + 3) = 10;
b. *ptr[ 3 ] = 10;
c. ptr + 3 = 10;
d. (
ptr)[ 3 ] = 10;
e. *(ptr[3]) = 10;

A

a. *(ptr + 3) = 10;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7) Care din urmatoarele functii va citi un numar specificat de elemente dintr-un
fisier?
a. fileread() b. readfile() c. fread()
d. getline() e. gets()

A

fread()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

8) Care din următoarele propoziţii este adevărată:

a Un identificator nu poate depăşi 32 de caractere
b Constanta şir de caractere nu poate să conţină un singur caracter
c Se pot aduna doi pointeri de acelaşi tip
d Operatorul % se poate aplica asupra unei variabile de tip double
e Operatorii relaţionali au prioritate mai mică decât cei aritmetici

A

e) Operatorii relaţionali au prioritate mai mică decât cei aritmetici

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

9)Care din următoarele propoziţii este falsă:
a Exceptand tipul void, toate tipurile pot fi precedate de identificatori
b Constanta caracter se delimiteaza folosind caracterul apostrof
c In cazul transmiterii prin valoare, funcţia apelată lucrează cu copii ale parametrilor
care se transmit
d Un identificator poate să înceapă cu o cifră
e Se poate incrementa/decrementa un pointer

A

d) Un identificator poate să înceapă cu o cifră

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

10) In cazul in care exista urmatoarea declaratie:

int t[3] poate fi utilizata expresia
“t++”:

a. Da si va indica urmatorul element al tabloului
b. Nu, numele tabloului este un vector constant si nu poate fi modificat
c. Nu, in general unui pointer nu i se poate aplica operatia t++
d. Da, dar rezultatul este imprevizibil
e. Da si va indica primul element al tabloului

A

b) Nu, numele tabloului este un vector constant și nu poate fi modificat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

11) In expresia

float *fptr tipul de date float se refera la:

a. Variabila fptr
b. Adresa variabilei fptr
c. Tipul variabilei pointate de fptr
d. Este identica cu declaratia int *fptr
e. Eroare la compilare, nu exista acest tip de declaratie

A

c. Tipul variabilei pointate de fptr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

12) Ce instructiune trebuie adaugata secventei de mai jos pentru ca in final variabila
pointer ptrj sa
indice spre valoarea 4:
void main(void)
{ int j=3, *ptrj;
*ptrj++; }

a ptrj=j b ptrj=*j c ptrj=4
d ptrj=&j
e.Nici una din ele

A

nici una

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

1) char *ptr;
char myString[] = “abcdefg”;
ptr = myString;
ptr += (ptr + 5);

Ce sir va contine ptr dupa aceasta secventa:
a abcdefgabcdefg5
b acbdefg5
c efg
d cdefg
e Necunoscuta; cod incorect

A

e) Necunoscută; cod incorect

nu poti adauga pointer cu pointer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

2) int* ptr; int y[10];
int i;

for (i=0; i < 10; i++) { y[i] = i;
}
ptr = y;
ptr += 8;
printf(“ptr=%d\n”, *ptr);

Ce se va afisa dupa executie:
a ptr=0
b ptr=7
c ptr=8
d ptr=9
e cod incorect

A

d ptr=8

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

3) f = fopen( fileName, “r” );
if( ???? )
{ fprintf( stderr, “Could not open file!” );
exit( -1 ); }
Cu ce trebuie inlocuita secventa ???? pentru a determina daca fisierul nu a putut fi
deschis?
a f == NULL
b f == EOF
c f == -1
d fclose( f )
e f != 0;

A

a f == NULL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

4) typedef struct customer_record
{ long cust_id;
char custName[50];
} CUSTOMER_REC;
CUSTOMER_REC customer[50];
int i;
/* instructiuni diverse */
for (i = 0; i < 50; i++) { printf(“%s\n”, ????); }
Cu ce trebuie inlocuita secventa ???? pentru a fi afisat numele fiecarui client in
exemplul dat:
a customer_record[i].custName;
b customer[i].custName;
c customer_record.custName[i];

d CUSTOMER_REC[i].custName;
e customer.custName[i];

A

b) customer[i].custName