ТЕСТ 2
     
    
      въпросите на теста, един верен отговор (да), и един грешен
          "отговор" (не)
      
    
    
Отбележете верни/грешни (с "да"/"не")
    твърдения за функции. 
    (да) Оператор return може да върне стойност на израз. 
    (не) Всяка функция трябва да съдържа none един оператор return.
    
    
Дадена е следната декларация на функция: 
        int mark(int val, int& ref); 
    Отбележете верните и неверни оператори, съдържащи извикване на
    функцията. Предполгаме, че цялата променлива com е
    дефинирана и има стойност 0. 
    (да) cout << mark(10, com); 
    (не) cout << mark(com, 2); 
    
Дадена е следната дефиниция на функция: 
    int hit(int n) 
     { 
         if (n % 3 > 1) return n%2; 
         else return (n + 1)%2; 
     } 
    Напишете изведената на екрана стойност.
    (0) cout << hit(2); 
    (1) cout << hit(4); 
    
Отбележете верните (с "да") и неверните (с
    "не") твърдения за класове. 
    (да) Конструктор без параметри се нарича конструктор по
    подразбиране. 
    (не) Всяка член-функция има най-малко един явен параметър. 
    
Отбележете с "да" верните декларации на
    функции, които могат да бъдат конструктори на класове. Другите
    оператори отбележете с "не".
    (да) Date(); 
    (не) int Time(); 
    
Дефиниран е класът 
    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.
    Отбележете с "да" операторите, които могат да се срещат в блока на
    тази функция. 
    (да) Product q; 
    (не) string s = p.name; 
    
Отбележете верни/неверни твърдения относно
    следната дефиниция на член-функция: 
    Employee::Employee(string employee_name, int initial_salary) 
     { 
         name = employee_name; 
         salary = initial_salary; 
     } 
    (да) Това е дефиниция на конструктор на класа Employee. 
    (не) initial_salary е частен член (данна) на класа Employee.
    
Еквивалентни ли са логическите изрази,
    дадени като (1) и (2)?
    (да) (1) country == "USA" && state != "AK" 
         (2) ! (country != "USA" || state == "AK")
    (не) (1) country == "USA" && state != "HI"
          (2) ! (country != "USA" && state ==
      "HI")
    
 Дадени са следните дефиниции на променливи:
       double a, x;
        bool flag1, flag2;
    Може ли да се приложат отложени пресмятания за дадения
    логически израз?
    (да) cin.fail() || (a < 0)
    (не) !(x >= 0)
    
    
    Колко
      пъти ще се извика функцията digit_name от програмата int_name.cpp,
      при следното изикване на функцията int_name:
      (0) int_name(10); 
      (1) int_name(200); 
    
 Вявно ли е твърдението за върнатата
    стойност на функцията? 
    int cap(int a)
    {   
          if (a > 4) a--;
        else if (a > 2) a++; else a--;
        if (a > 6) 
        {   if (a < 8) a++; else
      a--;
            if (a == 7) a++;
        }
        return a;
    }
    (да) cap(1)връща 0
    (не) cap(1)връща 1 
    
Може ли функцията raise_salary,
    дефинирана във файла raisesal.cpp, да бъде извикана по
    следния начин (при условие, че е дефиниран обект harry от
    клас Employee)?
    (да) raise_salary(harry, 5); 
    (не) raise_salary(harry);
    
Разгледайте текста на програмата от файла
    employee.cpp.  Посочете верни (с "да") и грешни (с
    "не") твърдения за параметри на функции, викани от главна функция main.
    (да) Обект harry е явен фактически параметър на функцията
    print в оператора print(harry);.
    (не) Обект harry е неявен параметър на функцията print
    в оператора print(harry);.
    
Отбележете верните (с "да") и грешните (с
    "не") оператори за цикъл относно синтаксис. Променливите t, y,
      h и k са от тип int.
    Променливите a и b също са от тип int
    и имат стойност 1.
    (да) for(t = -1; t < 4; t++) cout << t;
    (не) do ( b++; ) while (a < b);  
    
Отбележете с "да" безкрайните цикли, а с
    "не" - крайните. Цялата променлива k има стойност 0.
    (да) for(;;) cout << k;
    (не) for(; k > 0;) cout << k;
    
Стойността на цялата променлива far
    е получена от входния поток. Безкраен ли е даденият цикъл?
    (да) do far--; while (true);
    (не) do far--; while(far > 0);
    
 Напишете "да", ако тялото на цикъла ще се изпълни
    точно веднъж и "не" в противен случай. Цялата променлива beep
    има стойност 1.
    (да) do beep++; while(beep < 0);
    (не) do beep--; while(true);