OpisProblemu ====================================================
Dana jest nastepujaca definicja zmiennych:
int kk, &ll=kk, &mm=ll;
KoniecOpisu
Czy po wykonaniu nastepujacych operacji:
kk=2;
ll=5;
mm=7;
1.Zmienna kk bedzie miala wartosc 7 ? TAK
2.Czy spelniony jest ponizszy warunek?
&kk == &mm
TAK
3.Przekazywanie parametru funkcji przez referencje,
polega na tym, ze do funkcji przekazywany jest parametr,
aktualny, a nie tylko jego wartosc.
Dzieki temu zmiany wartosci parametru w funkcji sa widziane,
rowniez na "zewnatrz" tej funkcji: TAK
4.Jako wynik funkcji wolno przekazywac referencje do
zmiennych lokalnych tej funkcji, poniewaz zmienne te
istnieja caly czas podczas dzialania danej funkcji: Nie
5.Czy funkcje przeciazone to funkcje majace wspolna sama nazwe
(przy czym wielkosc liter jest nieistotna), lecz rozniace sie
np. liczba parametrow lub typami parametrow? NIE
6.Czy prawdziwe jest stwierdzenie, ze w jezyku C++ mozna przeciazac
funkcje, a nie mozna przeciazac operatorow arytmetycznych
poza obrebem (definicji) danej klasy? NIE
7.Czy poprawna jest nastepujaca definicja przeciazenia
operatora przesuniecia bitowego dla strumienia wyjsciowego.
std::ostream &operator << ( std::ostream &strumien1, std::ostream &strumien2 )
{
return strumien2;
}
TAK.
8.Czy hermetyzacja komponentow klasy (pol lub metod) ma na
celu zabezpieczenie ich przed modyfikacja lub wywolaniem przez
inne metody tej samej klasy? NIE
9.Czy metody prywatne (private) i chronione (protected) klasy
dostepne sa dla funkcji zaprzyjaznionych z ta klasa? TAK
10.Czy dozwolona jest modyfikacja pol prywatnych danej
klasy w funkcjach zaprzyjaznionych z ta klasa? TAK
11.Jezeli dla klasy "Telefon" nie zostal zdefiniowany zaden
konstruktor, to czy definiujac zmienne w programie glownym
tak jak jest to przedstawione ponizej:
Telefon obTel;
zostanie wywolany konstruktor kopiujacy? NIE
12.Czy jedna z operacji powodujacej niejawne wywolanie
konstruktora danej klasy jest dynamiczna alokacja
obiektu tejze klasy za pomoca operatora "new" ? TAK
13.Czy w przypadku obiektow definiowanych lokalnie (np. w metodzie
lub funkcji) destruktory zawsze wywolywane sa niejawnie gdy
sterowanie osiagnie koniec zakresu waznosci definicji danego
obiektu? NIE
Przyklad definiowania lokalnego obiektu "Suma":
void Dodaj(LZespolona Z1, LZespolona Z2)
{
LZespolona Suma;
...
}
14. Destruktor powinien miec taka sama,
liste parametrow w wywolaniu jak konstruktor. Nie
class LZespolona {
private:
double _re, _im;
public:
LZespolona() { _re = _im = 0;}
};
15.Czy klasa ta zawiera konstruktor kopiujacy (jawny lub niejawny, o ile
taki moze istniec w tym przypadku).TAK
16.Czy konstruktor jest metoda skladowa klasy, ktora
zawsze inicjalizuje pola tej klasy? TAK ???????
17.Czy konstruktor ma taka sama nazwe jak nazwa klasy i
moze byc wywolany jawnie jak kazda metoda. TAK
18.Czy konstruktor moze byc zadeklarowany w ponizszy sposob:
class Klasa {
Klasa(Klasa);
public:
}; NIE ???
19.Czy przciazanie metod klasy jest mozliwe tylko poza sekcja chroniona (protected) danej klasy. NIE
20.Czy przciazanie metod klasy jest zabronione w przypadku destruktora. TAK
21.Czy przciazanie metod klasy wykorzystujace argumenty domyslne moze prowadzic
do niejednoznacznosci, tzn. z zapisu wywolania metody
bez znajomosci wartosci argumentow domyslnych nie
bedzie mozna stwierdzic, ktora metoda bedzie wywolana? NIE??
OpisProblemu ====================================================
Niech bedzie dana definicja:
int numer::funkcja(int i)
{
...
}
22.Czy prawda jest, ze moze to byc definicja metody klasy lub struktury
lub tez unii o nazwie "numer"? NIE.
23.Czy prawda jest, ze jezeli jest to metoda klasy "numer", to jej definicja
jest umieszczona na pewno poza blokiem definicji tej klasy? TAK ???
OpisProblemu ====================================================
Mamy zdefiniowana klase "Owoc" i jej klase pochodna
"Jablko":
class Owoc {
int _Waga;
public:
Owoc(int a) { _Waga = a; };
};
class Jablko : public Owoc {
public:
int Oblicz();
};
Czy prawda jest, ze ...
Jablko jab(2);
KoniecOpisu
24. Obiekt "jab" nie bedzie mogl byc utworzony ze wzgledu na brak
konstruktora parametrycznego w klasie "Jablko"? TAK
25. zapis jest poprawny i dziedziczone pole "_Waga"
zostanie zainicjalizowane wartoscia 2? NIE
26. zapis definicji obiektu "jab" jest poprawny, jednak pole
o nazwie "_Waga" klasy "Owoc" nie bedzie dostepne z poziomu
metody klasy pochodnej ("Jablko")? NIE
OpisProblemu ====================================================
Mamy zdefiniowana klase "PojazdKolowy" oraz zadefiniowany jest obiekt 'PojK':
class PojazdKolowy {
public:
int _IloscKol;
};
const PojazdKolowy PojK;
Czy prawda jest, ze ...
... powyzsza definicja obiektu 'PojK' bylaby poprawna, gdyby
w klasie zostal zdefiniowany konstruktor bezparametryczny,
np.
class PojazdKolowy {
public:
int _IloscKol;
PojazdKolowy() {}
};
KoniecOpisu
OpisPytania
... obiekt nie jest inicjalizowany, tak wiec nie moze byc
zadefiniowany jako staly.
KoniecOpisu
OpisPytania
... powyzsza definicja obiektu 'PojK' bylaby poprawna, gdyby
w klasie zostal zdefiniowany konstruktor postaci:
class PojazdKolowy {
public:
int _IloscKol;
PojazdKolowy(int Wartosc) { _IloscKol = Wartosc; }
};
KoniecOpisu
OpisPytania
... powyzsza definicja obiektu 'PojK' bylaby poprawna, gdyby
pole '_IloscKol' zostalo zdefiniowane jako statyczne,
tzn.:
class PojazdKolowy {
public:
static int _IloscKol;
};
int PojazdKolowy::_IloscKol = 0;
KoniecOpisu
OpisPytania
... powyzsza definicja bylaby poprawna jesli odpowiednia instrukcja
zainicjalizuje obiekt po jego utworzeniu zgodnie ze schematem, ktory
jest stosowany, gdy nie jest uzywany modyfikator "const", tzn.:
JakasKlasa Obiekt;
jakas_instrukcja_inicjalizujaca_Obiekt;
gdzie za napis "jakas_instrukcja_inicjalizujaca_Obiekt" trzeba
podstawic odpowiednia instrukcje lub ciag instrukcji.
KoniecOpisu
OpisProblemu ====================================================
Mamy zdefiniowana klase "Ksiazka" oraz obiekt 'Ks':
class Ksiazka {
public:
int _IloscStron;
static int _IloscKsiazek;
Ksiazka() {}
};
int Ksiazka::_IloscKsiazek = 0;
int main()
{
const Ksiazka Ks;
Ks._IloscStron = 100;
Ks._IloscKsiazek = 4;
}
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... ze wzgledu na to, iz obiekt 'Ks' jest zdefiniowany jako staly,
to obie operacje przypisania w funkcji 'main' sa niepoprawne.
KoniecOpisu
OpisPytania
... obie operacje przypisania w funkcji "main" mozna zrealizowac
pod warunkiem wykonania rzutowania za pomoca operatora static_cast.
KoniecOpisu
OpisPytania
... operacja zmiany wartosci pola statycznego moze byc wykonana
zawsze niezaleznie od tego czy obiekt jest staly czy nie.
Jedynym warunkiem jest dostepnosc tego pola.
KoniecOpisu
OpisProblemu ====================================================
Mamy zdefiniowana klase "Telefon":
class Telefon {
public:
int _Numer;
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... w klasie tej istnieje konstruktor bezparametryczny.
KoniecOpisu
OpisProblemu ====================================================
Mamy zdefiniowana klase "Telefon":
class Telefon {
public:
int _Numer;
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... mozna utworzyc obiekt tej klasy wywolujac konstruktor
bezparametryczny.
KoniecOpisu
OpisProblemu ====================================================
Mamy zdefiniowana klase "FiguraGeom":
class FiguraGeom {
public:
double _Obwod;
FiguraGeom(): _Obwod() {}
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... w tej klasie zdefiniowanie konstruktora bezparametrycznego powoduje
uniewaznienie automatycznie generowanego konstruktora kopiujacego.
KoniecOpisu
OpisPytania
... w tej klasie bezposrednio po utworzeniu obiektu jego
pole "_Obwod" bedzie ono mialo zawsze wartosc 0, o ile zostanie
uzyty konstruktor bezparametryczny. W innym przypadku juz tak
byc nie musi.
KoniecOpisu
OpisPytania
... w tej klasie bezposrednio po utworzeniu obiektu jego pole "_Obwod"
bedzie mialo wartosc 0 po kazdorazowym utworzeniu obiektu z wykorzystaniem
konstruktora bezparametrycznego.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy:
struct LiczbaZespolona {
float _Re, _Im;
public:
float Re() const { return _Re; }
float& Re() { return _Re; }
float Im() const { return _Im; }
float& Im() { return _Im; }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... metody "Re()" oraz "Im()" nie sa przeciazone, gdyz zwracaja rozny typ
wartosci.
KoniecOpisu
OpisPytania
... niezaleznie od sposobu utworznia obiektu tej klasy nie mozna
zmienic jego zawartosci.
KoniecOpisu
OpisPytania
... dla kodu przedstawionego ponizej zostanie wywolana metoda
"float LiczbaZespolona::Re() const".
float Odczyt(LiczbaZespolona& Z)
{
cout << Z.Re();
}
KoniecOpisu
OpisPytania
... w funkcji ponizej tworzy sie obiekt staly, ktory jest inicjalizowany
wartoscia parametru wywolania tej funkcji.
float Odczyt(const LiczbaZespolona Z)
{
cout << Z.Re();
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy oraz zapowiedz definicji funkcji:
class KlasaLiczby {
float _Liczba;
public:
float PobierzLiczbe() const { return _Liczba; }
float& PobierzLiczbe() { return _Liczba; }
};
void Dzialaj(const KlasaLiczby Lx);
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... dla wywolania:
int main()
{
KlasaLiczby Li;
Dzialaj(Li);
}
Zawartosc obiektu "Li" na pewno nie ulegnie zmianie, gdyz w zapowiedzi
definicji funkcji znajduje sie modyfikator "const". Bez niego nie ma
juz takiej gwarancji
KoniecOpisu
OpisPytania
... dla wywolania:
int main()
{
KlasaLiczby Li;
Dzialaj(Li);
}
Zawartosc obiektu "Li" na pewno nie ulegnie zmianie, gdyz obiek przkazywany
jest do funkcji poprzez wartosc.
KoniecOpisu
OpisPytania
... dla wywolania:
int main()
{
KlasaLiczby Li;
Dzialaj(Li);
}
W trakcie wywolania funkcji obiekt "Li" jest kopiowany.
KoniecOpisu
OpisPytania
... dla wywolania:
int main()
{
KlasaLiczby Li;
Dzialaj(Li);
}
Wartosc obiektu "Li" nie ulega zmianie. Ponadto tworzona jest jego kopia,
ktora moze byc modyfikowana wewnatrz funkcji "Dzialaj" bez jakichkololwiek
rzutowan.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy oraz zapowiedz definicji funkcji:
class KlasaLiczby {
float _Liczba;
public:
float PobierzLiczbe() const { return _Liczba; }
float& PobierzLiczbe() { return _Liczba; }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... rownowazna definicja tej klasy jest:
struct KlasaLiczby {
float _Liczba;
private:
float PobierzLiczbe() const { return _Liczba; }
float& PobierzLiczbe() { return _Liczba; }
};
KoniecOpisu
OpisPytania
... rownowazna definicja tej klasy jest:
struct KlasaLiczby {
float PobierzLiczbe() const { return _Liczba; }
private:
float _Liczba;
public:
float& PobierzLiczbe() { return _Liczba; }
};
KoniecOpisu
OpisPytania
... rownowazna definicja tej klasy jest:
class KlasaLiczby {
public:
float PobierzLiczbe() const { return _Liczba; }
float& PobierzLiczbe() { return _Liczba; }
private:
float _Liczba;
};
KoniecOpisu
OpisPytania
... rownowazna definicja tej klasy jest:
struct KlasaLiczby {
float PobierzLiczbe() const { return _Liczba; }
float& PobierzLiczbe() { return _Liczba; }
float _Liczba;
};
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy
class Wektor {
protected:
float _x, _y;
public:
Wektor(float x, float y) { _x = x; _y = y; }
Wektor Dodaj(const Wektor& W) const;
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... jedna z roznic miedzy sekcja "private", a "protected" polega na tym,
ze w przypadku wystapienia w definicji klasy Wektor sekcji "private"
zamiast "protected" ponizsza definicja metody nie zawsze bylaby poprawna:
Wektor Wektor::Dodaj(const Wektor& W) const
{
return Wektor(_x + W._x, _y + W._y);
}
KoniecOpisu
OpisPytania
... rownowazna definicja klasy "Wektor" jest:
class Wektor {
float _x, _y;
public:
Wektor(float x, float y) { _x = x; _y = y; }
Wektor Dodaj(const Wektor& W) const;
};
KoniecOpisu
OpisPytania
... w definicji metody "Dodaj", przedstawionej ponizej, mozna
odwolywac sie do pol chronionych innych obiektow tej samej klasy.
Jest to prawdziwe dla dowolnej metody, ktora zdefiniowana bylaby
dla klasy "Wektor".
Wektor Wektor::Dodaj(const Wektor& W) const
{
return Wektor(_x + W._x, _y + W._y);
}
KoniecOpisu
OpisPytania
... sekcja "protected" nie ma zadnego znaczenia, gdy w metodach
odwolujemy sie do pol, ktore wraz z metodami sa elementami definicji
tej samej klasy. Przykladem moze byc odwolanie sie do pol prywatnych
"_x" i "_y" w konstruktorze klasy "Wektor".
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy oraz definicja pola statycznego:
class KlasaLiczby {
protected:
static int _IloscLiczb;
public:
int _Liczba;
KlasaLiczby(): _Liczba() { ++_IloscLiczb; }
~KlasaLiczby() { --_IloscLiczb; }
};
int KlasaLiczby::_IloscLiczb;
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... bezposrednio po utworzeniu obiektu klasy "KlasaLiczby" pola "_IloscLiczb"
i "_Liczba" beda mialy zawsze rozne wartosci.
KoniecOpisu
OpisPytania
... dodanie nowego pola statycznego moze prowadzic do zwiekszenia
rozmiaru obiektu.
KoniecOpisu
OpisPytania
... w konstruktorze nie jest inicjalizowane pole "_Liczba". Moze
wiec sie zdarzyc, ze jego wartosc bezposrednio po utworzeniu obiektu
bedzie dowolna. Aczkolwiek zazwyczaj bedzie to wartosc 0.
KoniecOpisu
OpisPytania
... w tym przypadku pole statyczne "_IloscLiczb" jest niejawnie
inicjalizowane ta sama wartoscia jak pole "_Liczba".
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klas i zapowiedz definicji funkcji:
class FiguraGeometryczna {
protected:
float _WsplrzednaSrodka_x, _WsplrzednaSrodka_y;
};
class Kwadrat: public FiguraGeometryczna {
public:
float _RozmiarBoku;
};
void Dzialaj( FiguraGeometryczna Fig );
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... wywolanie funkcji przedstawione ponizej
int main()
{
Kwadrat Kw;
Dzialaj(Kw);
}
moze byc nieprawidlowe, choc nie zawsze to zasygnalizuje kompilator.
Powodem sa rozne typy obiektu i parametru formalnego.
KoniecOpisu
OpisPytania
... wywolanie funkcji przedstawione ponizej
int main()
{
Kwadrat Kw;
Dzialaj(Kw);
}
niezaleznie od definicji funkcji "Dzialaj" nigdy nie spowoduje ona
zadnych zmian w obiekcie "Kw".
KoniecOpisu
OpisPytania
... wywolanie funkcji przedstawione ponizej
int main()
{
Kwadrat Kw;
Dzialaj(Kw);
}
do funkcji "Dzialaj" przekazywana jest kopia podobiektu
klasy "FiguraGeomtryczna", ktory zawarty jest w obiekcie "Kw".
KoniecOpisu
OpisPytania
... wywolanie funkcji przedstawione ponizej
int main()
{
Kwadrat Kw;
Dzialaj(Kw);
}
w zaleznosci od definicji funkcji "Dzialaj" mozna odwolac sie
do obiektu "Kw" wewnatrz tej funkcji, choc nie bedzie go mozna zmienic.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy oraz definicja przeciazenia operatora podstawienia:
class Liczba {
public:
Liczba() { _wLiczba = new float; }
~Liczba() { delete _wLiczba; }
Liczba& operator = (const Liczba& L);
private:
float *_wLiczba;
};
Liczba& Liczba::operator = (const Liczba& L)
{
*_wLiczba = *L._wLiczba;
return *this;
}
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... dla kodu przedstawionego ponizej
int main()
{
Liczba L1;
Liczba L2 = L1;
}
operacja przypisania wartosci L1 do L2 zostanie wykonana poprawnie
dzieki przeciazeniu operatora "=". Niemniej uzycie niektorych
kompilatorow, moze powodowac bledne wykonanie programu.
KoniecOpisu
OpisPytania
... dla kodu przedstawionego ponizej
int main()
{
Liczba *wL = new Liczba;
Liczba L1 = *wL;
}
operacja tworzenia obiektu L1 nie wykorzystuje konstruktora
bezparametrycznego, ani tez przeciazenia operatora "=".
KoniecOpisu
OpisPytania
... dla kodu przedstawionego ponizej
int main()
{
Liczba *wL = new Liczba;
Liczba L1 = *wL;
}
przedstawiona konstrukcja jest prawidlowa i destrukcja obu obiektow
przebiegnie bez zadnych bledow, tzn. destruktory obu obiektow
wykonaja sie prawidlowo.
Byloby jednak lepiej, aby jawnie usuwac obiekt *wL poprzez uzycie
operatora "delete", tzn.
delete wL;
KoniecOpisu
OpisPytania
... konstrukcja klasy nie zapewnia poprawnego dzialania
programu w przypadku poslugiwania sie funkcjami z parametrami
klasy "Liczba" przekazywanymi przez wartosc, np.
void Dzialaj( Liczba L )
{
...
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class Klasa {
int _Kod;
public:
const Klasa& Metoda1() const { return *this; }
Klasa& Metoda2() { return *this; }
const Klasa& Metoda3() { return *this; }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... ze ponizszy ciag wywolan
int main()
{
Klasa Ob;
Ob.Metoda1().Metoda2().Metoda3();
}
jest niepoprawny, gdyz metode mozna wywolywac tylko dla
obiektu, a nie wyniku zwracanego przez inna metode.
KoniecOpisu
OpisPytania
... ze ponizszy ciag wywolan
int main()
{
Klasa Ob1;
const Klasa Ob2;
Ob2 = Ob1.Metoda2();
}
doprowadzi do sytuacji, ze w zmiennej "Ob2" znajdzie sie obiekt,
ktory bedzie modyfikowalny.
KoniecOpisu
OpisPytania
... ze dla ponizszego ciagu wywolan
int main()
{
Klasa Ob;
const Klasa &Ref_Ob = Ob;
Ref_Ob.Metoda1();
Ob.Metoda2();
}
zarowno "Metoda1" jak tez "Metoda2" zwraca referencje do tego samego
obiektu.
KoniecOpisu
OpisPytania
... ze dla ponizszego ciagu wywolan
int main()
{
Klasa Ob1;
Klasa Ob2;
Ob1.Metoda2() = Ob2.Metoda1();
}
po wykonaniu tej operacji zawartosc obu obiektow bedzie jednakowa.
KoniecOpisu
OpisPytania
... ze dla ponizszego ciagu wywolan
int main()
{
Klasa Ob1;
Klasa Ob2;
Ob2.Metoda1() = Ob1.Metoda2();
}
po wykonaniu tej operacji zawartosc obu obiektow bedzie jednakowa.
KoniecOpisu
OpisPytania
... ze ponizszy ciag wywolan
int main()
{
Klasa Ob;
Ob.Metoda1().Metoda2().Metoda3();
}
jest niepoprawny, gdyz metode modyfikujaca obiekt
mozna wywolywac tylko dla obiektu modyfikowalnego.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
int main()
{
try {
throw std::cout;
}
catch (std::ostream& OStrm) {
cout << "Obsluga: 1" << endl;
}
catch (std::istream& OStrm) {
cout << "Obsluga: 2" << endl;
}
}
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... zapis jest niepoprawny, gdyz nie mozna zglaszac jako wyjatkow
obiektow z biblioteki standardowej.
KoniecOpisu
OpisPytania
... zapis jest niepoprawny, gdyz strumieni nie mozna przekazywac
do metod poprzez wartosc.
KoniecOpisu
OpisPytania
... zapis jest niepoprawny, gdyz jako wyjatku nie mozna zglaszac
w jakiejkolwiek formie strumienia standardowego, tzn. bezposrednio
jako obiekt lub posrednio poprzez zmienne referencjna lub wskaznik.
KoniecOpisu
OpisPytania
... mozliwa jest modyfikacja zgloszenia obiektu std::cout bez
wprowadzania dodatkowych definicji klas, tak aby ktoras z
istniejacych sekcji "catch" przechwycila go.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class FiguraGeometryczna {
public:
double _Pole;
};
class Kwadrat: public FiguraGeometryczna {
public:
double _DlugoscBoku;
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie
"w gore".
int main()
{
Kwadrat Kw;
FiguraGeometryczna *wFig = &Kw;
}
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie
"w dol".
int main()
{
Kwadrat Kw;
FiguraGeometryczna *wFig = &Kw;
}
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie
"w dol".
int main()
{
FiguraGeometryczna Fig;
Kwadrat *wKw = &Fig;
}
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie wystepuje niejawne rzutowanie
"w gore".
int main()
{
FiguraGeometryczna Fig;
Kwadrat *wKw = &Fig;
}
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie poprzez zmienna "Fig" mamy dostep
do podobiektu znawartego w obiekcie "Kw".
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
}
KoniecOpisu
OpisPytania
... w przedstawionym ponizej zapisie poprzez zmienna "Fig" mamy dostep
do podobiektu zawartego w obiekcie "Kw". Pozwala to modyfikowac zawartosc
obiektu "Kw" poprzez zmiany w obiekcie "Fig".
int main()
{
Kwadrat Kw;
FiguraGeometryczna Fig = Kw;
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class FiguraGeometryczna {
public:
double _Pole;
double ObliczPole() { return _Pole; }
};
class Kwadrat: public FiguraGeometryczna {
public:
double _DlugoscBoku;
double ObliczPole(double Skala)
{ return pow(Skala*_DlugoscBoku,2); }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy i nie ma sposobu, aby
nie modyfikujac definicji klas i dysponujac obiektem "Kw"
odwolac sie do metody "ObliczPole()" z klasy "FiguraGeometryczna".
int main()
{
Kwadrat Kw;
Kw.ObliczPole();
}
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy. Dysponujac referencja "Fig" do
obiektu klasy "FiguraGeometryczna" i nie dokonujac zadnych
rzutowan mozna odwolac sie tylko do metody "ObliczPole()",
a nie "ObliczPole(double)".
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
Fig.ObliczPole(1.0);
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class FiguraGeometryczna {
double _Pole;
public:
double ObliczPole() { return _Pole; }
};
class Kwadrat: private FiguraGeometryczna {
double _DlugoscBoku;
public:
double ObliczPole(double Skala)
{ return pow(Skala*_DlugoscBoku,2); }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy i nie ma sposobu, aby
dysponujac obiektem "Kw" odwolac sie do metody "ObliczPole()"
z klasy "FiguraGeometryczna".
int main()
{
Kwadrat Kw;
Kw.ObliczPole();
}
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy, chociaz rzutowanie niejawne
na referencje do podobiektu klasy "FiguraGeometryczna" jest poprawne.
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
Fig.ObliczPole();
}
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy. Jednym z powodow jest to, ze
ze wzgledu na dziedziczenie, gdy dysponujemy referencja "Fig"
mozemy odwolac sie tylko do metody "ObliczPole(double)".
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
Fig.ObliczPole();
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class FiguraGeometryczna {
private:
double _Pole;
double ObliczPole() { return _Pole; }
public:
};
class Kwadrat: public FiguraGeometryczna {
private:
double _DlugoscBoku;
public:
double ObliczPole(double Skala)
{ return pow(Skala*_DlugoscBoku,2); }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy i nie ma sposobu, aby
dysponujac obiektem klasy "Kwadrat" odwolac sie do
metody "ObliczPole()" z klasy "FiguraGeometryczna".
int main()
{
Kwadrat Kw;
Kw.ObliczPole();
}
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy. Dysponujac referencja "Fig" do
obiektu klasy "FiguraGeometryczna" i dokonujac rzutowan mozna
odwolac sie tylko do metody "ObliczPole(double)", a nie "ObliczPole()".
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
Fig.ObliczPole();
}
KoniecOpisu
OpisPytania
... ponizszy zapis jest nieprawidlowy. Dysponujac referencja do
obiektu klasy "FiguraGeometryczna" i nie dokonujac zadnych
rzutowan mozna odwolac sie tylko do metody "ObliczPole()",
a nie "ObliczPole(double)".
int main()
{
Kwadrat Kw;
FiguraGeometryczna &Fig = Kw;
Fig.ObliczPole(1.0);
}
KoniecOpisu
OpisProblemu ====================================================
Niech beda dane prototypy dwoch funkcji:
void Wylicz( float Param1, double Param2 );
void Wylicz( double Param1, float Param2 );
Zakladajac, ze w programie znajduja sie poprawne ich definicje
i ze nie ma innego przeciazenia funcji "Wylicz",
czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... w funkcji main przedstawionej ponizej:
int main()
{
Wylicz(1.2, 'c');
}
na ogol zostanie wywolana druga z przedstawionych funkcji,
tzn. Wylicz( double Param1, float Param2 );
Zalezy to jednak od kompilatora i od domyslnej interpretacji
uzytej w liscie parametrow stalej liczbowej.
KoniecOpisu
OpisPytania
... w funkcji main przedstawionej ponizej:
enum PoryRoku { Wiosna, Lato, Jesien, Zima };
int main()
{
Wylicz( Wiosna , 1.2);
}
zostanie wywolana pierwsza z przedstawionych funkcji,
tzn. Wylicz( float Param1, double Param2 );
O wywolaniu tej funkcji decyduje uzyta stala liczbowa.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
class FiguraGeometryczna {
double _PolePowierzchni;
public:
double& UzyjPole() { return _PolePowierzchni; }
};
class Kwadrat: public FiguraGeometryczna {
double _DlugoscBoku;
public:
Kwadrat& ZmienDlugosc(double Dl) { _DlugoscBoku = Dl; return *this; }
FiguraGeometryczna& UzyjFigure() { return *this; }
};
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... przedstawiony ponizej kod programu jest poprawny i nigdy
nie spowoduje bledu wykonania programu (np. niedozwolony dostep
do pamieci).
int main()
{
Kwadrat Kw;
FiguraGeometryczna Fig;
Kw.ZmienDlugosc(10).UzyjFigure().UzyjPole() = 5;
}
KoniecOpisu
OpisPytania
... przedstawiony ponizej kod programu jest poprawny i nigdy
nie spowoduje bledu wykonania programu (np. niedozwolony dostep
do pamieci).
int main()
{
Kwadrat Kw;
FiguraGeometryczna Fig;
Kw.ZmienDlugosc(10).UzyjPole().UzyjFigure() = 5;
}
KoniecOpisu
OpisPytania
... przedstawiony ponizej kod programu moze (ale nie musi)
spowodowac zmiane zawartosci obiektu "Fig".
int main()
{
Kwadrat Kw;
FiguraGeometryczna Fig;
Kw.ZmienDlugosc(10).UzyjFigure().UzyjPole() = 5;
}
KoniecOpisu
OpisPytania
... przedstawiony ponizej kod programu nigdy nie spowoduje zmiany
zawartosci obiektu "Fig".
int main()
{
Kwadrat Kw;
FiguraGeometryczna Fig;
Kw.ZmienDlugosc(10).UzyjFigure().UzyjPole() = 5;
}
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
#include
#include
#include
#include
int main()
{
}
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... zapis #include powoduje, ze do programu dolaczany jest
plik naglowkowy "cmath", ktory NIE moze byc uzyty w przypadku programow
pisanych w jezyku C.
KoniecOpisu
OpisPytania
... zapis #include powoduje, ze do programu zawsze dolaczany
jest plik naglowkowy "math.h"
KoniecOpisu
OpisPytania
... zapis #include odpowiada dolaczeniu pliku "type.h"
gdy program pisany jest w jezyku C. Charakterystyczna cecha nazw
odpowiednikow plikow z jezyka C jest dolaczenie na poczatku dwoch
literek 'c'.
KoniecOpisu
OpisPytania
... zapis #include odpowiada dolaczeniu pliku "string".
Plik ten NIE jest odpowiednikiem pliku naglowkowego "string.h"
stosowanego w programach pisanych w jezyku C.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct Pojazd {
virtual void Wyswietl() const { cout << "Pojazd" << endl; }
};
struct Dzwig {
virtual void Wyswietl() const { cout << "Dzwig" << endl; }
};
struct DzwigSamobiezny: public Pojazd, public Dzwig {
void Wyswietl() const { cout << "DzwigSamobiezny" << endl; }
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... jest to przyklad dziedziczena wielobazowego. Wystepowanie metod
wirtualnych nie ma zadnego znaczenia dla okreslenia typu dziedziczenia,
tzn. czy jest to dziedziczenie jednobazowe czy tez wielobazowe.
KoniecOpisu
OpisPytania
... metoda "Wyswietl()" w klasie "DzwigSamobiezny" jest metoda wirtualna.
KoniecOpisu
OpisPytania
... w przypadku kodu funkcji "main()":
int main()
{
DzwigSamobiezny oDzwigSam;
Pojazd &oPojazd = oDzwigSam;
Dzwig &oDzwig = oDzwigSam;
oPojazd.Wyswietl();
oDzwig.Wyswietl();
}
Dla kazdej z referencji (tzn. "oPojazd" i "oDzwigSam") wywolaja sie
rozne metody "Wyswietl()".
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana definicja klasy i zapowiedz definicji funkcji:
struct Wektor {
float x, y;
};
void Dzialanie(const Wektor& W);
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... wywolanie funkcji "Dzialanie" w ponizszym kodzie
int main()
{
Wektor Wekt;
Dzialanie(Wekt);
}
spowoduje uruchomienie konstruktora kopiujacego dla obiektu "Wekt".
KoniecOpisu
OpisPytania
... wywolanie funkcji "Dzialanie" w ponizszym kodzie
int main()
{
Wektor Wekt;
Dzialanie(Wekt);
}
nie daje gwarancji, ze obiekt "Wekt" nie zostanie zmodyfikowany, gdyz
w funkcji "Dzialanie" moga byc np. rzutowania.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct FiguraGeometryczna {
virtual float ObliczPole() const { return 0; }
private:
int _Identyfikator;
};
struct Pojazd {
virtual float PojemnoscSilnika() const { return 0; }
virtual const char* MarkaPojazdu() const { return "Klasa bazowa"; }
private:
int _Identyfikator;
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... rozmiar obiektow klasy "FiguraGeometryczna" i klasy "Pojazd" jest
taki sam. Na rozmiar obiektow tych klas ma wplyw wystepowanie
metod wirtualnych, tzn. czy w danej klasie wystepuje jakakolwiek
metoda wirtualna, czy tez nie ma ich w ogole.
KoniecOpisu
OpisPytania
... rozmiar obiektow klasy "FiguraGeometryczna" i "Pojazd" jest
zalezny od ilosci wystepujacych w nich metod wirtualnych.
Zakladamy, ze obie klasy maja co najmniej jedna metode wirtualna.
KoniecOpisu
OpisPytania
... rozmiar obiektow zarowno klasy "FiguraGeometryczna", jak tez
klasy "Pojazd" jest rowny sumie rozmiarow pol, ktore wystepuja
w danym obiekcie. W tym przypadku jest to rozmiar pola "_Identyfikator".
Rozmiar obiektow nie zalezy od ilosci metod, ktore dana klasa posiada.
Zakladamy, ze obie klasy maja co najmniej jedna metode wirtualna.
KoniecOpisu
OpisPytania
... ilosc metod wirtualnych moze miec wplyw na rozmiar tablicy
VTABLE (tablica adresow metod wirtualnych).
Mimo to rozmiar obiektow obu klas bedzie rowny.
Zakladamy, ze obie klasy maja co najmniej jedna metode wirtualna.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct FiguraGeometryczna {
float ObliczPole() const { return 0; }
private:
int _Identyfikator;
};
struct Pojazd {
float PojemnoscSilnika() const { return 0; }
const char* MarkaPojazdu() const { return "Pojazd"; }
private:
int _Identyfikator;
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... rozmiar obiektow klasy "FiguraGeometryczna" i "Pojazd" jest
rowny. Moze sie jednak zmienic, gdy dopisane zostana definicje
konstruktorow.
KoniecOpisu
OpisPytania
... rozmiar obiektow klas "FiguraGeometryczna" i "Pojazd" nie
zalezy od ilosci metod zdefiniowanych w tych klasach.
Zakladamy, ze nie sa to metody wirtualne. Moga to jednak byc
metody z modyfikatorem "const" jakt tez bez niego.
KoniecOpisu
OpisPytania
... rozmiar obiektow klas "FiguraGeometryczna" i "Pojazd" zalezy
od sposobu zdefiniowania metod, tzn. bedzie inny, gdy pelna definicja
metody znajdzie sie poza cialem klasy. W przedstawionym przypadku
metody beda rozwijane "w linii".
KoniecOpisu
OpisPytania
... rozmiar obiektow klas "FiguraGeometryczna" i "Pojazd"
jest zdeterminowany tylko i wylacznie rozmiarem pol znajdujacych
sie w klasie i nie zalezy od ich nazwy. W tym przypadku chodzi
o pola "_Identyfikator".
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct FiguraGeometryczna {
virtual float ObliczPole() const { return 0; }
};
struct Kwadrat: public FiguraGeometryczna {
virtual float ObliczPole() const { return _DlugoscBoku*_DlugoscBoku; }
virtual ~Kwadrat() {}
protected:
float _DlugoscBoku;
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... operacja przedstawiona ponizej jest poprawna i nie spowoduje blednego
dzialania programu.
FiguraGeometryczna *wFig = new Kwadrat();
delete wFig;
KoniecOpisu
OpisPytania
... dla zmiennej wskaznikowej typu FiguraGeometryczna*, ktora wskazuje
na obiekt lub podobiekt zawarty w innym obiekcie w sensie
dziedziczenia zgodnie z prezentowana definicja klasy Kwadrat,
wykonanie operacji:
Pole = wFig->ObliczPole();
moze spowodowac, ze w zmiennej "Pole" bedzie wartosc rozna od 0.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct Wektor {
float x, y;
Wektor() { x = y = 0; }
const float Norma() { return sqrt(x*x+y*y); }
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... uzycie modyfikatora "const" w metodzie "Norma" na jej poczatku
informuje o tym, ze metoda bedzie mogla zostac wywolana dla obiektow
stalych, tzn.
const Wektor W;
W.Norma();
KoniecOpisu
OpisPytania
... przedstawione ponizej podstawienie jest poprawne i pomimo tego, ze
metoda "Norma" zwraca stala wartosc, to wartosc zmiennej "Dlugosc"
moze byc zmieniana.
const Wektor W;
float Dlugosc = W.Norma();
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dany nastepujacy fragment kodu
struct Wektor {
float x, y;
inline float Norma() const { return sqrt(x*x+y*y); }
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym kontekscie
i kompiluje sie bez ostrzezen. Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
... gdy kod metody jest rozwijany "w linii", to wielkosc obiektu
tej klasy bedzie mniejsza niz w przypadku, gdy klasa ta zostanie
zdefiniowana bez tej metody.
KoniecOpisu
OpisPytania
mozna pominac modyfikator "inline". Ta metoda i tak bedzie
traktowana jako metoda "inline", choc nie zawsze jej kod musi
zostac rowiniety "w linii".
KoniecOpisu
OpisProblemu ====================================================
W przypadku definiowania metod wirtualnych generowane sa przez kompilator
dodatkowe zestawy danych, ktore umozliwiaja realizacje w praktyce idei
polimorfizmu (wielopostaciowosci). Jezeli w danym programie zdefiniowane
sa WYLACZNIE klasy z metodami wirtualnymi, to czy prawdziwe jest nastepujace
stwierdzenie?
KoniecOpisu
OpisPytania
Po uruchomieniu takiego programu, tworzone sa tablice metod wirtualnych.
Tablice te sa tworzone w sposob dynamiczny osobno dla kazdego obiektu.
Dzieki temu z kazdym obiektem skojarzona jest unikalna tablica
metod wirtualnych.
KoniecOpisu
OpisPytania
Obiekty klas, posiadaja w sposob niejawny wbudowany dodatkowy wskaznik,
ktory jest wskaznikiem na tablice metod wirtualnych.
Tablica taka ma zawsze taki sam zestaw adresow metod wirtualnych dla
kazdego obiektu danej klasy.
KoniecOpisu
OpisPytania
Zawsze z obiektem klasy skojarzony jest wskaznik na tablice metod
wirtualnych. Wskaznik ten nie jest jawnie dostepny i nie ma mozliwosci
odczytania adresu tablicy.
Gdyby byla taka mozliwosc, to mogloby to skutkowac proba dostepu
i modyfikacji obszaru pamieci, ktory nie moze byc modyfikowany.
KoniecOpisu
OpisPytania
Istnienie w obiekcie adresu do tablicy metod wirtualnych pozwala
na rozroznienie przypadku, gdy obiekt zostal utworzony jako
samodzielna odrebna calosc, np. poprzez definicje:
FiguraGeometryczna Fig;
czy tez jest elementem skladowym innego obiektu.
KoniecOpisu
OpisProblemu ====================================================
Niech beda dane nastepujace definicje klas:
class Tablica {
protected:
float *_wTab;
int _Rozmiar;
public:
Tablica(int Rozmiar): _Rozmiar(Rozmiar) { _wTab = new float[_Rozmiar]; }
virtual float operator [] ( int Indeks ) const { return _wTab[Indeks]; }
};
class TablicaPochodna: public Tablica {
public:
TablicaPochodna(int Rozmiar): Tablica(Rozmiar) {}
float& operator [] ( int Indeks ) { return _wTab[Indeks]; }
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym
kontekscie i kompiluje sie bez zadnych ostrzezen.
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
w przypadku ponizej definicji funkcji main:
int main()
{
TablicaPochodna Tab(2);
cout << Tab[1] << endl;
}
ze wzgledu na to, ze zawartosc obiektu "Tab" jest tylko odczytywana,
to zostanie wywolane przeciazenie operatora indeksujacego "[]"
zdefiniowane w klasie "Tablica". Przeciazenie to jest dziedziczone
przez klase "TablicaPochodna".
KoniecOpisu
OpisPytania
w przypadku ponizej definicji funkcji main:
int main()
{
Tablica &Tab = TablicaPochodna(2);
Tab[1] = 1;
}
nie mozna wykonac podstawienia "Tab[1] = 1", gdyz klasa
"Tablica" dysponuje przeciazeniem operatora indeksujacego,
ktory nie daje mozliwosci modyfikacji obiektu.
Fakt, ze jest to wirtualna metoda operatorowa nie ma tu
zadnego znaczenia.
KoniecOpisu
OpisPytania
w przypadku ponizej definicji funkcji main:
int main()
{
const TablicaPochodna Tab[2];
Tab[1];
}
Ze wzgledu na to, ze zdefiniowany obiekt "Tab" jest staly,
to wywolanie operatora indeksujacego spowoduje uruchomienie
jego przeciazenia, ktore jest zdefiniowane w klasie "Tablica"
dziedziczonej przez klase "TablicaPochodna".
KoniecOpisu
OpisPytania
w przypadku ponizej definicji funkcji main:
int main()
{
Tablica &Tab = TablicaPochodna(2);
...
}
Samodzielny obiekt klasy "Tablica" nie da sie zmodyfikowac po jego
utworzeniu. W tym jednak przypadku dysponujac referencja do obiektu
"Tab" mozna to zrobic, poprzez odpowiednie rzutowanie.
KoniecOpisu
OpisProblemu ====================================================
Niech bedzie dana nastepujaca definicja klasy:
class LZespolona {
public:
float re, im;
LZespolona( float re, float im );
LZespolona( float re );
};
Zakladamy, ze powyzszy kod jest umieszczony we wlasciwym
kontekscie i kompiluje sie bez zadnych ostrzezen.
Czy prawda jest, ze ...
KoniecOpisu
OpisPytania
Definicja konstruktora w postaci:
LZespolona::LZespolona( float re, float im ): re(re), im(im)
{}
aczkolwiek skompiluje sie poprawnie, to wartosci pol klasy
nie zostana zainicjalizowane, gdyz nazwy parametrow
przeslaniaja nazwy pol klasy.
KoniecOpisu
OpisPytania
Definicja konstruktora w postaci:
LZespolona::LZespolona( float re, float im )
{
re = re; im = im;
}
aczkolwiek skompiluje sie poprawnie, to wartosci pol klasy
nie zostana zainicjalizowane, gdyz nazwy parametrow
przeslaniaja nazwy pol klasy.
KoniecOpisu
OpisPytania
Definicja konstruktora w postaci:
LZespolona::LZespolona( float re ): im()
{
LZespolona::re = re;
}
jest prawidlowa i gwarantuje jednoznaczne zainicjalizowanie
obu pol klasy.
KoniecOpisu
OpisPytania
Definicja konstruktora w postaci:
LZespolona::LZespolona( float re ): im()
{
re = LZespolona::re;
}
jest prawidlowa i gwarantuje jednoznaczne zainicjalizowanie
obu pol klasy.
KoniecOpisu
OpisPytania
Definicja konstruktora w postaci:
LZespolona::LZespolona( float re ): re(re), im()
{}
nie gwarantuje poprawnej inicjalizacji pol klasy.
Zapis nie jest jednoznaczny i nie mozna okreslic
jakimi wartosciami zostana zainicjalizowane pola
klasy.
KoniecOpisu
Wyszukiwarka
Podobne podstrony:
Religia Pytania o latarnię mojego serca
Pytania z witamin Siemian
pytania2009cz1 test
PKC pytania na egzamin
2009 pytania testowe
pytania byrdy I termin
patomorfologia pytania egzamin opisowy
PIK PYTANIA
pytania
pytania rynek finansowy egzamin
examin C inne pytania 2
Betony pytania
Marketing Opracowane Pytania Egzaminacyjne 2009 Furtak (46)
więcej podobnych podstron