ТЕСТ 3

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

Стойността на цялата променлива far е получена от входния поток. Безкраен ли е даденият цикъл?
(да) do far--; while (true);
(не) do far--; while(far > 0);

Напишете "да", ако тялото на цикъла ще се изпълни точно веднъж. Цялата променлива beep има стойност 1.
(да) while(beep == 1) beep++;
(не) while(beep > 0) beep++;

Отбележете верните и грешни оператори за цикъл относно синтаксис. Променливите a и b са от тип int.
(да) for(a=-1; a < 4; a++) cout << a*b;
(не) do b++ while (a < b);

Верни ли са дадените твърдения за вектори в езика С++?
(да) Векторът е наредено множество от елементи от един и същи тип.
(не) Валидни стойности за индекси на вектор са от 1 до размера на вектора.

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

Отбележете верните/неверните твърдения за масиви.
(да) При дефиниране на масив е задължително да се зададе броя на елементите му.
(не) Допустимите стойности за индекс на елемент на масив са от 0 до размера на масива.

Дадени са следните дефиниции:
   string s = "ABC";
   char c[] = "1234";

Посочете верните и грешни оператори.
(да) s = "Wrong";
(не) s = c;

Единична матрица 3х3 е записана в двумерния масив m, дефиниран така:
    int m[3][3];
Определете верни и грешни оператори за присвояване относно синтаксис и граници на индекси.
(да) m[2][1] = 2;
(не) m[0] = 2;

Разгледайте програмата от примера за намиране на всички съответствия (файл matches.cpp). Заместваме оператора за цикъл в главната програма със следния нов оператор за цикъл:
   for (int j = 0; j < matches.size(); j++)
                  cout << matches[j] << " ";

Какво ще отпечати променената програма, ако извикаме функцията find_all_between с дадените числа за втори и трети актуален параметър?  Отговорете с "ДА", ако е правилно даденото съответствие:
втори параметър, трети параметър: отпечатените от програмата числа.
(да) 45000.0, 65000.0: 1 2 4
(не) 10000.0, 65000.0: 1

Напишете върнатата стойност на функцията approx_equal, дефинирана във файла sqrtest1.cpp при следните стойности на параметрите:
(true) 0, 0
(false) 1, 0

Дали стойността на израза е случайно число в зададения интервал?
(не) rand()%6, [0,6]
(да) 1 + rand()%6, [1,6]

Разгледайте програмата за решаване на задачата за най-добро отношение цена-качество на компютри с отбелязване на най-добрата оферта в списъка от входа - решение без успоредни вектори и с класове (файл bestval2.cpp). Ще има ли синтактична грешка, ако добавим дадения оператор в текста на програмата преди оператора return 0;? ("да" - ще има, "не" - няма да има).
(да) products.print();
(не) products[0].print();

Дадена е дефиниция на клас и глобален масив от обекти от този клас:
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);