въпросите на теста, един верен отговор (да), и един грешен
"отговор" (не)
Разгледайте програмата, дадена във файла clock3.cpp и
посочете верните и грешни твърдения.
(да) Векторът clocks е полиморфна колекция от различни
часовници.
(не) Изразът clocks[i]->get_minutes() е
реализация на динамично свързване. Дадена са следните дефиниции на класове: class Point { ... }; class Circle : public Point
{ ... };
Определете верните и неверните твърдения за връзките между класовете
Point и Circle:
(да) Класът Circle е производен клас на класа Point.
(не) Частните членове на Point са частни членове на Circle. Нека класът D наследява класа B,
b е обект от класа B, d е обект
от класа D, pb е указател от класа B и
pd е указател от класа D. Кои от следните
оператори са верни и кои - не?
(да) b = d;
(не) d = b; Дадени са следните дефиниции на класове: class A { public: void af(); ... }; class B : public A { public: void bf(); ... };
и обекти oa от клас A и ob от клас B.
Отбележете верни/неверни оператори (относно синтаксис) за извикване
на член-функциите af и bf от блока на функция main.
(да) oa.af();
(не) oa.bf(); Отбележете верните/неверните твърдения за
виртуални функции и полиморфизъм.
(да) Извикване на виртуална функция е по-бавно от извикване на
невиртуална функция.
(не) Когато член-функция се вика чрез указател (с операция ->),
тя винаги е статично свързана. Дадени са файловите променливи: ifstream fin; ofstream fout; fstream f;
и променливите int k = 10; double x = 15.5; char ch = 'N'; string s = "alabala";
Отбележете верните оператори.
(не) fout >> x;
(да) fout << x << " " << s; Отбележете верните и неверни твърдения
относно йерархията на потоковите класове.
(да) fstream е производен на iostream.
(не) fstream е производен на ofstream. Отбележете верните и неверни твърдения за
потокови класове, обекти и член-функции.
(да) Член-функцията get е дефинирана за istream
обекти.
(не) Член-функцията getline е дефинирана за istream
обекти. Даден е следният команден ред: >prog -a -b2 d.txt < inp.txt > out.txt
при което операционната система стартира и успешно изпълнява
програма myprog.
Вярно ли е следното обяснение:
(да) Името на изпълнимия файл е prog.exe в ОС Windows.
(не) Броят на аргументите от командния ред е 6. От главната функция main във
файла database.cpp определете верността на твърденията.
(да) Операторът fs.seekg(0, ios::end); премества позицията
за четене в края на файла.
(не) Стойността на променливата nrecord е големината на
файла. Дадени са две взаимно рекурсивни функции. int s(int n) { if (n != 0)
return n + m(n - 1); else return 1; } int m(int n) { if (n != 0)
return n * s(n - 1); else return 0; }
Пресметнете и напишете стойността (true
или false) на следния израз:
(true) s(2) == 3
(false) s(0) == 0 Дадена е рекурсивната функция: bool spot(string s, int start, int end) { if (start
>= end) return true; if (s[start]
== s[end])return spot(s, start + 2, end -
2); elsereturn false; }
Намерете и напишете върнатата от функцията стойност (true
или false) при следното извикване: s_is_p(s, 0, s.length() - 1);
при дадената стойност на променливата s.
(true) aaaa
(false) aaaabbbb Във функцията rec121
заместете многоточието (...) с
дадения оператор. void rec121(int i) { ... if (i/10 != 0) rec121(i/10); } int main() { rec121(122); return 0; }
Съдържа ли се низа "121" в изхода
на програмата?
(да) cout << i;
(не) cout << i%10; Отбележете верни и грешни
твърдения за ефективност на рекурсията.
(да) Рекурсията е мощен метод за сложни алгоритми, но тя може да
доведе до програми, които работят бавно. (не) Винаги итерационното решение е
по-ефективно (по-бързо) от рекурсивното. Отбележете верни и грешни твърдения за
функцията generate_permutations,
дадена във файла permute.cpp.
(да) generate_permutations e
функция, която генерира всички пермутации на една дума.
(не) Рекурсивното извикване връща една пермутация на по-къса дума.