Pagina informaticii

Teste de informatică pentru liceu, articole C#, C/C++, PHP

Test grilă pointeri şi tablouri

Notă: Se acordă 2 puncte din oficiu. Fiecare item se punctează cu 1 punct.

Rândul 1

Alegeţi varianta de răspuns corectă (aceasta este unică):

1. Fie declaraţiile: int a[10],*p;   Care din următoarele expresii nu este echivalentă cu celelalte trei:
a) p = &a[i];  b) p = a+i;  c) p = *(a+i);   d) p = &(*(a+i)); 

2. Ce afişează secvenţa următoare:
int a[100],*p,*q;
p = a+4; q = a+40;
cout<<(q – p);
a) 70  b) 36  c) 35  d) 72  e) secvenţa conţine erori

3. Ce afişează secvenţa:
int a[10],*p,*q=a+10;
for ( p = a; p < q; p++)  *p = (q – p);
cout<<a[1] ;
a) 9  b) 1  c) 10  d) 0  e) secvenţa conţine erori

4. Pentru declaraţia:  int *p;   care din următoarele instrucţiuni afişează corect conţinutul de la adresa indicată de p:
a) cout<<*p;   b) cout<<&p;  c) cout<<p;  d) cout<<&(*p) ;

5. Ce valori afişează secvenţa:
int a=3,b=4,*adr;
adr = &a;  ++ *adr;
cout<<*adr<< “ ”<<a;
a) 3  3     b) 4  4     c) 3  4     d) 4  3     e) secvenţa conţine erori

6. Ce afişează secvenţa:
int a[10],*p, i;
p=a;
for (i=0;i<10;i++) { *p=i;  p++; }
cout<<*(a+3);
a) 3   b) 4  c) 5  d) 55  e) secvenţa conţine erori

7. Fie declaraţiile de variabile:
int a[10], i=1, *p, **q;
Care din următoarele atribuiri este eronată:
a) *q=p;
b) q=&p;
c) i=*(a + i);
d) *q=*a;

8. Ce afişează secvenţa următoare:
int a=10,b=20,*x=a,*y=b;
a ++;
b ++;
cout<<*x<<“  ”<<*y;

a) 11 21  b) 10 20  c) 11  20  d) 10 21  e) secvenţa conţine erori

Notă: Se acordă 2 puncte din oficiu. Fiecare item se punctează cu 1 punct.


Rândul 2

Alegeţi varianta de răspuns corectă (aceasta este unică):

1. Ce valori afişează secvenţa:
int a=3,b=4,*adr;
adr = &a;  ++ *adr;
cout<<*adr<< “ ”<<a;
a) 3  3     b) 4  4     c) 3  4     d) 4  3     e) secvenţa conţine erori

2. Ce afişează secvenţa următoare:
int a=10,b=20,*x=a,*y=b;
a ++;
b ++;
cout<<*x<<“  ”<<*y;

a) 11 21  b) 10 20  c) 11  20  d) 10 21  e) secvenţa conţine erori

3. Ce afişează secvenţa:
int a[10],*p, i;
p=a;
for (i=0;i<10;i++) { *p=i;  p++; }
cout<<*(a+3);
a) 3   b) 4  c) 5  d) 55  e) secvenţa conţine erori

4. Fie declaraţiile de variabile:
int a[10], i=1, *p, **q;
Care din următoarele atribuiri este eronată:
a) *q=p;
b) q=&p;
c) i=*(a + i);
d) *q=&a;

5. Ce afişează secvenţa următoare:
int a[100],*p,*q;
p=a+4; q=a+40;
cout<<(q – p);
a) 36  b) 70  c) 35  d) 72  e) secvenţa conţine erori

6. Ce afişează secvenţa:
int a[10],*p,*q=a+10;
for ( p=a; p<q; p++)  *p=(q – p);
cout<<a[1];
a) 0  b) 9  c) 10  d) 0  e) secvenţa conţine erori

7. Pentru declaraţia:  int *p;   care din următoarele instrucţiuni afişează corect conţinutul de la adresa indicată de p:
a) cout<<*p;   b) cout<<&p;  c) cout<<p;  d) cout<<&(*p) ;

8. Fie declaraţiile: int T[10],*p;   Care din următoarele expresii nu este echivalentă cu celelalte trei:
a) p=&T[i];  b) p=T+i;  c) p=*(T+i);   d) p=&(*(T+i)); 

Despre autor
Author

Dan Pracsiu deţinător www.dponline.ro
Profesor, Liceul Teoretic "Emil Racoviță" Vaslui
Membru în Comisia Naţională a Olimpiadelor de Informatică
Pasiuni: istoria, călătoriile, fotografia, muzica clasică

Scrie un comentariu
Nume:

Comentariu:

15 + 10 =