ТЕСТ 2

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

Отбележете верни/грешни (с "да"/"не") твърдения за функции.
(да) Оператор return може да върне стойност на израз.
(не) Всяка функция трябва да съдържа none един оператор return.

Дадена е следната декларация на функция:
    int mark(int val, int& ref);
Отбележете верните и неверни оператори, съдържащи извикване на функцията. Предполгаме, че цялата променлива com е дефинирана и има стойност 0.
(да) cout << mark(10, com);
(не) cout << mark(com, 2);

Дадена е следната дефиниция на функция:
int hard(int n)
{
    if (n % 3 > 1) return n%2;
    else return (n + 1)%2;
}
Напишете изведената на екрана стойност.
(0) cout << hard(2);
(1) cout << hard(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);