Teste de informatică pentru liceu, articole C#, C/C++, PHP
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));
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ă