Cap3 Flashcards
(16 cards)
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
d) Operatorul de atribuire are prioritatea cea mai mare
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
c) Caracterul \n este terminator la un şir de caractere
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
element=3
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;
e. ptr_y = &y;
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
eroare
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. *(ptr + 3) = 10;
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()
fread()
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
e) Operatorii relaţionali au prioritate mai mică decât cei aritmetici
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
d) Un identificator poate să înceapă cu o cifră
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
b) Nu, numele tabloului este un vector constant și nu poate fi modificat
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
c. Tipul variabilei pointate de fptr
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
nici una
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
e) Necunoscută; cod incorect
nu poti adauga pointer cu pointer
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
d ptr=8
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 f == NULL
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];
b) customer[i].custName