ОО1/Пробни тестови 2020
- Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni. Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili:
- Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: ovako. Pritisnite na sledeće dugme kako biste ih otkrili ili sakrili:
Prvi test
Na svakom pitanju je bilo ili moguće izabrati više rešenja ili uneti odgovor u polje.
1. zadatak
Prilikom reupotrebe objektno orijentisanog koda izvođenjem, u načelu se stari kod (postojeća klasa - osnova za izvođenje):
- ne mora menjati ni ponovo prevoditi i testirati.
- ne mora menjati, ali se mora ponovo prevoditi i testirati.
- ne mora menjati, mora ponovo prevoditi, ali se ne mora ponovo testirati.
- mora menjati i ponovo prevoditi i testirati.
- uopšte ne može iskoristiti.
2. zadatak
Koja naredba omogućava korišćenje imena X iz prostora imena Y prostim imenovanjem X, ukoliko ne postoji konflikt imena?
decltype Y;
using namespace Y;
using Y::X;
namespace Y.X;
using Y;
3. zadatak
Šta ispisuje sledeći program na jeziku 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];
}
Odgovor: 4
4. zadatak
Šta je dozvoljeno da stoji na mestu naredbe ###
?
#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. zadatak
Koje funkcije su ispravne, jer vraćaju referencu na "živ" objekat?
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. zadatak
Koji od sledećih iskaza su tačni na jeziku C++?
- Klasa može imati više privatnih sekcija.
- Iz metoda pozvanog za neki objekat se ne može pristupiti privatnom atributu drugog objekta iste klase.
- Javnoj sekciji klase mogu pristupati samo javni metodi klase, a privatnoj sekciji samo privatni metodi.
- Članovima u privatnoj sekciji klase može pristupati samo javni metod iste klase.
- Podrazumevana sekcija klase je javna.
7. zadatak
Za nepromenljiv i nepostojan (const volatile
) objekat klase mogu da se pozivaju metodi te klase sa navedenim sledećim modifikatorima (koji određuju prirodu tekućeg objekta):
inline
const
volatile
const volatile
- bez modifikatora
8. zadatak
Neka je data definicija klase Test
class Test{
Test(){}
};
Za koje od sledećih linija koda u funkciji main() će prevodilac prijaviti grešku?
Test test;
Test* test = new Test();
Test test();
Test* test;
Test test{};
9. zadatak
Šta ispisuje dati program na jeziku 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;
}
Odgovor: ABA1C1
10. zadatak
Koja tvrđenja su tačna za dati programski kod napisan na jeziku C++?
class A {
int i;
public:
A(int ii=2) { i = ii; }
};
- Klasa A ima konverzioni konstruktor.
- Klasa A ima jedan konstruktor.
- Objekat klase A se može stvoriti pozivanjem konstruktora koji nema nijedan parametar.
- Objekat klase A se može stvoriti pozivanjem konstruktora koji ima jedan argument.
- Klasa A nema podrazumevani konstruktor.