0% found this document useful (0 votes)
25 views

Test Oop 03 07 2012

This document contains several multiple choice questions in Romanian about C++ code snippets. The first question asks about errors in lines of code assigning character pointers and accessing elements. The code is syntactically correct and would print the value 2. The second question is about a class hierarchy with a base class A and derived class B calling virtual functions. The expected order of calls would be A() B() B() D() D() B() B() B(). The third question is similar and expects the order of calls to be A() B() D() BD() D() B().

Uploaded by

Lacan Adriana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Test Oop 03 07 2012

This document contains several multiple choice questions in Romanian about C++ code snippets. The first question asks about errors in lines of code assigning character pointers and accessing elements. The code is syntactically correct and would print the value 2. The second question is about a class hierarchy with a base class A and derived class B calling virtual functions. The expected order of calls would be A() B() B() D() D() B() B() B(). The third question is similar and expects the order of calls to be A() B() D() BD() D() B().

Uploaded by

Lacan Adriana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 2

Test, 29.05.

2013
Tipuri
1
2
3
4
char *a = "a1", *b = "b2";
char *c[] = { a, b };
char* &d = *(c + 1);
int x = d[1] - '0';
Intrebare 1 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 2.
(b) Cmpilatrul raprtea!a erare in linia 3.
(c) Cmpilatrul raprtea!a erare in linia ".
(d) Instructiunile sunt crecte si # ia $alarea 2.
%stenire 1
2
3
"
5
&
'
(
9
10
11
12
13
)include *istream+
class , -
public:
,() -std::cut ** .,()./0
$irtual $id print() -std::cut ** .,./ 0
$irtual 1,() -std::cut ** .1,()./0
0/
class D: public , -
public:
D() -std::cut ** .D()./0
$irtual $id print() - std::cut ** .D./0
$irtual 1D() -std::cut ** .1D()./0
0/
1"
15
1&
1'
1(
int main() -
, b223/
b213 4 D()/
b213.print()/
0
Intrebare 2 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 1&.
(b) 5r6ramul este crect sintactic si a7isea!a .B()B()B()D()~D()~B()D~B()~B()..
(c) 5r6ramul este crect sintactic si a7isea!a .B()B()B()D()~D()~B()B~B()~B()..
(d) 5r6ramul este crect sintactic si a7isea!a .B()B()D()~D()B~B()~B()..
%stenire 1
2
3
"
5
&
'
(
9
10
11
12
13
)include *istream+
class , -
public:
,() -std::cut ** .,()./0
$irtual $id print() -std::cut ** .,./ 0
$irtual 1,() -std::cut ** .1,()./0
0/
class D: public , -
public:
D() -std::cut ** .D()./0
$id print() - std::cut ** .D./0
$irtual 1D() -std::cut ** .1D()./0
0/
1"
15
1&
1'
1(
19
20
int main() -
,8 b23 4 -ne9 ,(), ne9 D()0/
b203:+print()/
b213:+print()/
delete b203/
delete b213/
0
Intrebare 3 Despre instructiunile C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 15.
(b) 5r6ramul este crect sintactic si a7isea!a .B()B()D()BB~B()~D()~B()..
(c) 5r6ramul este crect sintactic si a7isea!a .B()B()D()BD~B()~D()~B()..
(d) 5r6ramul este crect sintactic si a7isea!a .B()D()BB~B()~D()..
;rri 1
2
3
"
5
&
'
(
)include *istream+
usin6 namespace std/
class ; -
public:
;() - cut ** .;()./ 0
;(cnst ;< e) -
cut ** .;(cnst ;<)./
0
11
12
13
1"
15
1&
1'
1(
int 7un(int a23, int n) -
i7 (n * 0) t=r9 ;()/
else i7 (n 44 0) t=r9 ne9 ;()/
return 0/
0
int main() -
int $23 4 - 0/
tr> -
9
10
1;() - cut ** .1;()./ 0
0/
19
20
21
22
23
cut ** 7un($, si!e7($)?si!e7(int))/
0 catc= (;< e) -
0 catc=(;8 e) - 0
return 0/
0
Intrebare " Despre pr6ramul C++ de mai sus putem spune ca:
(a) Cmpilatrul raprtea!a erare in linia 12.
(b) Cmpilatrul raprtea!a erare in linia 13.
(c) 5r6ramul este crect sintactic si a7isea!a .;()1;()..
(d) 5r6ramul este crect sintactic si a7isea!a .;()..
Tipuri class Inte6er - ... 0
class @tacA - ... 0
5rblema 5 De7initi clasa Integer ce incapsulea!a un intre6 (int) si clasa Stack cu repre!entare simplu
inlantuita, ast7el incat urmatarea sec$enta C++ sa 7ie crecta sintactic si sa tipareasca 2 si api
1 in urma e#ecutiei, iar spatiul de memrie alcat sa 7ie autmat distrus:
)include *istream+
- ??blc de instructiuni, plasat unde$a in pr6ram
@tacA stacA/
stacA.pus=(Inte6er(1))/
stacA.pus= (Inte6er(2))/
9=ile (BstacA.empt>())
cut ** stacA.pp()/
0
Dia6rama
C%D
5rblema & @crieti un pr6ram care simulea!a masina ce prepara bauturi, ast7el:
(a) Tate bauturile (Beverage) au descriere (description : sir de caractere) si au un pret,
returnat de metda price(), metda pur abstracta in clasa Beverage. %etda print() din aceasta
clasa $a tipari pe iesirea standard descrierea bauturii si pretul ei.
(b) Coffee si Tea sunt dua bauturi cncrete pe care masina le pate elibera. Eceste clase $r
initiali!a descrierea bauturii $ia cnstructrul din clasa de ba!a si $r de7ini preturile bauturilr
cu $alrile 2.5, respecti$ 1.5.
(c) %asina permite adau6area de prtii de 7risca (Cream) la bautura cncreta (beverage).
Fiecare prtie de 7risca are prpriul pret (0.5). Tiparirea unei bauturi la care s:a adau6at prtie
de 7risca inseamna tiparirea bauturii (beverage.print()) si api a prtiei de 7risca adau6ate deci
metda print() din clasa Cream $a 7i suprascrisa ast7el.
(e) Da lansarea in e#ecutie se crea!a un biect BeverageMachine cu aGutrul caruia se $a simula
eliberarea urmatarelr bauturi, prin apelul metdei prepare cu urmatarea semni7icatie a
parametrilr beverageType, creamCount
.Tea., 0 : inseamna ceai 7ara 7risca
.C77ee., 1 : inseamna ca7ea cu prtie de 7risca
.C77ee., 2 : inseamna ca7ea cu dua prtii de 7risca
%etda prepare $a a7isa bautura preparata, inclu!and pretul bauturii. Implementati crect
6estiunea memriei.

You might also like