ОО1/Јануар 2022
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
Г1
1. задатак
Шта је тачно за наведени исечак кода на језику C++?
#include <iostream>
using namespace std;
int main() {
int niz[] = { 1, 2, 3 };
int i;
cin >> i;
cout << niz[i];
}
- Постоји проблем цурења меморије.
- Низ има тачно 3 елемената.
- Постоји проблем са висећим показивачем.
- Ако се на стандардни улаз упише 1, програм ће исписати 1.
2. задатак
Шта је могуће ставити уместо ??? на овом исечку кода на језику C++?
#include <iostream>
using namespace std;
int main() {
char slova[] = "slova";
char* const pk = slova;
???
}
pk++;(*pk)++;pk = "xyz";char c = pk[1];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;
???
}
obj.a = 5;obj.b = 5;obj.y = 5;obj.x = 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
- 11
- 12
- 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;
}
- Програм се не преводи.
- 0120
- 0102
- Ниједан од понуђених одговора.
6. задатак
Шта је тачно од следећих навода о преклапању оператора на језику C++?
- Ако се преклопи оператор
newгуби се подразумевани конструктор. - Када се преклапа
(), оператор може да прими произвољно параметара али сви морају да буду стандардног типа. - Функцијска класа је класа која преклапа барем један од оператора
() [] ->. - Класа може имати више преклопњених
newоператора. newоператор се преклапа као статички метод.
7. задатак
Шта је тачно од следећих навода о апстрактним класама на језику C++?
- Апстрактна класа је она која има барем једну апстрактну методу.
- Статички метод може да буде апстрактан.
- Класа може бити апстрактна ако су јој деструктор и све методе конкретне.
- Да би изведена класа била конкретна, мора да конкретизује све апстрактне методе.
- Апстрактна класа се означава са
abstractу дефиницији преclass.
8. задатак
Шта је тачно од следећих навода о шаблонским класама на језику C++?
- Може се изводити из шаблонских класа.
- Шаблонска класа не може имати виртуелне методе.
- Шаблонски методи не могу бити виртуелни.
- ??
- ??
9. задатак
Шта је тачно од следећих навода о виртуелним методама на језику C++?
- Деструктор може да буде виртуелан.
- Конструктор може да буде виртуелан.
- Статички метод може да буде виртуелан.
- Пријатељска глобална функција може бити виртуелна.
- Нестатички метод може да буде виртуелан.
10. задатак
Шта је тачно од следећих навода о руковаоцима изузетака на језику C++?
- Руковалац типа
doubleможе да прихвати изузетке типаint. - Руковалац типа
...прихвата све типове изузетака. - Руковалац типа
intможе да прихвати изузетке типаdouble. - Изузетак може да се баци из
tryблока. - Изузетак не може да се баци из
catchблока.