Imię i nazwisko:
24 czerwca 2002
1. Jaka jest różnica pomiędzy kompilacją programu w trybie release i debug?
release:
debug:
2.
Gdzie znajduje się najlepsze miejsce do inicjacji składowych
obiektu klasy?
3.
Jak wyłapać wszystkie wyjątki, które mogą się pojawić w
programie?
4.
Jaki jest wynik działania instrukcji
std::cout
<< (6&2) << (6|2) << (6 << 2) << 0x26
<< "\n";
5. Podaj przykład dwóch zmiennych x i y typu double spełniających warunek
(x
&& y && (x+y == y))
x =
y =
6.
Jaki błąd popełnił Jacek pisząc
x[i]
= a[++i];
7.
Czym różni się '\0' od "\0".
8.
Jaka jest podstawowa różnica pomiędzy instrukcją break,
return,
throw
i exit?
break:
return:
throw:
exit:
9. Co oznacza instrukcja for ( ; ; ) { ... }
10.
Co oznacza słowo kluczowe this?
11.
Co w poniższej definicji funkcji oznacza drugi podwójny dwukropek?
void
X::Rectangle(RECT const& r, COLOR c) const
{
::Rectangle(*this, r.x0, r.y0, r.x1,
r.y1, c);
}
12.
Co w definicji funkcji z poprzedniego zadania oznacza ostatnie
słowo kluczowe const?
13.
Czym różnią się funkcje "inline" od zwykłych funkcji?
14. Czym różni się przekazywanie argumentów przez wartość od przekazywania argumentów przez referencję?
15.
Zapisz instrukcję p->x(); nie posługując
operatorem ->.
16. Dlaczego funkcja nie może zwracać referencji do swojej lokalnej zmiennej automatycznej?
17.
Czym różni się metoda std::vector<T>::capacity()
od std::vector<T>::size();
capacity:
size:
18.
Napisz instrukcję, która przy pomocy pewnego standardowego
algorytmu posortuje 100 pierwszych
elementów tablicy int tablica[1000] w kolejności od
najmniejszej do największej.
19.
Do czego służy słowo kluczowe explicit?
20. Jeżeli w konstruktorze alokujemy pamięć przy pomocy instrukcji int* const p = new int[100];, to w jaki sposób usuwamy tę tablicę w destruktorze?
21. Podaj przykład wyrażenia, które generuje NaN.
22. Przy pomocy deklaracji typedef zdefiniuj SHORT_VEC jako alternatywną nazwę wektora (std::vector) liczb typu short.
23.
Wszystkie wyjątki rzucane przez bibliotekę standardową są
wyprowadzane z klasy std::exception, która posiada
składową const char *what()
const
, informującą o
rodzaju wyjątku. Dlaczego chcąc użyć składowej what, nie możemy
wyłapywać wyjątku przez wartość?
24.
Jakie fragmenty programu mają dostęp do składowych chronionych
(protected)?
25.
Co robi druga z
poniższych instrukcji:
std::vector<int>
v;
std::copy (std::istream_iterator<int> (std::cin),
std::istream_iterator<int>(),
std::back_inserter (v) );
Rozwiązania proszę najpierw napisać na brudno i po sprawdzeniu przenieść na podpisaną kartkę z wersją „finalną”. Proszę zwrócić uwagę na sposób definiowania argumentów i wartości funkcji.