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

Извор: SI Wiki
< ОО1
Датум измене: 31. октобар 2020. у 02:49; аутор: KockaAdmiralac (разговор | доприноси) (Zadaci i rešenja sa probnog testa na Moodle kursu)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени. Притисните на следеће дугме како бисте их сакрили или открили:
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако. Притисните на следеће дугме како бисте их открили или сакрили:

Први тест

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

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. Класа А нема подразумевани конструктор.