ТЕСТ 3

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


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

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

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

Разгледайте програмата от примера за намиране на всички съответствия (файл 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

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

Даден е клас 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();

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

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

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

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

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

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

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

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

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

Дадени са следните дефиниции:
     int a[3] = {10,20,30}, *pa = a;
Напишете стойността на следните изрази:
(true) a[0] + a[1] == 30
(false) a[1] + pa[1] == 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()