ОО1/К1 2020 — разлика између измена
м (Delovi K1 za G1) |
|||
Ред 5: | Ред 5: | ||
== G1 == | == G1 == | ||
=== | === 1. zadatak === | ||
Koji je tip promenljive <code>p</code> u sledećem programu: | Koji je tip promenljive <code>p</code> u sledećem programu: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
int main(void) { | int main(void) { | ||
const int k = | int i = 1; | ||
const int k = i; | |||
auto p = new int + k; | auto p = new int + k; | ||
return 0; | return 0; | ||
Ред 40: | Ред 41: | ||
</div> | </div> | ||
=== | === 3. zadatak === | ||
Ime simbol predstavlja niz referenci na nepromenljiv pokazivač na int. Kako se deklariše u kodu? | |||
<div class="abc-list"> | <div class="abc-list"> | ||
# ... | # ... | ||
# ... | # ... | ||
# <code>int * const &simbol[]</code> | |||
# <span class="solution">Deklaracija za simbol se ne prevodi.</span> | |||
</div> | |||
=== ?. zadatak === | |||
Zaokružiti tačna tvrđenja u vezi sa preklapanjem imena funkcija na jeziku C++: | |||
<div class="abc-list"> | |||
# <span class="solution">Kada dve funkcije imaju isti naziv, statički tokom prevođenja programa se određuje koja funkcija će biti pozvana.</span> | |||
# Kada dve funkcije imaju isti naziv, dinamički tokom izvršenja programa se određuje koja funkcija će biti pozvana. | |||
# Kada dve funkcije imaju isti naziv, statički tokom izvršenja programa se određuje koja funkcija će biti pozvana. | |||
# Kada dve funkcije imaju isti naziv, dinamički tokom prevođenja programa se određuje koja funkcija će biti pozvana. | |||
</div> | |||
=== ?. zadatak === | |||
Koje od navedenih parova potpisa funkcija mogu postojati u istom programu, a da prevodilac ne prijavljuje grešku? | |||
<div class="abc-list"> | |||
# <span class="solution"><code> int & f(int i, int j);</code> i <code> int && f(int i, int j); </code></span> | |||
# <span class="solution"><code> int const f(int i, int j);</code> i <code> int f(int i, int j); </code></span> | |||
# <code> float volatile f(int i, int j);</code> i <code> int volatile f(int i, int j); </code> | |||
</div> | </div> | ||
Ред 78: | Ред 96: | ||
# 1 | # 1 | ||
# 2 | # 2 | ||
# | # 5 | ||
# 3 | # 3 | ||
# <span class="solution">4</span> | # <span class="solution">4</span> | ||
# Više od 5. | |||
</div> | </div> | ||
Верзија на датум 17. новембар 2020. у 17:45
- Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni.
- Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: ovako.
- Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili:
G1
1. zadatak
Koji je tip promenljive p
u sledećem programu:
int main(void) {
int i = 1;
const int k = i;
auto p = new int + k;
return 0;
}
int
const int
int*
const int*
- Program se ne prevodi.
2. zadatak
Šta ispisuje sledeći program na jeziku C++?
#include <iostream>
int &f(int &x){
return ++x;
}
int main(void) {
std::cout << f(2);
}
- 6
- 0
- Program se ne prevodi.
- 5
3. zadatak
Ime simbol predstavlja niz referenci na nepromenljiv pokazivač na int. Kako se deklariše u kodu?
- ...
- ...
int * const &simbol[]
- Deklaracija za simbol se ne prevodi.
?. zadatak
Zaokružiti tačna tvrđenja u vezi sa preklapanjem imena funkcija na jeziku C++:
- Kada dve funkcije imaju isti naziv, statički tokom prevođenja programa se određuje koja funkcija će biti pozvana.
- Kada dve funkcije imaju isti naziv, dinamički tokom izvršenja programa se određuje koja funkcija će biti pozvana.
- Kada dve funkcije imaju isti naziv, statički tokom izvršenja programa se određuje koja funkcija će biti pozvana.
- Kada dve funkcije imaju isti naziv, dinamički tokom prevođenja programa se određuje koja funkcija će biti pozvana.
?. zadatak
Koje od navedenih parova potpisa funkcija mogu postojati u istom programu, a da prevodilac ne prijavljuje grešku?
int & f(int i, int j);
iint && f(int i, int j);
int const f(int i, int j);
iint f(int i, int j);
float volatile f(int i, int j);
iint volatile f(int i, int j);
7. zadatak
Šta ispisuje sledeći program na programskom jeziku 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
- Više od 5.
G2
1. zadatak
Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:
- Moguće je definisati referencu na pokazivač.
- Moguće je definisati niz referenci.
- Moguće je definisati referencu na referencu.
- Moguće je definisati pokazivač na referencu.
2. zadatak
Šta ispisuje sledeći program na jeziku C++?
#include <iostream>
int &f(int &x){
return x++;
}
int main(void) {
int x = 5;
std::cout << f(x);
}
- 6
- 0
- Program se ne prevodi.
- 5
4. zadatak
Povezati tvrdnje u vezi sa modifikatorima metoda:
volatile b.
|
|
5. zadatak
Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:
- Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
- Definisanjem kopirajućeg konstruktora briše se ugrađeni premeštajući konstruktor.
- Pomerajući konstruktor mora da ima samo jedan parametar.
6. zadatak
Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:
- Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti.
- Mogu se definisati više funkcija istog imena ako su im različite povratne vrednosti.
- Ne mogu se definisati više funkcija istog imena, jer kompajler ne bi mogao da ih raspozna.
- Mogu se definisati više funkcija istog imena ako imaju različite tipove parametara.
7. zadatak
Šta ispisuje sledeći program na programskom jeziku 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
- Program se ne prevodi
- 3
- 4
8. zadatak
Šta ispisuje sledeći program na programskom jeziku 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;
}
Odgovor: 132
9. zadatak
Dopuniti XXX sa linijom tako da je program ispravan:
#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. zadatak
Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:
- U definiciji klase se mogu definisati promenljiva statička polja.
- Doseg imena statičkog polja je klasa.
- Statičkom polju s iz klase K se pristupa koristeći izraz K.s.