Sunteți pe pagina 1din 42

Aplicatia liniara

oarecare a lui

, a carei matrice intr-o baza

este

reprezinta din punct de vedere geometric o:

R: z
ROTATIE

Fie n numarul elementelor unui vector ordonat, respectiv numarul nodurilor unui arbore binar
de cautare. Indicati care dintre urmatoarele afirmatii este falsa:
R: Algoritmul de cautare binara intr-un vector ordonat si algoritmul de cautare intr-un
arbore binar de cautare au aceeasi complexitate si aceasta este O(n).

Analizati cu atentie urmatorul fragment de cod sursa. Se doreste introducerea in definitia


sablonului de clasa Vector a unui operator de acces indexat care sa permita modificarea
elementelor vectorului, precizati care este declaratia corecta ?
template<typename T=int, int dim>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}
//alegeti declaratia operatorului de acces indexat
};

R: T &operator[](int i);

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a

constructorilor. Ce se va afisa pe ecran?


class Clasa1
{
public:
Clasa1(){ cout<<"C1::C1()"<<endl;}
};
class Clasa2
{
public:
Clasa2() { cout<<"C2::C2()"<<endl;}
};
class System
{
Clasa2 ob1;
Clasa1 ob2;
public:
System():ob2(), ob1() { cout<<"S::S()"<<endl;}
};
int main (int argc, char* argv[])
{
System a;
return 0;
}

R: C2::C2()
C1::C1()
S::S()

Precizati ecuatia redusa si tipul conicei

este:

R:
, hiperbola

Aplicatia liniara
, a carei matrice intr-o baza oarecare a lui
are valorile proprii egale cu:
R:

este

Inaltimea minima a unui arbore binar de cautare ale carui noduri contin cheile: 6, 9, 12, 14,
16, 17, 21, 35, 39 este:
R: 4

Un vector normal al planului ai carui vectori directori sunt


vectorul:

si

este

R: n=(-4,-1,-5)

Fie un arbore binar de cautare ale carui noduri sunt etichetate cu numere cuprinse intre 1 si
100. Se doreste gasirea numarului 36. Care dintre urmatoarele secvente nu poate sa fie o
secventa de examinare a nodurilor?
R: 93, 27, 34, 62, 29, 39, 35, 36

Vectorii

formeaza:

R: un sistem de generatori ai spatiului

Analizati cu atentie urmatorul fragment de cod sursa. Alegeti observatia corecta ?


class Sir
{
int len;
char *p;
public:
Sir(char * s=NULL)
{
p = NULL;
len =0;
if(s)
{
len = strlen(s);
p = new char[len+1];
strcpy_s(p,len+1, s);
}
}

~Sir(){ if (p) delete p; }


};
int main(int argc, char* argv[])
{
while(true)
{
Sir * ps = new Sir("Programare in C++");
delete ps;
}
return 0;
}

R: Se compileaza si ruleaza pana cand epuizeaza memoria

Vectorul propriu asociat valorii proprii

carei matrice intr-o baza oarecare a lui

corespunzatoare aplicatia liniara

este

,a

este

R:

Vectorii

formeaza:

R: un sistem liniar dependent al spatiului

Analizati cu atentie urmatorul fragment de cod sursa. Se doreste introducerea in definitia


sablonului de clasa Vector a unui operator de acces indexat care sa nu permita modificarea
elementelor vectorului, precizati care este declaratia corecta ?
template<typename T=int, int dim>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}

//alegeti declaratia operatorului de acces indexat


};

R: T operator[](int i);

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce tip de eroare se produce si
ce se va afisa pe ecran?
class Error
{
public:
void Print(){ cout<<"0";}
};
class ImparError : public Error
{
public:
void Print(){ cout<<"1";}
};
class ParError : public Error
{
public:
void Print(){ cout<<"2";}
};
void f(int t)
{
if(t%2)
throw ImparError();
else
throw ParError();
}
int main()
{
try{
f(0);
f(1);
}
catch(Error &e)
{
e.Print();
}
catch(ImparError &e)
{
e.Print();
}
catch(ParError &e)

{
e.Print();
}
return 0;
}

R: 0

Fie urmatoarea specificare de clasa:


class AbstractList{
public:
virtual
virtual
virtual
virtual
virtual

void erase()=0;
void put(AbstractElem* ae)=0;

AbstractElem* get()=0;
int isEmpty()=0;
int isFull()=0;

};
Care declarare este corecta:
R: AbstractList *pa;

O clasa poate sa includa o restrictie asupra proprietatilor supraclasei


Correct : False

Fie subspatiile vectoriale:


U:=subspatiul vectorial generat de vectorii
.
Atunci:
R:

si

Inaltimea maxima pe care o poate avea arborele binar avand nodurile: 1, 4, 5, 10, 16, 17, 21
este:
R: 7

Fie aplicatia liniara

, a carei matrice intr-o baza oarecare a lui

reprezinta din punct de vedere geometric

este

R: o dreapta

In spatiul vectorial

, pornind de la baza:
gasim urmatoarea baza ortonormata

R:

Pentru ce valori ale lui

, conica de ecuatie:

este o elipsa?

R:

O clasa pentru care nu se poate crea nicio instanta concreta se numeste


R: clasa abstracta

Sa se reduca la forma canonica cuadrica

.Ce

si sa se specifice tipul ei.


R:
,un elipsoid

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce se va afisa pe ecran?


template <int T>
struct X
{
enum val {v = X<T-2>::v + X<T-1>::v };
};
template <>
struct X<0>
{
enum val {v = 1 };
};
template <>
struct X<1>
{
enum val {v = 1 };
};
int main()
{
cout<< X<7>::v ;
}

R: 21

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor si destructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
virtual ~Baza(){ cout<<"B::~B()"<<endl;}
};
class Derivat:public Baza
{
public:

Derivat(){ cout<<"D::D()"<<endl;}
~Derivat(){ cout<<"D::~D()"<<endl;}
};
int main (int argc, char* argv[])
{
Baza *s = new Derivat();
delete s;
return 0;
}

R: B::B()
D::D()
D::~D()
B::B()

Nucleul aplicatia liniara

, a carei matrice intr-o baza oarecare a lui

este

este:
R:

Fie algoritmul de sortare prin insertie descris mai jos:


A[0].key := -inf;
for i := 2 to n do begin
j := i;
while A[j].key < A[j-1].key do begin
interschimb(A[j], A[j-1]);
j := j-1
end
end
Se aplica acest algoritm vectorului A in care cheile sunt initial in ordinea: 5, 7, 76, 85, 28, 15,
49.
Ordinea cheilor elementelor vectorului in momentul in care variabila i ia valoarea 6 este:
R: 5, 7, 28, 76, 85, 15, 49

Care vor fi valorile continute intr-o stiva (de la baza catre varf), initial vida, daca se efectueaza
urmatoarele operatii, in aceasta ordine:
- se introduc, in ordine: 5, 7, 23, 15, 12
- se extrag trei elemente
- se introduc, in ordine: 17, 42, 25
- se extrag doua elemente
- se introduc, in ordine: 13, 2, 45
R: 5, 7, 17, 13, 2, 45

Se numeste arbore binar strict un arbore binar cu proprietatea ca fiecare nod, cu exceptia
nodurilor terminale, are exact doi descendenti. Care dintre urmatoarele afirmatii este
adevarata?
R: Orice arbore binar strict are un numar impar de noduri.

Unghiul

dintre planele

si

este egal cu :

R:

In spatiul vectorial

consideram urmatoarea baza


Scris ca o combinatie liniara de de vectori din

baza B, vectorul

are urmatoarea forma:

R:

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este valoarea variabilei
x si ce se va afisa pe ecran?
template <int T>
struct X
{
enum val {v = T * X<T-1>::v };
};
template <>

struct X<0>
{
enum val {v = 1 };
};
int main()
{
int x = X<6>::v;
cout<< x << endl;
}

R: 720

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
Baza(Baza &b){ cout<<"B::B(B&)"<<endl;}
virtual ~Baza(){ cout<<"B::~B()"<<endl;}
};
int main (int argc, char* argv[])
{
Baza a;
Baza& b = a;
Baza c(b);
return 0;
}

R: B::B()
B::B(B&)

Se da sirul: 34, 72, 81, 96, 102, 373, 482, 793. Care din urmatoarele afirmatii este falsa?
R: Nu se poate construi un arbore binar de cautare prin a carui parcurgere in inordine sa se
obtina sirul de numere indicat mai sus.

Indicati care dintre afirmatiile de mai jos este adevarata.


R: Intr-un arbore binar, nivelul de inaltime maxima contine cel putin o frunza.

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor si destructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
virtual ~Baza(){ cout<<"B::~B()"<<endl;}
};
class Derivat:public Baza
{
public:
Derivat(){ cout<<"D::D()"<<endl;}
virtual ~Derivat(){ cout<<"D::~D()"<<endl;}
};
int main (int argc, char* argv[])
{
Baza *s = new Derivat();
return 0;
}

R: B::B()
D::D()

Care dintre urmatoarele submultimi DEFINESTE un subspatiu vectorial:


R:

Care din urmatoarele afirmatii este falsa?


R: Orice arbore binar are un numar impar de noduri.

Orice clasa trebuie sa aiba si atribute publice?


Correct : False

Sa se determine valorile si astfel incat dreapta de

sa fie

perpendiculara pe planul
R:

Ecuatia planului ce trece prin punctul P(1,-1,-1) si este perpendicular pe dreapta

R: 2x-3y+4z-1=0

Indicati complexitatea algoritmului de determinare a lungimii unei liste dublu inlantuite, unde
n este numarul de noduri din lista.
R: O(n)

Care dintre urmatoarele diagrame UML NU se folosesc in mod obisnuit pentru a ilustra cazuri
de utilizare?
R: diagrama de colaborare

Analizati cu atentie urmatorul fragment de cod sursa. Alegeti observatia corecta si precizati ce
se va afisa pe ecran?
class Sir
{
int len;
char *p;
public:
Sir(char * s = NULL)
{
p = NULL;
len = 0;
if(s)
{
len = strlen(s);
p = new char[len+1];

strcpy_s(p, len+1, s);


}
}
~Sir(){ if (p) delete[] p; }
void Print(){ cout << p << endl; }
};
int main(int argc, _TCHAR* argv[])
{
Sir a("Programare in C++");
{
Sir b("Proiectare orientata pe obiecte");
a = b;
}
a.Print();
return 0;
}

R: Nu se poate spune ce se afiseaza, se compileaza dar lipseste operatorul de atribuire(=)

Ecuatia planului ce trece prin punctele A(1,1,0),B(-1,0,2), C(0,1,3) este


R: -3x+4y-z-1=0

Nucleul aplicatia liniara

, a carei matrice intr-o baza oarecare a lui

este

este:
R:

Identificati care dintre elementele de modelare UML urmatoare NU este asociat cu diagramele
cazurilor de utilizare (Use-case Diagrams)?
R: Aggregate relationships (relatii de agregare)

Diagramele de interactiune (in UML) includ:

R: Diagramele de colaborare si diagramele de secventa

Fie A o matrice superior triunghiulara cu 10 linii si 10 coloane. Numarul de elemente ale


vectorului obtinut prin linearizarea coloana a matricii, intr-o stocare optimala a acesteia, este:
R: 55

Fie subspatiile vectoriale:


U:=subspatiul vectorial generat de vectorii

si

.
O baza a subspatiului vectorial

este reprezentata de :

R:

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza metodele virtuale?
class Baza2
{
public:
Baza2(){ Create(); }
virtual void Create()
{
cout<< 'B' ;
}
};
class Derivat2:public Baza2
{
public:
Derivat2(){ Create(); }
virtual void Create()
{
cout<< 'D' ;
}
};
int main (int argc, char* argv[])
{
Baza2 *p = new Derivat2();

return 0;
}

R: BD

Care vor fi valorile continute intr-o coada, initial vida, daca se efectueaza urmatoarele operatii
in
aceast ordine:
- se introduc, in ordine: 5, 7, 23, 15, 12
- se extrag trei elemente
- se introduc, in ordine: 17, 42, 25
- se extrag doua elemente
- se introduc, in ordine: 13, 2, 45
R: 17, 42, 25, 13, 2, 45

Fie A o matrice cu 20 de linii si 10 coloane, stocata intr-un vector obtinut prin linearizarea
linie a acesteia. In cadrul acestui vector, rangul elementului A(13, 7) este:
R: 126

Se numeste arbore binar strict un arbore binar cu proprietatea ca fiecare nod, cu exceptia
nodurilor terminale, are exact 2 descendenti. Numarul total de noduri ale unui arbore binar
strict, cu n noduri terminale, este:
R: 2n - 1

Aplicatia liniara
, a carei matrice intr-o baza oarecare a lui
valorile proprii egale cu:
R:

este

are

Ecuatia planului determinat de dreptele paralele

si

R: x-z-2=0

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor si destructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
~Baza(){ cout<<"B::~B()"<<endl;}
};
class Derivat:public Baza
{
public:
Derivat(){ cout<<"D::D()"<<endl;}
virtual ~Derivat(){ cout<<"D::~D()"<<endl;}
};
int main (int argc, char* argv[])
{
Baza *s = new Derivat();
delete s;
return 0;
}

R: B::B()
D::D()
B::~B()

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
destructorilor. Ce se va afisa pe ecran?
class Clasa1
{
public:
virtual ~Clasa1(){ cout<<"C1::~C1()"<<endl; }
};
class Clasa2
{
public:
virtual ~Clasa2(){ cout<<"C2::~C2()"<<endl;}
};
class System
{

Clasa2 ob1;
Clasa1 ob2;
public:
System():ob1(),ob2(){ }
virtual ~System(){ cout<<"S::~S()"<<endl;}
};
int main (int argc, char* argv[])
{
System a;
return 0;
}

R: S::~S()
C1::~C1()
C2::~C2()

Care dintre urmatoarele submultimi NU defineste un subspatiu vectorial


R:

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza metodele virtuale?
class Baza2
{
public:
Baza2(){ }
virtual void operator++() const { cout<<'1'; }
virtual void operator++(int) const { cout<<'2'; }
};
class Derivat2:public Baza2
{
public:
Derivat2(){ }
void operator++() const { cout<<'3'; }
void operator++(int) const { cout<<'4'; }

};
int main (int argc, char* argv[])
{
Baza2 *p = new Derivat2();
(*p)++;
++(*p);

delete p;
return 0;
}

R: 43

O baza a subspatiului vectorial definit de submultimea:


este formata din vectorul:
R:

Care dintre urmatoarele afirmatii e adevarata?


R: Diagramele de activitate pot fi folosite pentru a arata intregul flux al unui caz de utilizare

Determinati complexitatea algoritmului de identificare a celui mai mare element al unei liste
circulare ce contine n noduri este:
R: O(n)

Analizati cu atentie urmatorul fragment de cod sursa. Se doreste introducerea in definitia


sablonului de clasa Vector a unui operator de insertie care sa permita o insertie inlantuita,
precizati care este declaratia corecta ?
template<typename T=int, int dim=100>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}
T &operator[](int i){ return v[i];}
//alegeti declaratia operatorului de insertie in flux

};

R: friend ostream & operator<<(ostream &, Vector<T,dim> &);

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
destructorilor. Ce se va afisa pe ecran?
class W
{
public:
~W(){ cout<<"W::~W()"<<endl;}
};
class R
{
public:
~R(){ cout<<"R::~R()"<<endl;}
};
class File: public W, public R
{
public:
~File(){ cout<<"File::~File()"<<endl;}
};
int main ()
{
R* f = new File();
delete f;
return 0;
}

R: R::~R()

Fie algoritmul de sortare prin metoda bulelor descris mai jos, unde A este vectorul de sortat,
iar n reprezinta dimensiune sa (componentele vectorului sunt A[1], ...., A[n]):
for i := 1 to n - 1 do
for j := n downto i+1 do
if A[j].key < A[j-1].key
then interschimba(A[j], A[j-1])
Se aplica acest algoritm vectorului A ale carui chei au initial valorile (in ordine, de la A[1] la
A[7]): 13, 15, 84, 93, 36, 23, 59.
Sa se indice valorile cheilor vectorului, in ordine de la A[1] la A[7], in momentul in care

variabila i ia valoarea 2:
R: 13, 15, 23, 84, 93, 36, 59

Sa se precizeze natura cuadricei

R: paraboloid eliptic

Precizati ecuatia redusa si tipul conicei

este:

R:
elipsa

Imaginea aplicatiei liniare

, a carei matrice

intr-o baza oarecare a lui


cu:

este

este un subspatiu vectorial de dimensiunea egala

R: 1

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce catitate de memorie se


aloca pentru clasele care urmeaza? Ce se va afisa pe ecran?

class Empty
{
int null;
public:
Empty(){}
~Empty(){}
};
class EmptyToo : public Empty
{
public:
EmptyToo(){}
virtual ~EmptyToo(){}
};
class EmptyThree : public EmptyToo
{
public:
EmptyThree(){}
~EmptyThree(){}
};
int main()
{
std::cout << sizeof(EmptyThree);
return 0;
}

R: 8

Vectorii
spatiului vectorial real

formeaza un sistem liniar dependent al

pentru:

R:

Sa se reduca la forma canonica cuadrica


xy-yz-xz+2z=2
si sa se specifice tipul ei.
R:

, hiperboloid cu doua panze

Cifrele ce constituie CNP-ul dvs. sunt elementele unui vector cu lungimea data de numarul
cifrelor din CNP. Presupunem ca acest vector s-a obtinut prin linearizarea coloana a unei
matrici superior k-diagonale cu n linii si n coloane. Sa se indice valoarea minima pe care o
poate avea n.
R: 7

Daca vreti sa aratati relatia fizica dintre componentele software si hardware intr-un sistem
livrat, ce diagrama UML folositi?
R: Deployment diagram (diagrama de desfasurare)

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este efectul apelarii
metodei Create(), ce varianta a functiei se va apela si ce se afiseaza pe ecran?
class A
{
protected:
int dim;
public:
A(){ cout<<"A::A()"<<endl;}
virtual ~A(){ cout<<"A::~A()"<<endl;}
virtual void Create(int d = 0x10)
{
dim = d;
cout<<"A::Create("<<dim<<")"<<endl;
}
};
class B: public A
{
public:
B(){ cout<<"B::B()"<<endl;}
virtual ~B(){ cout<<"B::~B()"<<endl;}
virtual void Create(int d = 0x100)
{
dim = d;
cout<<"B::Create("<<dim<<")"<<endl;
}
};
int main()
{
A* p = new B();
p->Create( );
delete p;

return 0;
}

R: B::Create(16)

Analizati cu atentie urmatorul fragment de cod sursa. Se doreste introducerea in definitia


sablonului de clasa Vector a unui operator de acces indexat care sa nu permita modificarea
elementelor vectorului, precizati care este declaratia corecta ?
template<typename T=int, int dim>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}
//alegeti declaratia operatorului de acces indexat
};

R: const T & operator[](int i);

Pentru ce valori ale lui , conica de ecuatie:

este o parabola?

R:

Fie A o matrice cu 10 linii si 20 de coloane. In cadrul vectorului obtinut prin linearizarea


coloana a matricii, elementul A(7, 8) are rangul:
R: 76

Imaginea aplicatiei

, data de matricea

este:

R: un subspatiu vectorial de dimensiune 2 generat de vectorii: v=(4,1,11) si u=(1,-2,-4),

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce model de proiectare


implementeaza clasa urmatoare. Ce se va afisa pe ecran?
class S
{
public:
static S* Create()
{
if(nr == 0)
ref = new S();
return ref;
}
static int PrintNr(){return nr;}
private:
S(){ nr++; }
static S* ref;
static int nr;
};
int S::nr=0;
S* S::ref=0;
int main()
{
S * ps1 = S::Create();
S * ps2 = ps1->Create();
cout<< ps1->PrintNr() ;
cout<< ps2->PrintNr() ;
return 0;
}

R: 1 1
singleton

Numarul arborilor binari care se pot construi cu nodurile distincte 29, 45, 111 este:
R: 30

Care dintre urmatoarele nu este un tip valid de mesaj intr-o diagrama de secventa in UML?
R: mesaj de activare

La stergerea radacinii unui arbore binar de cautare se intreprinde si urmatoarea actiune:

R: subarborele drept al radacinii devine subarbore drept al celui mai mare element al
subarborelui stang al radacinii

Aplicatia liniara
valorile proprii egale cu:

, a carei matrice intr-o baza oarecare a lui

este

are

R:

Vectorul propriu asociat valorii proprii

carei matrice intr-o baza oarecare a lui


R:

corespunzatoare aplicatia liniara

este

,a

este

nu sunt simultan nuli

Metoda optimala de determinare a celui mai mare element al unui arbore binar de cautare,
stiind ca acesta nu se afla in radacina arborelui, presupune ca:
R: plecand din radacina, sa se faca o parcurgere pe legatura dreapta pana la nivel de frunza

Se considera urmatoarele afirmatii referitoare la diagrama de secventa din UML:


i. descrie comportarea in mai multe cazuri de utilizare
ii. descrie comportarea intr-un singur caz de utilizare
iii. descrie comportarea unui singur obiect
iv. descrie comportarea mai multor obiecte
Care dintre urmatoarele combinatii este adevarata?
R: ii si iv

Analizati cu atentie urmatorul fragment de cod sursa. Alegeti observatia corecta si precizati ce
se va afisa pe ecran?
class Sir
{
int len;
char *p;
public:
Sir(char * s = NULL)
{
p = NULL;
len = 0;
if(s)
{
len = strlen(s);
p = new char[len+1];
strcpy_s(p, len+1, s);
}
}
~Sir(){ if (p) delete[] p; }
void Print(){ cout << p << endl; }
};
int main(int argc, _TCHAR* argv[])
{
Sir a("Programare in C++");
{
Sir b(a);
}
a.Print();
return 0;
}

R: Nu se poate spune ce se afiseaza, codul este incomplet, se compileaza dar pentru a


functiona corect necesit a un constructor de copiere

Daca doriti sa planificati activitati de proiectare, cum ar fi dezvoltarea de noi functionalitati,


care dintre urmatoarele elemente UML este cel mai folositor?
R: Use cases (cazuri de utilizare)

Care dintre urmatoarele afirmatii este falsa?


R: Algoritmul de cautare binara a unei valori date, intr-un vector ale carui elemente sunt
ordonate crescator, presupune construirea arborelui binar de cautare asociat vectorului
dat.

Aplicatia liniara
egale cu:

, a carei matrice intr-o baza oarecare a lui

este

are valorile proprii

R:

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce catitate de memorie, in


octeti, se aloca pentru clasa care urmeaza? Ce se va afisa pe ecran?
class Empty
{
typedef long Int;
public:
Empty(){}
~Empty(){}
};
int main()
{
std::cout << sizeof(Empty);
return 0;
}

R: 1

Numarul maxim de comparari care se fac pentru determinarea existentei unei valori date, intrun arbore binar de cautare, este egal cu:
R: inaltimea arborelui

Vectorii
spatiului vectorial real

formeaza un sistem liniar independent al

pentru:

R:

Fie A = (X, U) un arbore binar de cautare, unde X = {5, 7, 10, 21, 27, 39} reprezinta multimea
de noduri, si U multimea de arce. Sa se identifice U stiind ca radacina arborelui are valoarea
10, iar nodurile terminale sunt: 5, 21 si 39.

R: U = {(10, 7), (7, 5), (10, 27), (27, 21), (27, 39)}

Fie urmatoarea specificare de clasa:


class AbstractList{
public:
virtual
virtual
virtual
virtual
virtual

void erase()=0;
void put(AbstractElem* ae){}

AbstractElem* get(){}
int isEmpty(){}
int isFull(){}

};
Care afirmatie este corecta:
R: AbstractList poate fi folosita ca o clasa de baza, in
derivare

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor si destructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
~Baza(){ cout<<"B::~B()"<<endl;}
};
class Derivat:public Baza
{
public:
Derivat(){ cout<<"D::D()"<<endl;}
~Derivat(){ cout<<"D::~D()"<<endl;}
};
int main (int argc, char* argv[])
{
Baza *s = new Derivat();
delete s;
return 0;
}

R: B::B()
D::D()
B::~B()

O subclasa nu poate avea acces la membrii privati ai superclasei


Correct : True

O baza a subspatiului vectorial definit de submultimea:


este formata din vectorul:
R:

Analizati cu atentie urmatorul fragment de cod sursa. Alegeti observatia corecta?


template<typename T=int, int dim=100>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}
void Print(ostream &os)
{
for (int i=0;i<dim;i++)
os << v[i] << ' ';
os<<endl;
}
void Write(ostream &os)
{
for (int i=0;i<dim;i++)
os << v[i] << ' ';
os<<endl;
}
};
template<typename T, int dim>
void operator<<(ostream &os, Vector<T,dim> &v)
{
v. Write(os);
}
int main(int argc, char* argv[])
{
Vector<int, 10> v1, v2;

cout<<v1<<v2;
return 0;
}

R: Nu se compileaza deoarece operatorul << nu returneaza o referinta la ostream

Care dintre urmatoarele elemente de modelare NU este asociat cu diagramele de activitate


(Activity Diagrams) in UML?
R: associations (asocieri)

Complementul ortogonal al subspatiului vectorial :


generat de vectorul:

este subspatiul vectorial

R: u=(1,-1,-1)

Cifrele ce constituie CNP-ul dvs. sunt elementele unui vector cu lungimea data de numarul
cifrelor din CNP. Presupunem ca acest vector s-a obtinut prin linearizarea diagonala a unei
matrici superior k-diagonale cu n linii si n coloane. Sa se indice valoarea maxima pe care o
poate avea n, asa incat sa fie suficiente informatiile furnizate de vector pentru reconstituirea
integrala a matricii.
R: 13

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza metodele virtuale?
class Baza2
{
public:
Baza2(){ }
virtual void operator++() const { cout<<'1'; }
virtual void operator++(int) const { cout<<'2'; }
};
class Derivat2:public Baza2
{

public:
Derivat2(){ }
virtual void operator++() { cout<<'3'; }
virtual void operator++(int) { cout<<'4'; }

};
int main ()
{
Derivat2 d;
Baza2 &b = d;
b++;
++b;

cout<<endl;
return 0;
}

R: 21

Fie f, g, h, i functii binare, iar x, y, z, p, q variabile. Expresia f(i(x, y), g(h(z, p), q)) poate fi
reprezentata de arborele A = (X, U) cu X multimea de noduri, X = {f, g, h, i, x, y, z, p, q}, si U
multimea de arce. Sa se identifice U:
R: {{f, i}, {f, g}, {i, x}, {i, y}, {g, h}, {g, q}, {h, z}, {h, p}}

Fie planul P:3x+2y-4z-3=0 si dreapta de ecuatie


dreptei d fata de planul P:

. Sa se precizeze pozitia

R: d este continuta in planul P

Analizati cu atentie urmatorul fragment de cod sursa. Precizati care este ordinea de apel a
constructorilor. Ce se va afisa pe ecran?
class Baza
{
public:
Baza(){ cout<<"B::B()"<<endl;}
Baza(Baza &b){ cout<<"B::B(B&)"<<endl;}
~Baza(){ cout<<"B::~B()"<<endl;}

};
int main (int argc, char* argv[])
{
Baza a;
Baza b = a;
Baza c(b);
return 0;
}

R: B::B()
B::B(B&)
B::B(B&)

Analizati cu atentie urmatorul fragment de cod sursa. Se doreste introducerea in definitia


sablonului de clasa Vector a unui operator de extractie care sa permita o extractie inlantuita,
precizati care este declaratia corecta ?
template<typename T=int, int dim=100>
class Vector
{
T v[dim];
public:
Vector(){ memset(v,0,sizeof(v)); }
~Vector(){}
T &operator[](int i){ return v[i];}
//alegeti declaratia operatorului de insertie in flux
};

R: template<typename T, int dim>

friend istream & operator>>(istream &, Vector<T,dim>&);

Pentru ce valoare a lui


baza a spatiului vectorial

vectorii:

NU formeaza o

R:

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza constructorii si destructorul?

class Baza2
{
public:
Baza2(){ Create(); }
virtual ~Baza2(){ Build(); }
void Build(){Create(); }
virtual void Create()
{
cout<< "B" ;
}
};
class Derivat2:public Baza2
{
public:
Derivat2(){ Create(); }
~Derivat2(){ Build(); }
virtual void Create()
{
cout<< "D";
}
};
int main (int argc, char* argv[])
{
Baza2 *p = new Derivat2();
delete p;
return 0;
}

R: BDDB

Ecuatia planului ce trece prin punctele A(3,1,0), B(0,7,2),C(4,1,5) este


R: 30x+17y-6z-107=0

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza metodele virtuale?
class Baza2
{
public:
Baza2(){ }
virtual void operator++() const { cout<<'1'; }
virtual void operator++(int) { cout<<'2'; }
};

class Derivat2:public Baza2


{
public:
Derivat2(){ }
void operator++() const { cout<<'3'; }
void operator++(int) const { cout<<'4'; }

};
int main (int argc, char* argv[])
{
Baza2 *p = new Derivat2();
(*p)++;
++(*p);
delete p;
return 0;
}

R: 23

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce tip de eroare se produce si
ce se va afisa pe ecran?
class Error
{
public:
void Print(){ cout<<"0";}
};
class ImparError : public Error
{
public:
void Print(){ cout<<"1";}
};
class ParError : public Error
{
public:
void Print(){ cout<<"2";}
};
void f(int t)
{
if(t%2)
throw ImparError();
else
throw ParError();
}
int main()

{
try{
f(0);
f(1);
}
catch(ImparError &e)
{
e.Print();
}
catch(ParError &e)
{
e.Print();
}
catch(Error &e)
{
e.Print();
}

return 0;
}

R: 2

Care sunt cele 2 categorii principale de diagrame in UML?


R: Structurale (structural) si comportamentale (behavioral)

O baza a subspatiului vectorial definit de submultimea:


vectorul:

este formata din

R:

Se considera vectorul ordonat v cu n = 8 elemente (v[1], ..., v[8]), format din numerele intregi:
10, 33, 49, 67, 85, 92, 107, 120. Pentru identificarea pozitiei unei valori date se foloseste
algoritmul cautarii binare prezentat mai jos:
iinf = 0, isup = n + 1, p = 0
cat timp p = 0 si isup iinf > 1

i = [(iinf + isup)/2]
daca v[i] = K
atunci p = i
altfel
daca v[i] < K
atunci iinf = i
altfel isup = i
daca p = 0
atunci valoare absenta
altfel valoare in pozitia p
Sa se indice de cate ori se aplica pasul cautarii pentru determinarea valorii 85.
R: 3

Care dintre urmatoarele activitati POT aparea simultan (vezi diagrama UML din figura)?

R: a44, a33 si a22

Analizati cu atentie urmatorul fragment de cod sursa. Alegeti observatia corecta ?


class Sir
{
int len;
char *p;
public:
Sir(char * s=NULL)
{
p = NULL;
len =0;
if(s)
{
len = strlen(s);
p = new char[len+1];
strcpy_s(p,len+1, s);
}
}
~Sir(){ if (p) delete[] p; }
};
int main(int argc, char* argv[])

{
while(true)
{
Sir * ps = new Sir("Programare in C++");
delete ps;
}
return 0;
}

R: codul este corect , se compileaza dar ruleaza la infinit

Dreapta ce trece prin punctul A(2,5,9) si este paralela cu dreapta

are ecuatia:

R:

Se numeste arbore binar complet un arbore binar in care fiecare nod, cu exceptia nodurilor
terminale, are exact doi descendenti, si toate nodurile terminale se afla pe acelasi nivel.
Numarul total de noduri ale unui arbore binar complet cu n noduri terminale este:
R: 2n - 1

Numarul arborilor binari de cautare care se pot construi cu nodurile distincte 29, 45, 111 este:
R: 5

Nucleul aplicatia liniara

este:
R:

, a carei matrice intr-o baza oarecare a lui

este

Dandu-se urmatoarea diagrama UML, ce metoda(e) trebuie implementata(e) in clasa Account?

R: xfer(), plus(), minus()

Analizati cu atentie urmatorul fragment de cod sursa. Ce se va afisa pe ecran daca tinem
cont de ordinea in care se apeleaza metodele virtuale?
class Baza2
{
public:
Baza2(){ }
virtual void operator++() const { cout<<'1'; }
virtual void operator++(int) const { cout<<'2'; }
};
class Derivat2:public Baza2
{
public:
Derivat2(){ }
virtual void operator++() const { cout<<'3'; }
virtual void operator++(int) const { cout<<'4'; }
};
int main ()
{
Derivat2 d;
Baza2 &b = d;
b++;
++b;
return 0;

R: 43

In spatiul vectorial

consideram urmatoarea baza

vectori din baza B, vectorul

Scris ca o combinatie liniara de de

are urmatoarea forma:

R:

Fie U si V doua subspatii vectoriale oarecare ale unui spatiu vectorial real
Care din urmatoarele submultimi NU este un subspatiu vectorial:
R:

Pentru ce valori ale lui , conica de ecuatie:

este o elipsa?

R:

Se considera lista:
i. when()
ii. if()
iii. close()
iv. after()
Care dintre aceste elemente sunt evenimente valide intr-o diagrama de stare din UML (alegeti
combinatia corecta)?
R: i si iv

Sa se precizeze natura cuadricei

R: hiperbolid cu doua panze

Analizati cu atentie urmatorul fragment de cod sursa. Precizati ce catitate de memorie, in


octeti, se aloca pentru clasele care urmeaza? Ce se va afisa pe ecran?
class Empty
{
typedef int Int;
public:
Empty(){}
~Empty(){}
};
class EmptyToo : public Empty
{
public:
EmptyToo(){}
virtual ~EmptyToo(){}
};
int main()
{
std::cout << sizeof(EmptyToo);
return 0;
}

R: 4

Elementul maxim al unui arbore binar de cautare este:


R: cel mai din dreapta nod al arborelui

Pentru ce valori ale lui , conica de ecuatie:


R:

este o parabola?

Distanta de la punctul M(-1,2,1) la planul de ecuatie:x+y-2z-1=0 este egala cu:


R:

S-ar putea să vă placă și