ТЕСТ 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 = "ABC";
char c[] = "1234";
Посочете верните и грешни оператори.
(да) 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()