ТЕСТ 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);