OO2/Jun 2022

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

Junski ispitni rok 2022. godine održan je 7. juna u 3 grupe (G1-IR, G2-SI, G3-SI).

  • 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, tako da se prikažu kada izaberete taj tekst (primer: ovako)
  • Pritisnite levo dugme ispod za sakrivanje i otkrivanje svih odgovora, ili desno dugme za uključivanje i isključivanje interaktivnog režima:

Grupa 1

1. zadatak

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

  1. goto nije rezervisana reč u Javi i može se koristiti kao identifikator.
  2. goto je rezervisana reč u Javi, ali može da se koristi za skok na označenu naredbu.
  3. goto je rezervisana reč u Javi, ali ne može da se koristi za skok na označenu naredbu.

2. zadatak

Statički inicializacioni blokovi na jeziku Java:

  1. mogu da dovedu do problema cikličke statičke inicijalizacije koja dovodi do blokiranja programa.
  2. se izvršavaju po punjenju klase u memoriju.
  3. se izvršavaju na početku izvršenja svakog od konstruktora klase.
  4. ne smeju uopšte da pozivaju metode koje bacaju izuzetke
  5. mogu da bacaju izuzetke ako svi konstruktori klase navode odgovarajuće tipove izuzetaka u svojim throws klauzulama.

3. zadatak

Šta može da stoji umesto #### da bi se sledeći izvorni program napisan na programskom jeziku Java u naredna dva fajla uspešno preveo?

package p;

public class A {
    private int a;
    int b;
    protected int c;
    public int d;
}
package p;
public class B extends A {
    public void m() {
        ####
    }
    public static void main(String[] args) {
        new B().m();
    }
}
  1. b = 1;
  2. c = 1;
  3. A.a = 1;
  4. d = 1;
  5. a = 1;

4. zadatak

Označiti tvrdnje koje su tačne za interfejse na programskom jeziku Java.

  1. Metodi interfejsa mogu da budu javni (public), zaštićeni (protected) i paketski.
  2. Klasa koja implementira dva interfejsa koja imaju istu deklaraciju podrazumevanog (default) metoda mora da redefiniše ovaj metod.
  3. Interfejs može da se izvede iz više drugih interfejsa.
  4. Apstraktna klasa koja implementira interfejs ne mora da implementira sve deklarisane metode tog interfejsa.
  5. Klasa može da se izvede pomoću ključne reči extends iz interfejsa.

5. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Ukoliko smatrate da se program ne prevodi, uneti "-".

public class Test {
     { m(); }
     public static void m() throws Exception { throw new Exception(); }
     public Test() throws Exception { System.out.print("1"); }
     public static void main(String[] args) {
          try {
               new Test();
               System.out.print("2");
          } catch(Exception e) {
               System.out.print("3");
          }
     }
}

Odgovor: 3

6. zadatak

Označiti tvrdnje koje su tačne za niti na programskom jeziku Java.

  1. Niti nižeg prioriteta mogu da se izvršavaju i kada niti višeg prioriteta nisu blokirane.
  2. Prioriteti mogu da imaju vrednost između Thread.MIN_PRIORITY i Thread.MAX_PRIORITY.
  3. Metoda getPriority() vraća prioritet tekuće niti.
  4. Kada se jedom pokrene nit, njen prioritet može naknadno da se promeni.
  5. Kada se kreira nit, inicijalno joj se dodeljuje prioritet za jedan manji od prioriteta niti koja ju je kreirala.

7. zadatak

Koje od navedenih tvdrnji su tačne za upravljače rasporeda (layout manager) u AWT paketu biblioteke jezika Java.

  1. FlowLayout je bibliotečka klasa upravljača rasporeda koja raspoređuje komponente sleva-udesno u potrebnom broju redova.
  2. Svaka klasa upravljača rasporeda je izvedena iz klase LayoutManager.
  3. StreamLayout je bibliotečka klasa upravljača rasporeda koja raspoređuje komponente odozgo-naniže u potrebnom broju kolona.
  4. Podrazumevani upravlja rasporeda za prozore je BorderLayout.
  5. Podrazumevani upravljač rasporeda za panele je GridLayout.

8. zadatak

Klasa MenuBar izvedena je direktno iz klase

  1. Component
  2. MenuItem
  3. MenuComponent
  4. Menu
  5. MenuContainer

9. zadatak

Označite tvrdnje koje su tačne za kontrolne strukture na programskom jeziku C#.

  1. Instrukcijom goto može da se skače na labelu koja se nalazi ispred proizvoljne naredbe u nekom metodu.
  2. Ukoliko se neka grana switch naredbe ne završava naredbom break ili goto dolazi do greške u prevođenju.
  3. U jeziku postoji naredba continue.
  4. Iskakanje iz try bloka korišćenjem goto naredbe dovodi do izvršavanja finally bloka.
  5. Korišćenjem foreach petlje može se iterirati kroz kolekciju koja impelementira interfejs IEnumerable.

10. zadatak

Šta ispisuje sledeći program na jeziku C#?

class Program {
    static void M1(ref int i) { System.Console.Write(i++); }
    static void M2(ref int i) { System.Console.Write(i/2); }
    static void M3(ref int i) { System.Console.Write(i--); }

    public delegate void Delegat(ref int i);

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

Odgovor: 536