ОО1/Јануар 2022

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

Г1

1. задатак

Шта је тачно за наведени исечак кода на језику C++?

#include <iostream>

using namespace std;

int main() {
	int niz[] = { 1, 2, 3 };
	int i;
	cin >> i;
	cout << niz[i];
}
  1. Постоји проблем цурења меморије.
  2. Низ има тачно 3 елемената.
  3. Постоји проблем са висећим показивачем.
  4. Ако се на стандардни улаз упише 1, програм ће исписати 1.

2. задатак

Шта је могуће ставити уместо ??? на овом исечку кода на језику C++?

#include <iostream>
using namespace std;

int main() {
	char slova[] = "slova";
	char* const pk = slova;
    ???
}
  1. pk++;
  2. (*pk)++;
  3. pk = "xyz";
  4. char c = pk[1];
  5. pk[0] = 'a';

Објашњење: pk је константни показивач на цхар што значи да не може да се промени на шта он показује, тако да су први и трећи одговори нетачни. Други и пети одговори су тачни јер је само показивач константан, а не променљива на коју показује.

3. задатак

Шта је могуће ставити уместо ??? на овом исечку кода на језику C++?

#include <iostream>
using namespace std;

class X {
	int a;
public:
	static int y;
	int b;
private:
	static int x;
};

int X::y = 1;
int X::x = 2;

int main() {
	X obj;
    ???
}
  1. obj.a = 5;
  2. obj.b = 5;
  3. obj.y = 5;
  4. obj.x = 5;
  5. X::y = 5;

4. задатак

Шта исписује следећи код на програмском језику C++?

#include <iostream>
using namespace std;

class X {
public:
	static X&& kreiraj() { X* pk = new X(); return static_cast<X&&>(*pk); }
	void metod()& { cout << 1; }
	void metod()&& { cout << 2; }
};

int main() {
	X x;
	x.metod();
	X::kreiraj().metod();
}
  1. Програм се не преводи.
  2. 1
  3. 11
  4. 12
  5. 21

5. задатак

Шта исписује следећи код на програмском језику C++?

#include <iostream>

using namespace std;

class A {
public:
	A() { cout << "0"; }
};

class B{
	A a;
public:
	B() { cout << "1"; }
};

class C : public B {
	A a;
public:
	C() { cout << "2"; }
};

int main() {
	C c;
}
  1. Програм се не преводи.
  2. 0120
  3. 0102
  4. Ниједан од понуђених одговора.

6. задатак

Шта је тачно од следећих навода о преклапању оператора на језику C++?

  1. Ако се преклопи оператор new губи се подразумевани конструктор.
  2. Када се преклапа (), оператор може да прими произвољно параметара али сви морају да буду стандардног типа.
  3. Функцијска класа је класа која преклапа барем један од оператора () [] ->.
  4. Класа може имати више преклопњених new оператора.
  5. new оператор се преклапа као статички метод.

7. задатак

Шта је тачно од следећих навода о апстрактним класама на језику C++?

  1. Апстрактна класа је она која има барем једну апстрактну методу.
  2. Статички метод може да буде апстрактан.
  3. Класа може бити апстрактна ако су јој деструктор и све методе конкретне.
  4. Да би изведена класа била конкретна, мора да конкретизује све апстрактне методе.
  5. Апстрактна класа се означава са abstract у дефиницији пре class.

8. задатак

Шта је тачно од следећих навода о шаблонским класама на језику C++?

  1. Може се изводити из шаблонских класа.
  2. Шаблонска класа не може имати виртуелне методе.
  3. Шаблонски методи не могу бити виртуелни.
  4. ??
  5. ??

9. задатак

Шта је тачно од следећих навода о виртуелним методама на језику C++?

  1. Деструктор може да буде виртуелан.
  2. Конструктор може да буде виртуелан.
  3. Статички метод може да буде виртуелан.
  4. Пријатељска глобална функција може бити виртуелна.
  5. Нестатички метод може да буде виртуелан.

10. задатак

Шта је тачно од следећих навода о руковаоцима изузетака на језику C++?

  1. Руковалац типа double може да прихвати изузетке типа int.
  2. Руковалац типа ... прихвата све типове изузетака.
  3. Руковалац типа int може да прихвати изузетке типа double.
  4. Изузетак може да се баци из try блока.
  5. Изузетак не може да се баци из catch блока.

Г3