ТЕСТ 2

(въпросите на теста, един верен и един грешен отговор)


Дадени са свързан списък и итератор:
   list<int> bip;
 list<int>::iterator it;

Списъкът съдържа 10 елемента и итераторът сочи втория елемент на свързания списък. Верни ли са (синтактично и/или логически) дадените изрази?
(да) *it > 0
(не) *it != *bip.end()

Верни ли са твърденията за достъп на член-функции от един клас до членове на друг клас за класовете, дефинирани във файла list2.cpp?
(да) Член-функциите на класа List имат достъп до частните членове на класа Node.
(не) Член-функциите на класа Iterator имат достъп до частните членове на класа List.

Даден е свързан списък от цели числа, състоящ се от 3 елемента. Полето next сочи към следващия елемент, полето prev - предишния елемент от списъка, а h е указател за началото на списъка.
   struct Item
   {
       Item *next, *prev; int data;
   };
   Item *h;
Определете верните и неверните твърдения.
(да) (h->next)->next е адресът на последния елемент от списъка.
(не) (h->next)->prev е NULL.

Определете верните и неверните дефиниции и твърдения за структури от данни и свързан списък.
(да) Опашката е линейна структура от данни.
(не) Стекът е нелинейна структура от данни.

Посочете верните и грешни твърдения от текста на програмата list2.cpp за реализация на свързан списък.
(да) Операторът friend class List; в дефиницията на класа Node дава достъп на член-фукциите на класа List до частните членове на класа Node.
(не) class Iterator; е оператор за дефиниране на класа Iterator.
Проверете твърденията за стандартната библиотека шаблони (STL) на езика С++.
(да) Контейнерът map осигурява пряк и ефективен достъп до елементите.
(не) Контейнерът list осигурява пряк достъп (операция индекс) до елементите на свързания списък.

Отбележете верни и грешни твърдения относно сортиране и търсене.
(да) За метода сортиране чрез избор удвояване на броя на елементите води до четирикратно учеличаване на времето за сортиране.
(не) За метода сортиране чрез сливане удвояване на броя на елементите води до четирикратно учеличаване на времето за сортиране.

Ако 10000 записа се сортират за 4 секунди от двата метода за сортиране (избор и сливане), то
(да) методът сортиране чрез сливане ще сортира 1000000 записа за около 10 минути.
(не) методът сортиране чрез избор ще сортира 1000 записа за повече от 1 секунда.

Намерете броят N(b) на посещенията на елементите на масива
int a[10] = {14,43,76,100,115,290,400,511,512,601};
необходими за намиране на стойност b при прилагане на алгоритъма за двоично търсене. Отговорете със стойността на математическия израз N(b) mod 2 за дадените стойности на b.
(0) b = 90
(1) b = 10

Пребройте посещенията на елементите на дадения масив, необходими за сортиране на масива по метода сортиране чрез избор и отбележете с ,,да'', ако този брой съвпада с числото, написано след елементите на масива.
(да) {5, 8, 7} 7
(не) {5, 7, 8} 7

Отбележете с ,,да'' случаите, когато числото в скобите е броят на размените (swap) в алгоритъма за сортиране чрез селекция на дадения масив.
(да) {1, 2, 4, 5} (0)
(не) {1, 4, 2, 5} (2)

Посочете верните твърдения за параметрите на функциите, предефиниращи операции и за аргументите на самите предефинирани операции.
(да) Първият на аргумент на предефинирана операция с член-функция е текущият обект.
(не) Унарна операция се предефинира с член-функция с един  параметър.

Отбележете верни/неверни твърдения за предефиниране на операции.
(да) Операция се предефинира като са дeфинира функция с име operator и знака на операцията.
(не) Функцията Time& operator++(Time&) предефинира постфиксната операция ++ за обекти от клас Time.

Разгледайте главната функция на програмата, дадена във файла overload.cpp и отбележете с "да" изразите, в които има предефинирана операция.
(да) now + 1000
(не) cout << "Another "

Възможно ли е да се предефинира следващата операция за обекти от класа Time, като използваме следната декларация на обикновена функция?
(не) bool operator>(Time);
(да) long operator-(Time, Time);

Възможно ли е да се предефинира следващата операция за обекти от класа Time_new, като използваме следната декларация на член-функция?
(да) bool Time_new::operator==(Time_new);
(не) istream& Time_new::operator>>(Time_new&);