ОО1/К1 2022 — разлика између измена
< ОО1
Пређи на навигацију
Пређи на претрагу
(K1 2022) |
м (→3. zadatak: Fali tačka zarez na kralju definicije svake klase.) |
||
| (Није приказано 8 међуизмена 4 корисника) | |||
| Ред 5: | Ред 5: | ||
Šta može da stoji umesto XXX da bi se kod pokretao uspešno? | Šta može da stoji umesto XXX da bi se kod pokretao uspešno? | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
int g(int i) | int g(int i) { return i; } | ||
{return i;} | |||
int main() | int main() { | ||
{ | int a = 5; | ||
decltype (XXX) b = 5; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <syntaxhighlight lang="cpp" inline>int | # <syntaxhighlight lang="cpp" inline>int</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">a+1 | # <syntaxhighlight lang="cpp" inline class="solution">a+1</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">a++ | # <syntaxhighlight lang="cpp" inline class="solution">a++</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">g(g(4)) | # <syntaxhighlight lang="cpp" inline class="solution">g(g(4))</syntaxhighlight> | ||
</div> | </div> | ||
| Ред 25: | Ред 23: | ||
Šta se ispisuje prilikom pokretanja sledećeg koda? | Šta se ispisuje prilikom pokretanja sledećeg koda? | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
class X | class X { | ||
{ | |||
public: | public: | ||
X(int p) : z(++p), y(++p), x(++p) {cout << x << y << z;} | |||
private: | private: | ||
int x, y, z; | int x, y, z; | ||
} | }; | ||
int main() | int main() { | ||
{ | X x(3); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Odgovor: <span class="spoiler" data-solution="text">456</span> | '''Odgovor:''' <span class="spoiler" data-solution="text">456</span> | ||
Objašnjenje: <span class="spoiler" data-solution="explanation">Inicijalizacija atributa se vrši redosledom navođenja u klasi, bez obzira na redosled u | |||
listi inicijalizatora.</span> | '''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Inicijalizacija atributa se vrši redosledom navođenja u klasi, bez obzira na redosled u listi inicijalizatora.</span> | ||
== 3. zadatak == | == 3. zadatak == | ||
Šta ispisuje sledeći kod na programskom jeziku C++: | Šta ispisuje sledeći kod na programskom jeziku C++: | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
class A | class A { | ||
{ | |||
public: | public: | ||
~A() {cout << "A";} | |||
}; | |||
class B | class B { | ||
{ | |||
public: | public: | ||
~B() {cout << "B";} | |||
}; | |||
class C | class C { | ||
{ | A a; | ||
B b; | |||
public: | public: | ||
~C() {cout << "C";} | |||
}; | |||
} | |||
int main() | int main() { | ||
{ | delete new C(); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Odgovor: <span class="spoiler" data-solution="text">CBA</span> | '''Odgovor:''' <span class="spoiler" data-solution="text">CBA</span> | ||
Objašnjenje: <span class="spoiler" data-solution="explanation">Redosled pozivanja destruktora je obrnut od redosleda pozivanja konstruktora.</span> | |||
'''Objašnjenje:''' <span class="spoiler" data-solution="explanation">Redosled pozivanja destruktora je obrnut od redosleda pozivanja konstruktora.</span> | |||
== 4. zadatak == | == 4. zadatak == | ||
Šta važi za prijateljske funkcije? | Šta važi za prijateljske funkcije? | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# < | # <span class="solution">Prijateljska funkcija može biti metod neke druge klase.</span> | ||
# | # Prijateljska funkcija deklarisana u javnom odeljku nema pristup privatnim atributima. | ||
# | # Da bi funkcija bila prijateljska ona mora da bude definisana unutar klase. | ||
# < | # <span class="solution">Prijateljska funkcija definisana unutar klase je podrazumevano <code>inline</code>.</span> | ||
</div> | </div> | ||
| Ред 86: | Ред 78: | ||
Koje aspekte je po Stroustrupu trebalo da ispuni C++: | Koje aspekte je po Stroustrupu trebalo da ispuni C++: | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# | # Da bude brži od C-a | ||
# | # Da bude prenosiv | ||
# < | # <span class="solution">Da bude dovoljno blizak mašini</span> | ||
# < | # <span class="solution">Da bude dovoljno blizak problemu</span> | ||
# | # Da se koristi za programiranje intefejsa | ||
</div> | </div> | ||
| Ред 96: | Ред 88: | ||
Šta važi za prava pristupa: | Šta važi za prava pristupa: | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# < | # <span class="solution">U strukturi je podrazumevan <code>public</code> odeljak.</span> | ||
# | # Privatni nestatički metod ima pravo pristupa samo privatnim atributima. | ||
# | # Postoji samo po jedan <code>public</code>, <code>private</code> i <code>protected</code> odeljak. | ||
# < | # <span class="solution">U klasi je podrazumevan <code>private</code> odeljak.</span> | ||
</div> | </div> | ||
== 7. zadatak == | == 7. zadatak == | ||
Šta je validna operacija nad sledećim nizom? | Šta je validna operacija nad sledećim nizom? | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
int niz[] = {1,2,3,4} | int niz[] = {1,2,3,4}; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<div class="abc-list" data-solution="multiple"> | <div class="abc-list" data-solution="multiple"> | ||
# <syntaxhighlight lang="cpp" inline class="solution">niz[0] = 1</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline class="solution">niz[0] = 1;</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">int x = niz[1]</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline class="solution">int x = niz[1];</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline >niz++</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline >niz++;</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">int *novi_niz = niz</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline class="solution">int *novi_niz = niz;</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline >int *niz = new int[4]</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline >int *niz = new int[4];</syntaxhighlight> | ||
</div> | </div> | ||
== 8. zadatak == | == 8. zadatak == | ||
Sa kojim modifikatorima mogu da se pozivaju funkcije za promenljive objekte? | Sa kojim modifikatorima mogu da se pozivaju funkcije za promenljive objekte? | ||
| Ред 120: | Ред 114: | ||
# <syntaxhighlight lang="cpp" inline >this</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline >this</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">volatile</syntaxhighlight> | # <syntaxhighlight lang="cpp" inline class="solution">volatile</syntaxhighlight> | ||
# < | # <span class="solution" >bez modifikatora</span> | ||
</div> | </div> | ||
== 9. zadatak == | == 9. zadatak == | ||
Šta može da stoji umesto ??? da bi kod bio ispravan? | |||
<syntaxhighlight lang="cpp"> | |||
#include <iostream> | |||
int& f(int& i, const int& j); | |||
const int& g(int &i) { return i; } | |||
int main() { | |||
int a = 3; | |||
int* p = &a; | |||
const int *pk = &a; | |||
??? | |||
return 0; | |||
} | |||
</syntaxhighlight> | |||
<div class="abc-list" data-solution="multiple"> | |||
# <syntaxhighlight lang="cpp" inline >f(a + 1, a);</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline class="solution">f(a, a);</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline >f(*pk, a);</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline class="solution">f(a, g(a));</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline class="solution" >f(a, *p);</syntaxhighlight> | |||
</div> | |||
== 10. zadatak == | == 10. zadatak == | ||
Koje od sledećih deklaracija funkcija su ispravne? | |||
== | <div class="abc-list" data-solution="multiple"> | ||
< | # <syntaxhighlight lang="cpp" inline >int f(int a = 1, int b, int c);</syntaxhighlight> | ||
# <syntaxhighlight lang="cpp" inline class="solution">int f(int a = 1, int b = 2, int c = 3);</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline >int f(int a = 1, int b = 2, int c);</syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline class="solution">int f(int a, int b = 2, int c = 3); </syntaxhighlight> | |||
# <syntaxhighlight lang="cpp" inline>int f(int a, int b = 2, int c);</syntaxhighlight> | |||
</div> | |||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
[[Категорија:ОО1]] | [[Категорија:ОО1]] | ||
Тренутна верзија на датум 22. новембар 2023. у 18:43
- За питања са више одговора, тачни одговори су подебљани и уоквирени
- За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
- Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:
1. zadatak
Šta može da stoji umesto XXX da bi se kod pokretao uspešno?
int g(int i) { return i; }
int main() {
int a = 5;
decltype (XXX) b = 5;
}
inta+1a++g(g(4))
2. zadatak
Šta se ispisuje prilikom pokretanja sledećeg koda?
class X {
public:
X(int p) : z(++p), y(++p), x(++p) {cout << x << y << z;}
private:
int x, y, z;
};
int main() {
X x(3);
}
Odgovor: 456
Objašnjenje: Inicijalizacija atributa se vrši redosledom navođenja u klasi, bez obzira na redosled u listi inicijalizatora.
3. zadatak
Šta ispisuje sledeći kod na programskom jeziku C++:
class A {
public:
~A() {cout << "A";}
};
class B {
public:
~B() {cout << "B";}
};
class C {
A a;
B b;
public:
~C() {cout << "C";}
};
int main() {
delete new C();
}
Odgovor: CBA
Objašnjenje: Redosled pozivanja destruktora je obrnut od redosleda pozivanja konstruktora.
4. zadatak
Šta važi za prijateljske funkcije?
- Prijateljska funkcija može biti metod neke druge klase.
- Prijateljska funkcija deklarisana u javnom odeljku nema pristup privatnim atributima.
- Da bi funkcija bila prijateljska ona mora da bude definisana unutar klase.
- Prijateljska funkcija definisana unutar klase je podrazumevano
inline.
5. zadatak
Koje aspekte je po Stroustrupu trebalo da ispuni C++:
- Da bude brži od C-a
- Da bude prenosiv
- Da bude dovoljno blizak mašini
- Da bude dovoljno blizak problemu
- Da se koristi za programiranje intefejsa
6. zadatak
Šta važi za prava pristupa:
- U strukturi je podrazumevan
publicodeljak. - Privatni nestatički metod ima pravo pristupa samo privatnim atributima.
- Postoji samo po jedan
public,privateiprotectedodeljak. - U klasi je podrazumevan
privateodeljak.
7. zadatak
Šta je validna operacija nad sledećim nizom?
int niz[] = {1,2,3,4};
niz[0] = 1;int x = niz[1];niz++;int *novi_niz = niz;int *niz = new int[4];
8. zadatak
Sa kojim modifikatorima mogu da se pozivaju funkcije za promenljive objekte?
constconst volatilethisvolatile- bez modifikatora
9. zadatak
Šta može da stoji umesto ??? da bi kod bio ispravan?
#include <iostream>
int& f(int& i, const int& j);
const int& g(int &i) { return i; }
int main() {
int a = 3;
int* p = &a;
const int *pk = &a;
???
return 0;
}
f(a + 1, a);f(a, a);f(*pk, a);f(a, g(a));f(a, *p);
10. zadatak
Koje od sledećih deklaracija funkcija su ispravne?
int f(int a = 1, int b, int c);int f(int a = 1, int b = 2, int c = 3);int f(int a = 1, int b = 2, int c);int f(int a, int b = 2, int c = 3);int f(int a, int b = 2, int c);