Documente Academic
Documente Profesional
Documente Cultură
class stiva{ // 1
int stiv[SIZE]; // 2
int virf_stiva; // 3
public: // 4
void init(); // 5
void pune(int ); // 6
int scoate(); // 7
}; // 8
… main() // 9
{ // 10
stiva st1, st2; // 11
st1.pune(44); // 12
st2.pune(122); // 13
st1.virf_stiva=11; // 14
cout << st1.scoate() << “\n”; // 15
cout << st2.scoate() << “\n”; // 16
return 0; // 17
} // 18
Raspunsuri :
a. 7,13
b. 11
c. 14
4. Moştenirea permite :
5. O referinta este:
a. prin faptul că una are un parametru pointer la întreg, iar cealaltă la o listă de întregi
b. a doua functiie e eronată
→ c. amândouă sunt acelaşi lucru, deci nu e nici o diferentiere.
a. nu
b. da
c. depinde.
9. La apelul prin intermediul unui pointer, a unei funcții supraîncărcate, cum se poate face
diferenta între funcții?
class cladire {
int camere;
int etaje;
public:
void nr_camere(int);
int cite_camere();
void nr_etaje(int);
int cite_etaje();
};
class apartament:public cladire {
int dormitoare;
public: void nr_dormitoare(int):
int cite_dormitoare();
};
...
main() {
apartament ap;
ap.nr_dormitoare(2);
ap.nr_camere(5); // ($)
...
a. functii void
b. variabile de tip static
c. functii.
....
class param {
int a;
public: param(int i) {a=i;}
..... };
.....
main() {
param ob=5; // ($)
....
return 0; }
a. incorectă
b. corectă
c. incorectă în cele mai multe contexte.
class clas1{
static int a;
public: int f1();
void f2(){a=0;}
};
int clas1::a;
int clas1::f1() {
if (a) return 0;
else { a=1; return 1; }
}
a. da
b. nu, greşeala e la linia 14, trebuie return 0;
c. nu, greşeala e la liniile 7 şi 9, functia trebuie să fie de tipul exemplu.
a. functii recursive
b. functii scurte
c. functii optimale
26. Daca o clasa de baza este mostenita private, toti membrii publici ai clasei respective devin
in clasa derviata membri:
a. publici
b. privati
c. protejati
27. In lipsa specificatorilor public, protected sau private toti membrii unei union vor fi implicit:
a. publici
b. privati
c. protejati
28. Daca avem o clasa carte si constructorul acesteia de forma carte(char* x, char* y, int y);
atunci un obiect initializat se va declara:
a. carte(“Titlul”,”Autor1”,4)
b. carte c();
c. carte c(“Titlu1”, “Autor1”, 4)
….
char s[10]=”abc”;
void main()
{
char s[10]=”xyz”;
cout << s;
}
a. abc;
b. xyz;
c. eroare
31. Urmatoarea secventa de cod va afisa:
…
void main()
{
int a=10, *p;
p=&a;
cout<<*p;
}
a. 10;
b. o adresa de memeorie;
c. eroare
a. 20;
b. eroare;
c. 10
class B:public A{
void x(){cout << "mesaj 1B";};
protected:
void y(){cout << "mesaj 2B";};
public:
void z(){cout << "mesaj 3B";};
};
int main()
{
B object;
object.z();
object.A::c();
system("pause");
}
a. a=3 b=5;
b. a=3 a=3;
c. b=5 b=5;
a. cl ob[3] = (1,2),(3,4),(5,6)
b. cl ob[3] = {cl(1,2),cl(3,4),cl(5,6)}
c. cl ob[3] ={(1,2),(3,4),(5,6)}
39. Accesul la date private sau metode private dintr-o clasa este:
a. o variabila transmisa dispre zona de cod unde a aparut problema catre o zona de cod care
trebuie sa o rezolve
b. o clasa standard de tratare a situatiei anormale de functionare
c. un obiect sau o valoare de tip standard a carui adresa este trimisa dispre zona de cod unde a
aparut problema catre o zona de cod catre trebuie rezolvata
41. Avand secventa de program:
…
class bbb{
int i;
public:
…
};
….
bbb obiect;
cout << obiect.i;
a. 5
b. 13
c. 12
class cladire{
int camere;
int etaje;
public:
int cite_camere();
};
class apartament:public cladire{
int dormitoare;
public:
void nr_dormitoare(int);
int cite_dormitoare();
};
…
int main()
{
apartament ap1, ap2;
ap1.nr_dormitoare(7);
ap2.nr_dormitoare(6);
ap2.camere; //($)
...
}
class clasa{
public:
int cine1, cine2;
clasa(int,int);
~clasa();
};
clasa::clasa(int valint1, int valint2)
{
cout << "initializare " << valint1;
cout << " ," << valint2 << endl,
cine1=valint1;
cine2=valint2;
}
clasa::~clasa()
{
cout << "distrugere" << cine1 << " " << cine2 << endl;
}
int main()
{
clasa local_obiect1(10,10);
clasa local_obiect2(20,20);
clasa local_obiect3(30,30);
return 0;
}
a. initializare 10 ,10
initializare 20 ,20
initializare 30 ,30
distrugere 30 30
distrugere 20 20
distrugere 10 10
b. initializare 30 ,30
initializare 20 ,20
initializare 10 ,10
distrugere 30 30
distrugere 20 20
distrugere 10 10
c. initializare 10 ,10
initializare 20 ,20
initializare 30 ,30
distrugere 10 10
distrugere 20 20
distrugere 30 30
int main()
{
baza *b;
derivat d;
b = new baza(5);
b->setare_i(75);
d.setare_j(95);
return 0;
}
…
#include <iostream>
#include <vector>
#include <stdafx.h>
#include <algorithm>
using namespace std;
a. 434,356,267,987
b. 267,356,434,987
c. 987,434,356,267
int main() {
baza b;
derivat d;
b.setare_i(25);
d.setare_j(95);
b.setare_i(75);
cout << b.returnare_i();
return 0;
}
a. 25
b. 75
c. 95
char *ptr;
ptr = “hello”;
cout << *ptr;
a. Prima litera
b. Intregul sir
c. Este eroare de sintaxa
…
void suma(int a = 10, int b = 20)
{
cout << a + b;
};
int main()
{
suma(5);
}
a. 30
b. 25
c. eroare
…
inline int comparare(int a, int b)
{
if (a > b)return 1;
if (a < b)return 0;
if (a == b) return -1;
}
void main()
{
int a = 20, b = 10;
cout << comparare(b, a);
}
a. 1;
b. 0;
c. -1;
a. in fiecare clasa
b. clasa a carei obiecte vor fi create dinamic
c. clasa pentru care este definit constructorul de copier
a. 0
b. 1
c. oricati
59. Dupa rularea urmatoarei secvente de cod care este valoarea lui x?
int x=22,y=10;
x=(x-y)?(x+y):(x-y);
a. 32
b. 12
c. eroare;
60. Relatiile dintre clase sunt de tipul:
a. 10
b. 21
c. 11
a. 1 parametru
b. mai multi parametri
c. nici un parametru
63. Una dintre următoarele afirmații este valabilă pentru o functie inline:
64. Procesul prin care un obiect poate dobandi proprietățile unui alt
obiect este:
a. Mostenire
b. Polimorfism
c. Încapsulare