ОО1/К1 2020
- За питања са више одговора, тачни одговори су подебљани и уоквирени.
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако.
- Притисните на следеће дугме како бисте их сакрили или открили:
Г1
1. задатак
Који је тип променљиве p
у следећем програму:
int main(void) {
int i = 1;
const int k = i;
auto p = new int + k;
return 0;
}
int
const int
int*
const int*
- Програм се не преводи.
2. задатак
Шта исписује следећи програм на језику C++?
#include <iostream>
int &f(int &x){
return ++x;
}
int main(void) {
std::cout << f(2);
}
- 6
- 0
- Програм се не преводи.
- 5
3. задатак
Име симбол представља низ референци на непроменљив показивач на инт. Како се декларише у коду?
- ...
- ...
int * const &simbol[]
- Декларација за симбол се не преводи.
?. задатак
- Исти задатак се нашао и на пробном колоквијуму за ИР.
Које тврђење је тачно?
- Механизам преклапање[сиц] имена функција је потпуно статички, која функција ће се позвати одређује се у време превођења.
- Механизам преклапање[сиц] имена функција је потпуно динамички, која функција ће се позвати одређује се у време извршавања.
- Механизам преклапање[сиц] имена функција је потпуно статички, која функција ће се позвати одређује се у време извршавања.
- Механизам преклапање[сиц] имена функција је потпуно динамички, која функција ће се позвати одређује се у време превођења.
?. задатак
- Исти задатак се нашао и на пробном колоквијуму за ИР.
Која тврђења су тачна на програмском језику C++?
- Методи
int f() & { return 1; }
иint f() && { return 3; }
могу постојати у истој класи. - Методи
int f() & { return 1; }
иint f() const & { return 3; }
могу постојати у истој класи. - Методи
int f() & { return 1; }
иvoid f() & { }
могу постојати у истој класи.
7. задатак
Шта исписује следећи програм на програмском језику C++:
#include <iostream>
using namespace std;
class K {
static int staticId;
int id = staticId++;
public:
K() = default;
K(const K&) {}
int m(K arg) {
return arg.id;
}
};
int K::staticId = 1;
int main()
{
K a;
K b;
K c(a);
cout << a.m(c);
}
- 1
- 2
- 5
- 3
- 4
- Више од 5.
Г2
1. задатак
Заокружити тачне тврдње у вези са референцама на језику C++:
- Могуће је дефинисати референцу на показивач.
- Могуће је дефинисати низ референци.
- Могуће је дефинисати референцу на референцу.
- Могуће је дефинисати показивач на референцу.
2. задатак
Шта исписује следећи програм на језику C++?
#include <iostream>
int &f(int &x){
return x++;
}
int main(void) {
int x = 5;
std::cout << f(x);
}
- 6
- 0
- Програм се не преводи.
- 5
4. задатак
Повезати тврдње у вези са модификаторима метода:
volatile б.
|
|
5. задатак
Заокружити тачне тврдње у вези са померајућим конструктором на језику C++:
- Дефинисањем подразумеваног конструктора брише се уграђени премештајући конструктор.
- Дефинисањем копирајућег конструктора брише се уграђени премештајући конструктор.
- Померајући конструктор мора да има само један параметар.
6. задатак
Заокружити тачне тврдње у вези са функцијама на језику C++:
- Могу се дефинисати више функција истог имена ако имају различити број параметара без подразумеваних вредности.
- Могу се дефинисати више функција истог имена ако су им различите повратне вредности.
- Не могу се дефинисати више функција истог имена, јер компајлер не би могао да их распозна.
- Могу се дефинисати више функција истог имена ако имају различите типове параметара.
7. задатак
Шта исписује следећи програм на програмском језику C++:
#include <iostream>
using namespace std;
class L {
L(const &L l) = delete;
};
class K {
static int staticId;
int id = staticId++;
L l;
public:
K() = default;
K(const K&) {}
int m(K arg) {
return arg.id;
}
};
int K::staticId = 1;
int main()
{
K a;
K b;
K c(a);
cout << a.m(c);
}
- 1
- 2
- Програм се не преводи
- 3
- 4
8. задатак
Шта исписује следећи програм на програмском језику C++?
#include <iostream>
using namespace std;
class Klasa {
static Klasa *napravi()
{
cout << 1;
return new Klasa{0};
}
Klasa *clan = napravi();
public:
Klasa() { cout << 2; }
Klasa(int a) : clan(nullptr) { cout << 3; }
};
int main() {
Klasa k;
}
Одговор: 132
9. задатак
Допунити XXX са линијом тако да је програм исправан:
#include <iostream>
class A {
A(const A& a) = delete;
public:
int n = 1;
A() = default;
A(A&& a) { };
};
void f(A a) {
std::cout << a.n;
}
int main(void)
{
XXX
return 0;
}
f();
A a; f(a);
-
f(A());
f(A);
10. задатак
Заокружити тачне тврдње у вези са статичким пољима у класама на језику C++:
- У дефиницији класе се могу дефинисати променљива статичка поља.
- Досег имена статичког поља је класа.
- Статичком пољу с из класе К се приступа користећи израз К.с.