問題一覧
1
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ą
2
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
3
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
4
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
5
Wskaż poprawne stwierdzenia dotyczących kontenerów asocjacyjnych w bibliotece STL:
używają kluczy do wyszukiwania wartości
6
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()
7
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
8
Wskaż cechy programowania obiektowego
Polimorfizm, Dziedziczenie
9
Dla kontenerów z biblioteki QT można wykorzystać algorytmy
z pliku nagłówkowego <algorithm>, z pliku nagłówkowego <QTAlgorithms>
10
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
11
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)
12
Wskaż poprawne deklaracje funkcji:
void f(int i) noexcept;, void f(int i) throw(A,B);, void f(int i) throw();
13
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
14
Aby posortować obiekty klasy X w kontenerze vector należy:
należy przeciążyć operator < w klasie X, zastosować algorytm sort()
15
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
16
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
17
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
18
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 [] () {}
19
Wskaż łańcuchy pasujące do wzorca: \w{2}-\d{4,5}
22-4545, BD-1234, A1-12345
20
Do konwersji liczby całkowitej na stringa można wykorzystać
globalną funkcję to_string(), globalną funkcje stoi()
21
W programie zdefiniowano obiekty: ifstream f(“abc”); string n(“abc”);
f.read(&n[0],n.length());f.close();, f>>n;f.close();
22
Wskaż metody klas, pozwalające inicjować pola:
Settery, Konstruktory
23
string n(“Ala ma kota”); Które z metod klasy string mogą zmienić zainicjowaną wartość łańcucha?
replace(), erase(), append()
24
Wskaż łańcuchy pasujące do wzorca [[:digit:]]{2}-[2-5]-\w\D
11-3-aa, 33-4-9_
25
string n(“Ala ma kota”); Które z algorytmów biblioteki boost mogą zmienić zainicjowaną wartość łańcucha?
to_upper(), replace_first()
26
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
27
string n("Ala ma kota"), Które z algorytmów biblioteki boost mogą zmienić zainicjowana wartość łańcucha?
erase_first(), trim()
28
Wskaż poprawne stwierdzenia dotyczące klas abstrakcyjnych:
Są to klasy z metodami wirtualnymi, Dostarczają interfejs do konkretnych klas bez implementacji
29
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);
30
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
31
Wskaż poprawne stwierdzenia dotyczące techniki RAII
Pobieranie zasobu jest inicjalizacją
32
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
33
Jakie elementy może przechowywać vector?
Wskaźniki, Listę, Inny vectorInny vector
34
Wskaż metody klasy pozwalające udostępniać wartości pól
gettery, funkcje
35
Wykaż związki między klasami:
Specjalizacja, Agregacja, Asocjacja
36
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
37
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
38
Kontener QVector<int> do zapisu i do odczytu elementów może wykorzystać iteratory:
QVector<int>::iterator it;
39
Niezmiennikiem w programie może być:
Rozmiar kontenera, nazwa pliku do zapisu i odczytu, Indeks elementu kontenera vector
40
Czym jest obiekt? Wskaż poprawną odpowiedź:
Jest to instancja klasy, Zmienna, posiadająca swoją tożsamość, stan i określony sposób zachowania
41
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
42
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
43
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
44
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()
45
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