問題一覧
1
Wykaż związki między klasami:
Specjalizacja, Agregacja, Asocjacja
2
Wskaż metody obsługi błędów wykorzystane w programowaniu obiektowym:
instrukcje obsługi wyjątkówinstrukcje obsługi wyjątków, asercje, globalne funkcje walidacyne z instrukcjami warunkowymi, RAIl
3
Wskaż poprawne stwierdzenia dotyczące metaprogramowania
Metaprogramowanie skraca kod źródłowy programu , Metaprogramowanie może być zrealizowane za pomocą biblioteki boost:mpl, Metaprogramowanie pozwala obliczać wartości numeryczne na etapie kompilacji
4
Wskaż łańcuchy pasujące do wzorca [[:digit:]]{2}-[2-5]-\w\D
11-3-aa, 33-4-9_
5
Wskaż poprawne stwierdzenia dotyczące inteligentnych wskaźników
Inteligentne wskaźniki to obiekty klas szablonowych, Inteligentne wskaźniki determinują czas życia objektu na który wskazują
6
Wskaż poprawną konkretyzację dla szablonu: template <typename typ> typ minimum(typ a, typ b) {return (a<b)?a:b;}
minimum(x,y); //gdzie x,y to zmienne typu float, minimum<float>(x,y); //gdzie x,y to zmienne typu float
7
Do konwersji zmiennej łańcuchowej typu string na liczbę całkowitą można wykorzystać
globalną funkcję atoi() i metodę c_str z klasy string, obiekt klasy istringstream
8
Klasa Tstudent zawiera pole prywatne nazwiskoImie typu char[30]. Aby je zainicjować można użyć
metody klasy wczytaj() zawierającej instrukcję cin.getline(nazwiskoImie,30), konstruktora z 1 parametrem, metody klasy wczytaj() zawierającej instrukcję getline(cin,nazwiskoImie)
9
Wskaż poprawne stwierdzenia dotyczące szablonów:
Konkretyzacja szablonu to generowanie kodu dla właściwego typu, Konkretyzacja szablonu to wersja szablonu, która będzie użyta do generacji kodu, zamiast wersji ogólnej, gdy parametrami będą konkretne typy, Parametrami klasy szablonowej mogą być tylko nazwy typów
10
Wskaż poprawne stwierdzenia dotyczące inteligentnych wskaźników
Obiekt na który wskazuje wskaźnik współdzielony może być zniszczony metodą reset(), Obiekt na który wskazuje wskaźnik unikalny jest niszczony metodą reset(), Obiekt na który wskazuje wskaźnik unikalny jest niszczony po wyjściu z zakresu, w którym wskaźnik został zadeklarowany
11
Wskaż łańcuchy pasujące do wzorca: \w{2}-\d{4,5}
22-4545, BD-1234, A1-12345
12
Wskaż poprawne stwierdzenia dotyczące hermetyzacji:
Składowe klasy umieszczone w sekcji protected są dostępne metodom klas potomnych, Hermetyzacja pozwala na ograniczenie dostępu do wszystkich składowych klasy, Specyfikator private w klasie pozwala na udostępnienie umieszczonych niżej składowych tylko metodom danej klasy
13
Aby posortować obiekty klasy X w kontenerze vector należy:
należy przeciążyć operator < w klasie X, zastosować algorytm sort()
14
Wskaż metody klasy pozwalające udostępniać wartości pól
gettery, funkcje
15
Czym jest obiekt? Wskaż poprawną odpowiedź:
Jest to instancja klasy, Zmienna, posiadająca swoją tożsamość, stan i określony sposób zachowania
16
Czym jest klasa? Wskaż poprawną odpowiedź:
Definicja typu u użytkownika, zawierająca dane i metody manipulacji danych, Jednostka ponownego użycia zawierająca publiczny interfejs z operacjami do wykonania na obiektach
17
Wskaż poprawne stwierdzenia dotyczące algorytmów w bibliotece STL:
Algorytmy używają iteratorów do określania zakresów przetwarzanych danych, Algorytmy z biblioteki STL to szablony funkcji
18
Do konwersji liczby całkowitej na stringa można wykorzystać
globalną funkcję to_string(), globalną funkcje stoi()
19
Wskaż poprawne stwierdzenia dotyczące metaprogramowania
Metaprogramowanie zwiększa szybkość działania programu poprzez wykonanie części zadań w czasie kompilacji, Metaprogramowanie może być zrealizowane za pomocą szablonów
20
Wskaż cechy programowania obiektowego
Polimorfizm, Dziedziczenie
21
Wskaż poprawne wyrażenia lambda:
int x=1, y=2 auto z=[&] (int a){x+=a; cout<<x<<y<<endl;}; z(5);, int x=1, y=2 [&](int a){x+=a; cout<<x<<y<<endl;} (5);
22
Polimorfizm statyczny jako wielopostaciowość na etapie kompilacji może być zrealizowany za pomocą
Przeciążenia operatorów, przeciązania metod, przesłania metod w klasach potomnych, szablonów
23
Dla kontenerów z biblioteki QT można wykorzystać algorytmy
z pliku nagłówkowego <algorithm>, z pliku nagłówkowego <QTAlgorithms>
24
Wskaż poprawne stwierdzenia dotyczące dziedziczenia:
Konstruktorów się nie dziedziczy, Składowe klasy umieszczone w sekcji protected są dostępne metodom klas potomnych, Obiekt klasy potomnej dziedziczy od obiektu klasy bazowej składowe z sekcji public i protected
25
Wskaż poprawne stwierdzenia dotyczące inteligentnych wskaźników:
std::weak_ptr może być konwertowany na std::shared_ptr, std::weak_ptr nie pozwala zwolnić pamięci obiektu, na który wskazuje
26
Wskaż poprawne stwierdzenia dotyczące techniki RAII
Pobieranie zasobu jest inicjalizacją
27
Wskaż poprawne stwierdzenia dotyczących kontenerów asocjacyjnych w bibliotece STL:
używają kluczy do wyszukiwania wartości
28
string n(“Ala ma kota”); Które z algorytmów biblioteki boost mogą zmienić zainicjowaną wartość łańcucha?
to_upper(), replace_first()
29
Wskaż poprawne stwierdzenia dotyczące wyrażeń regularnych:
Pozwalają zmienić tekst na inny, Pozwalają dopasowywać tekst do wzorca, Służą do walidacji danych z formularzy, Pozwalają pociąć tekst na fragmenty
30
Kontener QVector<int> do zapisu i do odczytu elementów może wykorzystać iteratory:
QVector<int>::iterator it;
31
string n(“Ala ma kota”); Które z metod klasy string mogą zmienić zainicjowaną wartość łańcucha?
replace(), erase(), append()
32
Wskaż poprawne stwierdzenia dotyczące dziedziczenia:
Obiekt klasy potomnej dziedziczy od obiektu klasy bazowej składowe z sekcji public i protected, Składowe klasy umieszczone w sekcji public i protected są dostępne metodom klas potomnych
33
Niezmiennikiem w programie może być:
Rozmiar kontenera, nazwa pliku do zapisu i odczytu, Indeks elementu kontenera vector
34
Wskaż poprawne deklaracje funkcji:
void f(int i) noexcept;, void f(int i) throw(A,B);, void f(int i) throw();
35
Wskaż poprawne stwierdzenia dotyczące klas abstrakcyjnych:
Są to klasy z metodami wirtualnymi, Dostarczają interfejs do konkretnych klas bez implementacji
36
W programie zdefiniowano obiekty: ifstream f(“abc”); string n(“abc”);
f.read(&n[0],n.length());f.close();, f>>n;f.close();
37
Wskaż metody klas, pozwalające inicjować pola:
Settery, Konstruktory
38
Wskaż poprawne stwierdzenie dotyczące wyrażeń lambda:
wyrażenia lambda to funkcje anonimowe, które mogą mieć parametry i mogą zwracać wartość, wyrażenia lambda mają obowiązkowo [] () {}
39
Jakie elementy może przechowywać vector?
Wskaźniki, Listę, Inny vectorInny vector
40
Wskaż poprawne stwierdzenie dotyczące konstruktorów:
Podczas tworzenia obiektu, gdy nie podamy parametrów może być wywołany konstruktor z parametrami domyślnymi, Konstruktor delegatowy wywołuje inny równorzędny konstruktor
41
string n("Ala ma kota"), Które z algorytmów biblioteki boost mogą zmienić zainicjowana wartość łańcucha?
erase_first(), trim()
42
W programie zdefiniowano obiekty: ofstream f("abe"); string n("abc"); Podaj poprawna operacie na obiektach:
f.write(&n[0],n.length()); f.close(), f<<n; f.close()
43
Wskaż poprawne stwierdzenia dotyczące iteratorów w bibliotece qt:
Operacje odczytu zawartości kontenerów są szybsze przy wykorzystaniu iteratorów tylko do odczytu, Iteratory w stylu qt wskazują na konkretny element w kontenerze, Kontenery QT można obsługiwać za pomocą iteratorów w stylu STL z metodami begin(), end()
44
Wskaż poprawne stwierdzenia dotyczące kontenerów map w bibliotece STL:
zawiera automatycznie posortowane elementyzawiera automatycznie posortowane elementy, elementem mapy może być dowolny typ, klucze są niepowtarzalne, wartosci moga sie powtarzad
45
Wskaż poprawne stwierdzenia dotyczące polimorfizmu:
Polimorfizm umożliwia wybrać metodę na podstawie typu obiektu, Polimorfizm realizowany jest za pomocą metod wirtualnych, Destruktor w klasie bazowej powinien być wirtualny, aby "posprzątał" ko każdym obiekcie, Polimorfizm związany jest z tzw. późnym wiązaniem