ОО2/Јун 2023

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Junski rok 2023. godine održan je 6. juna u dve grupe. Prva grupa(SI) u 11:30h i druga grupa(RTI + ostali odseci) u 12:00h.

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

G2

1. zadatak

Koja od sledećih tvrđenja su tačna za programski jezik Java?

  1. Prilikom prevođenja izvornog koda na jeziku Java, moguće je navesti opciju za dobijanje rezultata prevođenja koji predstavlja mašinski kod računara domaćina.
  2. Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa .java uvek se smesta u tačno jednu .class datoteku.
  3. Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.
  4. Prevodilac jezika Java prevodi izvorni kod na jeziku Java u bajtkod.
  5. Just in Time (JIT) prevodilac prevodi izvorni kod na jeziku Java u bajtkod.

2. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Upisati NP ako se program ne prevodi.

public class Test {
    {
        System.out.println(1);
    }
    public Test() {
        System.out.println(2);
    }
    {
        System.out.println(3);
    }
    static {
        System.out.println(4);
    }
    public static void main(String[] args) {
        new Test();
    }
}

Odgovor: 4132

Objašnjenje: Izvršavaju se prvo statički blokovi prilikom popunjavanja klase u memoriju, zatim nestatički blokovi pa tek onda konstruktor klase.

3. zadatak

Koja od sledećih tvrđenja su tačna za programski jezik Java?

  1. Jedan fajl sa izvornim kodom na programskom jeziku Java moze da sadrži više definicija tipova podataka.
  2. Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.
  3. Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena.
  4. Dozvoljeno je da se naredba import test.*; pojavi u jednom fajlu vise puta.
  5. Tipovi deklarisani u izvornoj datoteci bez deklaracije paketa neće biti smesteni ni u jedan paket.

4. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Upisati NP ako se program ne prevodi.

class B {
    public B() {
        f();
    }
    void f(){
        System.out.println(1);
    }
}

class D extends B {
    public D() {
        f();
    }
    public void f(){
        System.out.println(2);
    }
}
public class Test {
    public static void main(String[] args) {
        new D();
    }
}

Odgovor: 22

Objašnjenje: Kada override-ujemo metode smemo proširiti njihov pristup.


5. zadatak

Koja od sledećih tvrđenja su tačna za programski jezik Java?

  1. Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.
  2. Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.
  3. Supertipove neke klase čine i interfejsi koje ta klasa implementira.
  4. Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku Java.
  5. Programski jezik Java podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.

6. zadatak

Spojiti navedene tipove izuzetaka na programskom jeziku Java sa odgovarajućim iskazom koji najbolje opisuje njihovu prirodu.

  1. RuntimeException Predstavlja klasu neproverenih izuzetaka čiji se objekti mogu bacati (emitovati) u toku normalnog rada Java virtuelne mašine.
  2. Error Predstavlja klasu neproverenih izuzetaka čiji objekti opisuju ozbiljne probleme koje aplikacija ne bi trebalo da hvata i obrađuje, a koji vode do prekida rada programa.
  3. Throwable Predstavlja klasu koja se nalazi u korenu hijerarhije svih grešaka i izuzetaka.
  4. Exception Predstavlja klasu koju bi korisnički definisani izuzeci trebalo da proširuju i čiji objekti opisuju izuzetne situacije koje bi aplikacija trebalo da hvata i obrađuje.

7. zadatak

Koja od sledećih tvrđenja su tačna za programski jezik Java?

  1. Poziv metoda join() bez argumenata će blokirati nit pozivaoca dok se nit za koju je metod pozvan ne završi.
  2. Metod join() je definisan klasi Thread.
  3. Poziv metoda notify() za objekat niti iz koje je pozvan metod join() će blokirati nit pozvanog objekta.
  4. Metod join() baca provereni izuzetak InterruptedException.
  5. Metod join() mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak IllegalMonitorStateException.

8. zadatak

Koje tvrdnje su tačne za događaje miša, odnosno događaje kretanje miša?

  1. Događaj vrste MOUSE_MOVED se dešava tek kada se otpusti dugme miša nakon pomeranja kurzora mišem.
  2. Događaji miša su događaji niskog nivoa.
  3. Ako se kod izvora registruje osluškivač tipa MouseMotionListener, pri otpuštanju dugmeta miša dogodiće se događaj vrste MOUSE_RELEASED i biće pozvan metod koji obrađuje ovaj događaj.
  4. Događaj vrste MOUSE_CLICKED prethodi događaju MOUSE_RELEASED.
  5. Događaj vrste MOUSE_CLICKED će se desiti ako se dugme miša otpusti dok je kurzor na istom mestu na kojem je dato dugme i pritisnuto.

9. zadatak

Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).

  1. Biblioteka za dinamičko povezivanje .dll [1]
  2. Modul za statičko povezivanje .netmodule

10. задатак

Šta ispisuje sledeći program na programskom jeziku C#? (Za program koji se ne prevodi uneti NP. Za program sa greškom u izvršavanju uneti X)

class Program {
    void M1(ref int i) { System.Console.Write(1); }
    void M2(ref int i) { System.Console.Write(2); }
    void M3(ref int i) { System.Console.Write(3); }

    public delegate void Delegat();

    public static void Main(string[] args) {
        Delegat d1 = new Delegat(M1);
        Delegat d2 = new Delegat(M2);
        Delegat d3 = new Delegat(M3);
        Delegat d = d1 + d2 + d3;
        d += d1 - d2 + d3;
        d();
    }
}

Одговор: NP

Napomene

  1. Bilo je ponuđeno više odgovora.