ТЕСТ 4

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

Отбележете верните (и грешни)  оператори за дефиниране на променливи, константи и обекти от класовете Time и Employee ("Низове и обекти").
(да) int one = 3;
(не) Time day(30);

Отбележете верните (и неверни) оператори за вход и изход. Предполагаме, че всички променливи, използвани в изразите, са дефинирани правилно.
(да) cout << "C++\n";
(не) cout >> n;

Дадени са следните дефиниции на променливи:
int k = 2;
double x = 0.5;
Пресметнете аритметичните изрази в С++ и отбележете с ДА тези, които имат стойност 10 (като цяло число) или 10.0 (като число тип double).
(да) 20 * x
(не) 8 * x + k

Дадени са следните дефиниции на низови променливи:
string n = "Good morning";
string m = "By-by";

Отбележете синтактично верните (и неверните) оператори.

(да) cout << n.substr(0,2);
(не) cout << length(m);

Отбележете синтактично верни (и неверни) оператори за цикъл на С++. Предполагаме, че mark е дефинирана цяла променлива. 
(да) for(mark = -1; mark < 4; mark++) cout << mark;
(не) for(mark = 0, mark < 5, mark++) mark--;

Напишете стойността на следните изрази, съдържащи сравнения и логически операции: 
(true) "Harry" < "Hurry" 
(false) !(8 > 2)

Нека info е цяла променлива с текуща стойност 0. Напишете ДА, ако даденият цикъл ще се изпълни само веднъж и НЕ във всеки друг случай. 
(да) while (info <= 0) info++; 
(не) while (info > 0) info--; 

Отбележете с ДА само безкрайните цикли. Променливата k е дефинирана и има стойност 0.
(да) for(;;) cout << k;
(не) for(; k > 0;) cout << k;

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

Зададена е следната функция:
int main()
{  int count = 0;
   string word;
   while (cin >> word) count++;
   cout << count << " words.\n";
   return 0;  
}
Вярно ли е следното твърдение?
(да) count е име на променлива. 
(не) word е глобална променлива.

Даден е клас 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.
(да) b.get_t().pop_back(); 
(не) cout << b.get_t(); 

Дадена е дефиниция на клас и глобален масив от обекти от този клас:
class Arr {
public:
    Arr()
    { for(int i=0; i<10; i++) a[i]=i*i; }
    int geta(int i) const { return a[i]; }
private:
    int a[10];
};
Arr arr[3];
Синактически и логически верен ли е даденият оператор в блока на  функция main ?
(да) cout << arr[0].geta(3);
(не) cout << arr[3].geta(0);

Даден е вектор и стойности на елементите му.
   vector<int> sol(2);
  
sol[0] = 10;
  
sol[1] = 12;
Отбележете верните (и грешни) оператори.
(да) int k = sol.size();
(не) cin >> sol[2];

Даден е класът 
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; 
(не) string s = p.name; 

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

Дадени са следните дефиниции:
double d=2.5;
double *pd1=&d, *pd2=new double(0.5);
Верни ли са написаните оператори за присвояване?
(да) pd1 = new double;
(не) |pd2 = double;

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