ОО1/Пробни тестови 2020

Извор: SI Wiki
< ОО1
Датум измене: 5. децембар 2020. у 18:15; аутор: KockaAdmiralac (разговор | доприноси) (Dodat IR probni kolokvijum (izvor: `<@763870722241593364>`); nisu postavljena rešenja 1. i 3.)
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени.
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако.
  • Притисните на следеће дугме како бисте их сакрили или открили:

Први тест

На сваком питању је било или могуће изабрати једно или више решења или унети одговор у поље.

1. задатак

Приликом реупотребе објектно оријентисаног кода извођењем, у начелу се стари код (постојећа класа - основа за извођење):

  1. не мора мењати ни поново преводити и тестирати.
  2. не мора мењати, али се мора поново преводити и тестирати.
  3. не мора мењати, мора поново преводити, али се не мора поново тестирати.
  4. мора мењати и поново преводити и тестирати.
  5. уопште не може искористити.

2. задатак

Која наредба омогућава коришћење имена X из простора имена Y простим именовањем X, уколико не постоји конфликт имена?

  1. decltype Y;
  2. using namespace Y;
  3. using Y::X;
  4. namespace Y.X;
  5. 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;
    ###
}
  1. a2.z=1;
  2. a1.y=1;
  3. a2.y=1;
  4. a1.x=1;
  5. a1.z=1;
  6. a2.x=1;

5. задатак

Које функције су исправне, јер враћају референцу на "жив" објекат?

  1. int& f(int &i){int r=i; return r; }
  2. int& f(int i){return i; }
  3. int& f(int &i){return *new int(i); }
  4. int& f(int &i){int &r=*new int(i); return r; }
  5. int& f(int &i){return i; }
  6. int& f(int &i){int r=*new int(i); return r; }

6. задатак

Који од следећих исказа су тачни на језику C++?

  1. Класа може имати више приватних секција.
  2. Из метода позваног за неки објекат се не може приступити приватном атрибуту другог објекта исте класе.
  3. Јавној секцији класе могу приступати само јавни методи класе, а приватној секцији само приватни методи.
  4. Члановима у приватној секцији класе може приступати само јавни метод исте класе.
  5. Подразумевана секција класе је јавна.

7. задатак

За непроменљив и непостојан (const volatile) објекат класе могу да се позивају методи те класе са наведеним следећим модификаторима (који одређују природу текућег објекта):

  1. inline
  2. const
  3. volatile
  4. const volatile
  5. без модификатора

8. задатак

Нека је дата дефиниција класе Тест

class Test{
    Test(){}
};

За које од следећих линија кода у функцији маин() ће преводилац пријавити грешку?

  1. Test test;
  2. Test* test = new Test();
  3. Test test();
  4. Test* test;
  5. 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; }
};
  1. Класа А има конверзиони конструктор.
  2. Класа А има један конструктор.
  3. Објекат класе А се може створити позивањем конструктора који нема ниједан параметар.
  4. Објекат класе А се може створити позивањем конструктора који има један аргумент.
  5. Класа А нема подразумевани конструктор.

ИР К2

1. задатак

Простор на стеку се додељује:

  1. Локалним статичким објектима
  2. Глобалним статичким објектима
  3. Аргументима (параметрима) функција
  4. Динамичким објектима
  5. Локалним аутоматским објектима

2. задатак

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

#include <iostream>
int& f(int &x) {
    return ++x;
}
int main() {
    int x = 1;
    int z = 1;
    auto y = f(z);
    y++;
    std::cout << x << y << z;
}
  1. 133
  2. 233
  3. Програмски код се не преводи.
  4. 132
  5. 232

3. задатак

Које тврђење је тачно?

  1. Механизам преклапање[сиц] имена функција је потпуно статички, која функција ће се позвати одређује се у време превођења.
  2. Механизам преклапање[сиц] имена функција је потпуно динамички, која функција ће се позвати одређује се у време извршавања.
  3. Механизам преклапање[сиц] имена функција је потпуно статички, која функција ће се позвати одређује се у време извршавања.
  4. Механизам преклапање[сиц] имена функција је потпуно динамички, која функција ће се позвати одређује се у време превођења.

4. задатак

Која тврђења су тачна на програмском језику C++?

  1. Методи int f() & { return 1; } и int f() && { return 3; } могу постојати у истој класи.
  2. Методи int f() & { return 1; } и int f() const & { return 3; } могу постојати у истој класи.
  3. Методи int f() & { return 1; } и void f() & { } могу постојати у истој класи.

5. задатак

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

#include <iostream>
using namespace std;

class A
{
private:
    int b = 2;
    int c = 3;
public:
    A() : c(b+1), b(7) { b--; a = 2; }
    void pisi() { cout << a << b << c; }
private:
    int a = 1;
};

int main()
{
    A obj;
    obj.pisi();
    return 0;
}

Одговор: 268

6. задатак

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

#include <iostream>
using namespace std;

class A {
    static int stID;
    int ID = ++stID;
public:
    A() {}
    A(const A& a) {}
    A(A&& a) {}
    ~A() { cout << ID; }
};

int A::stID = 0;

void f1(A& a) {}
void f2(A a) {}

int main() {
    A x;
    for(int i = 0; i < 3; i++){
        A* y = new A;
        if (i == 1) f2(*y);
        if (i == 2) f1(*y);
    }
    return 0;
}

Одговор: 41

7. задатак

Која су тврђења тачна за пријатељске (friend) функције и класе?

  1. Ако је класа A пријатељ класе B и класа B пријатељ класе C, онда је и класа A пријатељ класе C.
  2. Функција m() која је пријатељ класи A може бити глобална функција.
  3. Ако класа A прогласи класу B за пријатеља, методи класе A имају приступ до приватних поља класе B
  4. Пријатељство између класа је симетрична релација.
  5. Функција m() која је пријатељ класи A може бити метод класе B.

8. задатак

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

  1. operator[]
  2. operator=
  3. operator()
  4. operator+
  5. operator<<

9. задатак

10. задатак