въпросите на теста, един верен отговор (да), и един грешен
"отговор" (не)
1. Дадена е следната дефиниция: const string pname = "CDE";
Дали следващият оператор е дефиниция на низовата променливата name?
(да) string name = "Neli";
(не) string name = 19;
2. Отбележете с "да" операторите за дефиниране на обекти и указатели
към обекти от класовете Time и Employee, дадени
в учебника на К. Хорстман.
(да) Employee harry("Harry", 10000);
(не) Time time = new Time();
3. Дадена са следната декларация на функция: int mark(int n, int& m);
Отбележете верните и неверни оператори, съдържащи извикване на
функцията. Предполгаме, че цялата променлива comma е
дефинирана и има стойност 0.
(да) cout << mark(10, comma);
(не) cout << mark(comma, 2);
4. Дадени са следните дефиниции: int *pt1, p = 2, *pt2 = new
int(1);
Отбележете с "да" (синтактично) верните оператори.
(да) pt1 = new int;
(не) *pt2 = new p;
5. Дадени са следните дефиниции: double d=2.5; double *p_d1=&d,
*p_d2=new double(0.5);
Верни ли са написаните оператори?
(да) p_d1 = new double;
(не) *p_d2 = p_d1;
6. Даден е масив: int cats[5] = {5, 10, 5};
Отбележете с "да" изразите със стойност 10.
(да) cats[0] + cats[2]
(не) *(cats+2)
7. Дадени са следните дефиниции: int a[3] = {10,20,30}, *pa = a;
Посочете с "да" изразите със стойност 30.
(да) a[0] + a[1]
(не) a[1] + pa[1]
8. Отбележете верните твърдения за класове.
(да) Конструктор без параметри се нарича конструктор по
подразбиране.
(не) Всяка член-функция има точно един явен параметър.
9. Отбележете верните декларации на функции, които могат да бъдат
конструктори на класове.
(да) Point(double x, double y);
(не) class();
10. Даден е класът class Product { public: Product(); Product(string n, double p, int s); void read(); string get_name() const; double get_price() const; void print() const; private: string name; double price; int score; };
и обект p от този клас , дефиниран в main.
Отбележете операторите, които могат да се срещат в блока на
функцията main.
(да) Product q;
(не) cout << p.name;
11. Дадени са дефиниции на класа One обекти и указатели от
този клас: class One { public: One() { data = 0; } int get_data() { return data; } private: int data; }; One one, *p_one=&one, &r_one=one;
Верни ли са дадените обръщения към член-функцията get_data
от главната функция main?
(да) one.get_data()
(не) one::get_data()
12. Даден е клас Big и обект b. class Big { public: Big(); vector<Time> get_t() const { return
times; } void set_t(Time t, int i) { times[i] = t; } private: vector<Time> times; }; Big b;
Конструкторът на класа зарежда 10 стойности на вектора times.
Отбележете верните оператори от блока на main.
(да) cout << b.get_t()[0].get_hours();
(не) b.get_t().push_back(Time());
13. Отбележете верните/неверните твърдения за вектори и масиви.
(да) Векторът е елемент на езика С++.
(не) Операторът int n[4]; дефинира вектор с 4 елемента.
14. Даден е вектор и стойности на елементите му: vector<int> sol(2); sol[0] = 1; sol[1] = 3;
Отбележете верни и грешни (относно синтаксис и/или логика)
оператори.
(да) cout << sol.size();
(не) cout << sol[0] + sol[2];
15. Дадена са следните дефиниции на класове: class Point { ... }; class Circle : public Point
{ ... };
Определете верните и неверните твърдения за връзките между класовете
Point и Circle:
(да) Класът Circle е производен клас на класа Point.
(не) Частните членове на Point са частни членове на Circle.
16. Нека класът D наследява класа B, b
е обект от класа B, d е обект от класа D,
pb е указател от класа B и pd е
указател от класа D. Кои от следните оператори са верни и
кои - не?
(да) b = d;
(не) d = b;
17. Дадена са следните дефиниции на класове: class A { public: void af(); ... }; class B : public A { public: void bf(); ... };
и обекти oa от клас A и ob от клас B.
Отбележете верни/неверни оператори (относно синтаксис) за извикване
на член-функциите af и bf от блока на функция main.
(да) oa.af();
(не) oa.bf();
18. Отбележете верните/неверните твърдения за виртуални функции и
полиморфизъм.
(да) Извикване на виртуална функция е по-бавно от извикване на
невиртуална функция.
(не) Когато член-функция се вика чрез указател (с операция ->),
тя винаги е статично свързана.