2. Дадена е следните дефиниции на класове:
class Point { ... };
class Circle : public Point { ... };
Отбележете верните твърдения за връзките между класовете Point
и Circle:
+ Класът Circle е производен
клас на класа Point.
- Класът Point е производен клас на
класа Circle.
3. Даден е двусвързан списък, състоящ се от 3 елемента. Полето nt
сочи към следващ елемент, а полето pv - предишен елемент
от списъка.
struct Item { Item *nt, *pv; int k; };
Item *h;
h е указател за началото на списъка. Отбележете верните
твърдения.
+ (h->nt)->nt е адресът на последния елемент от списъка.
- (h->nt)->nt е нулев адрес.
4. Отбележете верните дефиниции и твърдения за структури от данни и
свързани списъци.
+ Листата на двоичните дървета нямат наследници.
- Двоичното дърво е линейна структура от данни.
5. Даден е аритметичния израз a/(b+c)*d-e*f и е представен
като двоично дърво. Дадени са метод за обхождане и низ. Отбележете случайте,
низът е подниз на генерираният от дадения вид обхождане на двоичното дърво.
+ длк: bc
- дкл: ef
6. Дадени са числа в скоби, от които трябва да се получи търсещо дърво.
Отбележете случайте, когато числото извън скобите е максималното ниво на
връх в полученото търсещо дърво.
+ (5,2,6,1) 2
- (8,10,5,6,1,9,15) 3
7. Дадена е думата МАТЕМАТИКА. Отбележете съответствията
на срещащите се букви и крайни редици от 0 и 1, които са оптимални кодове
от алгоритъма на Хъфман за тази дума.
+ К-0001 И-0000 М-10 А-01 Т-11 Е-001
- К-111 И-110 М-10 А-01 Т-001 Е-100
8. Дадени са дефиниции на класа One, обекти и указатели
от този клас:
class One {
public:
One() { data = 0;
}
int get_data() {
return data; }
private:
int data;
};
One one, *p_one=&one, &r_one=one;
Отбележете правилното извикване на член-функцията get_data
от главната функция main.
+ one.get_data()
- (*one)->get_data()
9. Дадени са следните дефиниции:
double d=2.5;
double *p_d1=&d, *p_d2=new double(0.5);
Отбележете верните оператори.
+ p_d1 = new double;
- *p_d2 = p_d1;
10. Дадени са двете рекурсивни функции:
int f(int n)
{ if (n==0) return 2;
return f(n-1) + g(n-1);
}
int g(int n)
{ if (n==0) return 1;
return f(n-1) - g(n-1);
}
Отбележете онези аритметични изрази, чиято стойност е степен на двойката.
+ f(0)
- 2 + g(0)
11. Даден е масив:
int cats[5] = {5, 10, 5};
Отбележете изразите със стойност 10.
+ cats[0] + *(cats+2)
- cats + 1
12. Отбележете верните изрази със стандартни (вградени) операции в С++.
Смятаме, че използваните променливи са дефинирани от необходимите за конкретната
операция типове.
+ ala + bala
- && hohohoho