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

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
м (+{{rešenja}})
м (+data-solutions)
Ред 13: Ред 13:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list" data-solution="single">
# <code>int</code>
# <code>int</code>
# <code>const int</code>
# <code>const int</code>
Ред 18: Ред 19:
# <code>const int*</code>
# <code>const int*</code>
# Program se ne prevodi.
# Program se ne prevodi.
<div>


=== 2. zadatak ===
=== 2. zadatak ===
Ред 32: Ред 34:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list">
<div class="abc-list" data-solution="single">
# 6
# 6
# 0
# 0
Ред 41: Ред 43:
=== 3. zadatak ===
=== 3. zadatak ===
Ime simbol predstavlja niz referenci na nepromenljiv pokazivač na int. Kako se deklariše u kodu?
Ime simbol predstavlja niz referenci na nepromenljiv pokazivač na int. Kako se deklariše u kodu?
<div class="abc-list">
<div class="abc-list" data-solution="single">
# ...
# ...
# ...
# ...
Ред 51: Ред 53:
: ''Isti zadatak se našao i na [[ОО1/Пробни тестови 2020#3. zadatak 3|probnom kolokvijumu za IR]].''
: ''Isti zadatak se našao i na [[ОО1/Пробни тестови 2020#3. zadatak 3|probnom kolokvijumu za IR]].''
Koje tvrđenje je tačno?
Koje tvrđenje je tačno?
<div class="abc-list">
<div class="abc-list" data-solution="single">
# <span class="solution">Mehanizam preklapanje<sup>[sic]</sup> imena funkcija je potpuno statički, koja funkcija će se pozvati određuje se u vreme prevođenja.</span>
# <span class="solution">Mehanizam preklapanje<sup>[sic]</sup> imena funkcija je potpuno statički, koja funkcija će se pozvati određuje se u vreme prevođenja.</span>
# Mehanizam preklapanje<sup>[sic]</sup> imena funkcija je potpuno dinamički, koja funkcija će se pozvati određuje se u vreme izvršavanja.
# Mehanizam preklapanje<sup>[sic]</sup> imena funkcija je potpuno dinamički, koja funkcija će se pozvati određuje se u vreme izvršavanja.
Ред 61: Ред 63:
: ''Isti zadatak se našao i na [[ОО1/Пробни тестови 2020#4. zadatak 3|probnom kolokvijumu za IR]].''
: ''Isti zadatak se našao i na [[ОО1/Пробни тестови 2020#4. zadatak 3|probnom kolokvijumu za IR]].''
Koja tvrđenja su tačna na programskom jeziku C++?
Koja tvrđenja su tačna na programskom jeziku C++?
<div class="abc-list">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Metodi <code>int f() & { return 1; }</code> i <code>int f() && { return 3; }</code> mogu postojati u istoj klasi.</span>
# <span class="solution">Metodi <code>int f() & { return 1; }</code> i <code>int f() && { return 3; }</code> mogu postojati u istoj klasi.</span>
# <span class="solution">Metodi <code>int f() & { return 1; }</code> i <code>int f() const & { return 3; }</code> mogu postojati u istoj klasi.</span>
# <span class="solution">Metodi <code>int f() & { return 1; }</code> i <code>int f() const & { return 3; }</code> mogu postojati u istoj klasi.</span>
Ред 93: Ред 95:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list">
<div class="abc-list" data-solution="single">
# 1
# 1
# 2
# 2
Ред 105: Ред 107:
=== 1. zadatak ===
=== 1. zadatak ===
Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa referencama na jeziku C++:
<div class="abc-list">
<div class="abc-list" data-solution="single">
# <span class="solution">Moguće je definisati referencu na pokazivač.</span>
# <span class="solution">Moguće je definisati referencu na pokazivač.</span>
# Moguće je definisati niz referenci.
# Moguće je definisati niz referenci.
Ред 126: Ред 128:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list">
<div class="abc-list" data-solution="single">
# 6
# 6
# 0
# 0
Ред 138: Ред 140:
|+ Modifikatori
|+ Modifikatori
|-
|-
| <code>volatile </code> <span class="spoiler">b.</span>
|
 
<div data-solution="select" data-options="a,b,c,d,e,f,g,h">
<code>const </code> <span class="spoiler">e.</span>
# <code>volatile </code> <span class="spoiler">b.</span>
 
# <code>const </code> <span class="spoiler">e.</span>
<code>& </code> <span class="spoiler">g.</span>
# <code>& </code> <span class="spoiler">g.</span>
 
# <code> && </code> <span class="spoiler">f.</span>
<code> && </code> <span class="spoiler">f.</span>
</div>
|| <div class="abc-list">
|| <div class="abc-list">
# Metoda se može zvati samo ako je tekući objekat pokazivač.
# Metoda se može zvati samo ako je tekući objekat pokazivač.
Ред 159: Ред 161:
=== 5. zadatak ===
=== 5. zadatak ===
Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa pomerajućim konstruktorom na jeziku C++:
<div class="abc-list">
<div class="abc-list" data-solution="single">
# Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
# Definisanjem podrazumevanog konstruktora briše se ugrađeni premeštajući konstruktor.
# <span class="solution">Definisanjem kopirajućeg konstruktora briše se ugrađeni premeštajući konstruktor.</span>
# <span class="solution">Definisanjem kopirajućeg konstruktora briše se ugrađeni premeštajući konstruktor.</span>
Ред 167: Ред 169:
=== 6. zadatak ===
=== 6. zadatak ===
Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa funkcijama na jeziku C++:
<div class="abc-list">
<div class="abc-list" data-solution="multiple">
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti. </span>
# <span class="solution">Mogu se definisati više funkcija istog imena ako imaju različiti broj parametara bez podrazumevanih vrednosti. </span>
# Mogu se definisati više funkcija istog imena ako su im različite povratne vrednosti.
# Mogu se definisati više funkcija istog imena ako su im različite povratne vrednosti.
Ред 205: Ред 207:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list">
<div class="abc-list" data-solution="single">
# 1
# 1
# 2
# 2
Ред 235: Ред 237:
}
}
</syntaxhighlight>
</syntaxhighlight>
Odgovor: <span class="spoiler">132</span>
Odgovor: <span class="spoiler" data-solution="text">132</span>


=== 9. zadatak ===
=== 9. zadatak ===
Ред 260: Ред 262:
}
}
</syntaxhighlight>
</syntaxhighlight>
<div class="abc-list">
<div class="abc-list" data-solution="single">
# <code> f(); </code>  
# <code> f(); </code>  
# <code> A a; f(a); </code>  
# <code> A a; f(a); </code>  
Ред 269: Ред 271:
=== 10. zadatak ===
=== 10. zadatak ===
Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:
Zaokružiti tačne tvrdnje u vezi sa statičkim poljima u klasama na jeziku C++:
<div class="abc-list">
<div class="abc-list" data-solution="multiple">
# U definiciji klase se mogu definisati promenljiva statička polja.
# U definiciji klase se mogu definisati promenljiva statička polja.
# <span class="solution">Doseg imena statičkog polja je klasa.</span>
# <span class="solution">Doseg imena statičkog polja je klasa.</span>

Верзија на датум 30. јун 2021. у 16:07

  • За питања са више одговора, тачни одговори су подебљани и уоквирени
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени, тако да се прикажу када изаберете тај текст (пример: овако)
  • Притисните лево дугме испод за сакривање и откривање свих одговора, или десно дугме за укључивање и искључивање интерактивног режима:

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;
}
  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

3. zadatak

Ime simbol predstavlja niz referenci na nepromenljiv pokazivač na int. Kako se deklariše u kodu?

  1. ...
  2. ...
  3. int * const &simbol[]
  4. Deklaracija za simbol se ne prevodi.

?. zadatak

Isti zadatak se našao i na probnom kolokvijumu za IR.

Koje tvrđenje je tačno?

  1. Mehanizam preklapanje[sic] imena funkcija je potpuno statički, koja funkcija će se pozvati određuje se u vreme prevođenja.
  2. Mehanizam preklapanje[sic] imena funkcija je potpuno dinamički, koja funkcija će se pozvati određuje se u vreme izvršavanja.
  3. Mehanizam preklapanje[sic] imena funkcija je potpuno statički, koja funkcija će se pozvati određuje se u vreme izvršavanja.
  4. Mehanizam preklapanje[sic] imena funkcija je potpuno dinamički, koja funkcija će se pozvati određuje se u vreme prevođenja.

?. zadatak

Isti zadatak se našao i na probnom kolokvijumu za IR.

Koja tvrđenja su tačna na programskom jeziku C++?

  1. Metodi int f() & { return 1; } i int f() && { return 3; } mogu postojati u istoj klasi.
  2. Metodi int f() & { return 1; } i int f() const & { return 3; } mogu postojati u istoj klasi.
  3. Metodi int f() & { return 1; } i void f() & { } mogu postojati u istoj klasi.

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. 5
  4. 3
  5. 4
  6. Više od 5.

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
  1. volatile b.
  2. const e.
  3. & g.
  4. && 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.