ТЕСТ 1

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

1. Дадени са следните дефиниции:
      int *pt1, p = 2, *pt2 = new int(1);
Отбележете с "да" (синтактично) верните оператори.
(да) pt1 = new int;
(не) *pt2 = new p;

2. Дадени са следните дефиниции:
      double d=2.5;
      double *p_d1=&d, *p_d2=new double(0.5);
Верни ли са написаните оператори?
(да) p_d1 = new double;
(не) *p_d2 = p_d1;

3. Даден е масив:
     int mov[5] = {5, 10, 5};
Отбележете с "да" изразите със стойност 10.
(да) mov[0] + mov[2]
(не) *(mov+2)

4. Дадени са следните дефиниции:
     int a[3] = {10,20,30}, *pa = a;
Напишете стойността на следните изрази:
(да) a[0] + a[1] == 30
(не) a[1] + pa[1] == 5

5. Дадени са дефиниции на класа One обекти и указатели от този клас:
class One {
public:
    One() { data = 0; }
    void print() { cout << data; }
private:
    int data;
};
One one, *p_one=&one, &r_one=one;
Верни ли са дадените обръщения към член-функцията print от главната функция main?
(да) one.print()
(не) one::print()

6. Разгледайте програмата, дадена във файла clock3.cpp и посочете верните и грешни твърдения.
(да) Векторът clocks е полиморфна колекция от различни часовници.
(не)  Изразът clocks[i]->get_minutes() е реализация на динамично свързване.

7. Дадена са следните дефиниции на класове:
      class Point { ... };
      class Circle : public Point { ... };
Определете верните и неверните твърдения за връзките между класовете Point и Circle:
(да) Класът Circle е производен клас на класа Point.
(не) Частните членове на Point са частни членове на Circle.

8. Нека класът D наследява класа B, b е обект от класа Bd е обект от класа D, pb е указател от класа B и pd е указател от класа D. Кои от следните оператори са верни и кои - не?
(да) b = d;
(не) d = b;

9. Дадени са следните дефиниции на класове:
class A {
public:
  void af();
... };
class B : public A {
public:
  void bf();
... };
и обекти oa от клас A и ob от клас B. Отбележете верни/неверни оператори (относно синтаксис) за извикване на член-функциите af и bf от блока на функция main.
(да) oa.af();
(не) oa.bf();

10. Отбележете верните/неверните твърдения за виртуални функции и полиморфизъм.
(да) Извикване на виртуална функция е по-бавно от извикване на невиртуална функция.
(не) Когато член-функция се вика чрез указател (с операция ->), тя винаги е статично свързана.

11. Дадени са файловите променливи:
ifstream fin;
ofstream fout;
fstream f;
и променливите
int k = 10;
double x = 15.5;
char ch = 'N';
string s = "alabala";
Отбележете верните оператори.
(не) fout >> x;
(да) fout << x << " " << s;

12. Отбележете верните и неверни твърдения относно йерархията на потоковите класове.
(да) fstream е производен на iostream.
(не) fstream е производен на ofstream.

13. Отбележете верните и неверни твърдения за потокови класове, обекти и член-функции.
(да) Член-функцията get е дефинирана за istream обекти.
(не) Член-функцията getline е дефинирана за istream обекти.

14. Даден е следният команден ред:
>myprog -a -b2 dict.txt < inp.txt > out.txt
при което операционната система стартира и успешно изпълнява програма myprog.
Вярно ли е следното обяснение:
(да) Името на изпълнимия файл е myprog.exe в ОС Windows.
(не) Броят на аргументите от командния ред е 6.

15.  От главната функция main във файла database.cpp определете верността на твърденията.
(да) Операторът fs.seekg(0, ios::end); премества позицията за четене в края на файла.
(не) Стойността на променливата nrecord е големината на файла.