ОО1/Пробни тестови 2020
- За питања са више одговора, тачни одговори су подебљани и уоквирени. Притисните на следеће дугме како бисте их сакрили или открили:
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако. Притисните на следеће дугме како бисте их открили или сакрили:
Први тест
На сваком питању је било или могуће изабрати једно или више решења или унети одговор у поље.
1. задатак
Приликом реупотребе објектно оријентисаног кода извођењем, у начелу се стари код (постојећа класа - основа за извођење):
- не мора мењати ни поново преводити и тестирати.
- не мора мењати, али се мора поново преводити и тестирати.
- не мора мењати, мора поново преводити, али се не мора поново тестирати.
- мора мењати и поново преводити и тестирати.
- уопште не може искористити.
2. задатак
Која наредба омогућава коришћење имена X из простора имена Y простим именовањем X, уколико не постоји конфликт имена?
decltype Y;using namespace Y;using Y::X;namespace Y.X;using Y;
3. задатак
Шта исписује следећи програм на језику C++?
#include <iostream>
struct S1{
int a;
int b;
};
struct S2{
S1 a;
int b[3][2];
};
int main() {
S2 s={1,2,{{3},{},{4,5}}};
std::cout<<s.b[2][0];
}
Одговор: 4
4. задатак
Шта је дозвољено да стоји на месту наредбе ###?
#include <iostream>
struct A{
A(){}; //podrazumevani konstruktor strukture A
int x;
const int y=1;
mutable int z;
};
int main(){
A a1;
const A a2;
###
}
a2.z=1;a1.y=1;a2.y=1;a1.x=1;a1.z=1;a2.x=1;
5. задатак
Које функције су исправне, јер враћају референцу на "жив" објекат?
int& f(int &i){int r=i; return r; }int& f(int i){return i; }int& f(int &i){return *new int(i); }int& f(int &i){int &r=*new int(i); return r; }int& f(int &i){return i; }int& f(int &i){int r=*new int(i); return r; }
6. задатак
Који од следећих исказа су тачни на језику C++?
- Класа може имати више приватних секција.
- Из метода позваног за неки објекат се не може приступити приватном атрибуту другог објекта исте класе.
- Јавној секцији класе могу приступати само јавни методи класе, а приватној секцији само приватни методи.
- Члановима у приватној секцији класе може приступати само јавни метод исте класе.
- Подразумевана секција класе је јавна.
7. задатак
За непроменљив и непостојан (const volatile) објекат класе могу да се позивају методи те класе са наведеним следећим модификаторима (који одређују природу текућег објекта):
inlineconstvolatileconst volatile- без модификатора
8. задатак
Нека је дата дефиниција класе Тест
class Test{
Test(){}
};
За које од следећих линија кода у функцији маин() ће преводилац пријавити грешку?
Test test;Test* test = new Test();Test test();Test* test;Test test{};
9. задатак
Шта исписује дати програм на језику C++?
#include <iostream>
using namespace std;
class A {
public:
A() { cout << "A"; }
A(int a) { cout << "A" << a; }
};
class B {
A a;
public:
B() { cout << "B"; }
B(int b) { cout << "B" << b; }
};
class C {
B b;
A a;
public:
C() { cout << "C"; }
C(int c) : a(c) { cout << "C" << c; }
};
int main() {
C c(1);
return 0;
}
Одговор: АБА1Ц1
10. задатак
Која тврђења су тачна за дати програмски код написан на језику C++?
class A {
int i;
public:
A(int ii=2) { i = ii; }
};
- Класа А има конверзиони конструктор.
- Класа А има један конструктор.
- Објекат класе А се може створити позивањем конструктора који нема ниједан параметар.
- Објекат класе А се може створити позивањем конструктора који има један аргумент.
- Класа А нема подразумевани конструктор.