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