ОО1/Јануар 2022

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

G1

1. zadatak

Šta je tačno za navedeni isečak koda na jeziku C++?

#include <iostream>

using namespace std;

int main() {
	int niz[] = { 1, 2, 3 };
	int i;
	cin >> i;
	cout << niz[i];
}
  1. Postoji problem curenja memorije.
  2. Niz ima tačno 3 elemenata.
  3. Postoji problem sa visećim pokazivačem.
  4. Ako se na standardni ulaz upiše 1, program će ispisati 1.

2. zadatak

Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku 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';

Objašnjenje: pk je konstantni pokazivač na char što znači da ne može da se promeni na šta on pokazuje, tako da su prvi i treći odgovori netačni. Drugi i peti odgovori su tačni jer je samo pokazivač konstantan, a ne promenljiva na koju pokazuje.

3. zadatak

Šta je moguće staviti umesto ??? na ovom isečku koda na jeziku 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. zadatak

Šta ispisuje sledeći kod na programskom jeziku 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. Program se ne prevodi.
  2. 1
  3. 11
  4. 12
  5. 21

5. zadatak

Šta ispisuje sledeći kod na programskom jeziku 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. Program se ne prevodi.
  2. 0120
  3. 0102
  4. Nijedan od ponuđenih odgovora.

6. zadatak

Šta je tačno od sledećih navoda o preklapanju operatora na jeziku C++?

  1. Ako se preklopi operator new gubi se podrazumevani konstruktor.
  2. Kada se preklapa (), operator može da primi proizvoljno parametara ali svi moraju da budu standardnog tipa.
  3. Funkcijska klasa je klasa koja preklapa barem jedan od operatora () [] ->.
  4. Klasa može imati više preklopnjenih new operatora.
  5. new operator se preklapa kao statički metod.

7. zadatak

Šta je tačno od sledećih navoda o apstraktnim klasama na jeziku C++?

  1. Apstraktna klasa je ona koja ima barem jednu apstraktnu metodu.
  2. Statički metod može da bude apstraktan.
  3. Klasa može biti apstraktna ako su joj destruktor i sve metode konkretne.
  4. Da bi izvedena klasa bila konkretna, mora da konkretizuje sve apstraktne metode.
  5. Apstraktna klasa se označava sa abstract u definiciji pre class.

8. zadatak

Šta je tačno od sledećih navoda o šablonskim klasama na jeziku C++?

  1. Može se izvoditi iz šablonskih klasa.
  2. Šablonska klasa ne može imati virtuelne metode.
  3. Šablonski metodi ne mogu biti virtuelni.
  4. ??
  5. ??

9. zadatak

Šta je tačno od sledećih navoda o virtuelnim metodama na jeziku C++?

  1. Destruktor može da bude virtuelan.
  2. Konstruktor može da bude virtuelan.
  3. Statički metod može da bude virtuelan.
  4. Prijateljska globalna funkcija može biti virtuelna.
  5. Nestatički metod može da bude virtuelan.

10. zadatak

Šta je tačno od sledećih navoda o rukovaocima izuzetaka na jeziku C++?

  1. Rukovalac tipa double može da prihvati izuzetke tipa int.
  2. Rukovalac tipa ... prihvata sve tipove izuzetaka.
  3. Rukovalac tipa int može da prihvati izuzetke tipa double.
  4. Izuzetak može da se baci iz try bloka.
  5. Izuzetak ne može da se baci iz catch bloka.

G3