ОО1/К1 2020 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
мНема описа измене
м (Delovi K1 za G1)
Ред 3: Ред 3:
* Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: <span class="spoiler-example">ovako</span>.
* Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: <span class="spoiler-example">ovako</span>.
* Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili: <span class="unhide-spoilers unhide-solutions"></span>
* Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili: <span class="unhide-spoilers unhide-solutions"></span>
== G1 ==
=== ?. zadatak ===
Koji je tip promenljive <code>p</code> u sledećem programu:
<syntaxhighlight lang="cpp">
int main(void) {
    const int k = 1;
    auto p = new int + k;
    return 0;
}
</syntaxhighlight>
# <code>int</code>
# <code>const int</code>
# <span class="solution"><code>int*</code></span>
# <code>const int*</code>
# Program se ne prevodi.
=== 2. zadatak ===
Šta ispisuje sledeći program na jeziku C++?
<syntaxhighlight lang="cpp">
#include <iostream>
int &f(int &x){
  return ++x;
}
int main(void) {
  std::cout << f(2);
}
</syntaxhighlight>
<div class="abc-list">
# 6
# 0
# <span class="solution">Program se ne prevodi.</span>
# 5
</div>
=== ?. zadatak ===
Zaokružiti tačna tvrđenja u vezi sa prijateljskim funkcijama na jeziku C++:
<div class="abc-list">
# <span class="solution">Kada dve globalne prijateljske funkcije imaju isti naziv, pri prevođenju se određuje koja funkcija će biti korišćena.</span>
# Kada dve globalne prijateljske funkcije imaju isti naziv, dinamički tokom pokretanja programa se određuje koja funkcija će biti pozvana.
# ...
# ...
</div>
=== 7. zadatak ===
Šta ispisuje sledeći program na programskom jeziku C++:
<syntaxhighlight lang="cpp">
#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);
}
</syntaxhighlight>
<div class="abc-list">
# 1
# 2
# Program se ne prevodi
# 3
# <span class="solution">4</span>
</div>


== G2 ==
== G2 ==

Верзија на датум 16. новембар 2020. у 19:11

  • 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

?. zadatak

Koji je tip promenljive p u sledećem programu:

int main(void) {
    const int k = 1;
    auto p = new int + k;
    return 0;
}
  1. int
  2. const int
  3. int*
  4. const int*
  5. 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);
}
  1. 6
  2. 0
  3. Program se ne prevodi.
  4. 5

?. zadatak

Zaokružiti tačna tvrđenja u vezi sa prijateljskim funkcijama na jeziku C++:

  1. Kada dve globalne prijateljske funkcije imaju isti naziv, pri prevođenju se određuje koja funkcija će biti korišćena.
  2. Kada dve globalne prijateljske funkcije imaju isti naziv, dinamički tokom pokretanja programa se određuje koja funkcija će biti pozvana.
  3. ...
  4. ...

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. 1
  2. 2
  3. Program se ne prevodi
  4. 3
  5. 4

G2

1. zadatak

Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:

  1. Moguće je definisati referencu na pokazivač.
  2. Moguće je definisati niz referenci.
  3. Moguće je definisati referencu na referencu.
  4. 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);
}
  1. 6
  2. 0
  3. Program se ne prevodi.
  4. 5

4. zadatak

Povezati tvrdnje u vezi sa modifikatorima metoda:

Modifikatori
volatile b.

const e.

& g.

&& f.

  1. Metoda se može zvati samo ako je tekući objekat pokazivač.
  2. Oznaka kompajleru da ne vrši optimizacije.
  3. Oznaka kompajleru da vrši optimizacije.
  4. Metoda je mutator.
  5. Metoda je inspektor.
  6. Metoda se može zvati samo ako je tekući objekat dvrednost.
  7. Metoda se može zvati samo ako je tekući objekat lvrednost.
  8. Metoda se može zvati samo ako je tekući objekat konstantan.

5. zadatak

Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:

  1. Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
  2. Definisanjem kopirajućeg konstruktora briše se ugrađeni premeštajući konstruktor.
  3. Pomerajući konstruktor mora da ima samo jedan parametar.

6. zadatak

Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:

  1. Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti.
  2. Mogu se definisati više funkcija istog imena ako su im različite povratne vrednosti.
  3. Ne mogu se definisati više funkcija istog imena, jer kompajler ne bi mogao da ih raspozna.
  4. 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. 1
  2. 2
  3. Program se ne prevodi
  4. 3
  5. 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;
}
  1. f();
  2. A a; f(a);
  3. f(A());
  4. f(A);

10. zadatak

Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:

  1. U definiciji klase se mogu definisati promenljiva statička polja.
  2. Doseg imena statičkog polja je klasa.
  3. Statičkom polju s iz klase K se pristupa koristeći izraz K.s.