ОО2/К1 2022

Извор: SI Wiki
< ОО2
Датум измене: 2. април 2022. у 11:54; аутор: KockaAdmiralac (разговор | доприноси) (OO2 K1 od ove godine (izvor: `<@816674662414942228>`))
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Prvi kolokvijum 2022. godine na SI odseku se održao 30. marta. Od oblasti došle su objekti i klase, izvođenje, paketi, kao i pregled jezika Java.

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

1. zadatak

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

  1. Implementacija Java virtuelne mašine zavisi od konkretne platforme (arhitekture računara, operativnog sistema) za koju je namenjena, ali pod pretpostavkom da poštuje specifikaciju, pruža jedinstven "interfejs" za bajtkod.
  2. Interpretiranje bajtkoda je efikasno, ali u opštem slučaju slabijih performansi od izvršavanja programa na mašinskom jeziku.
  3. Implementacija Java virtuelne mašine je softver.
  4. Prevođenjem izvornog Java programa dobija se bajtkod.
  5. Samo programi pisani na programskom jeziku Java mogu da se prevedu u bajtkod.

2. zadatak

Za svaki od sledećih segmenata koda na jeziku Java navesti da li je vrednost promenljive rezultat jednaka vrednosti true ili false.

  1. String s1 = "Zdravo";
    String s2 = "zDrAvO";
    boolean rezultat = s1 == s2;
    
    false
  2. String s1 = new String("Zdravo");
    String s2 = "Zdravo";
    boolean rezultat = s1 == s2;
    
    false
  3. String s1 = new String("Zdravo");
    String s2 = new String("Zdravo");
    boolean rezultat = s1 == s2;
    
    false
  4. String s1 = "Zdravo";
    String s2 = "Zdravo";
    boolean rezultat = s1 == s2;
    
    true

3. zadatak

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

  1. Nizovi su objekti, koji predstavljaju seriju podataka nekog tipa.
  2. Nakon kreiranja niza objekata nizX klase X naredbom X[] nizX = new X(); svi elementi niza koji predstavljaju reference inicijalizovani su na null.
  3. Pristup elementu niza (indeksiranje) vrednošću indeksa van dozvoljenog opsega proizvodi izuzetak IndexOutOfBoundException.
  4. ...

4. zadatak

Koje tvrdnje su tačne za glavni metod main na programskom jeziku Java?

  1. Metod main mora da ima povratnu vrednost tipa int.
  2. Metod main može da bude definisan bez parametara.
  3. Metod main mora da ima modifikator static.
  4. Metod main uvek vraća rezultat 0 kada se uspešno izvrši.
  5. Aplikacija može da ima više main metoda.

5. zadatak

Šta može da stoji umesto #### da bi se sledeći kod napisan na programskom jeziku Java uspešno preveo?

class B {
    B b1;
    static B b2;
    public static void s_f() {}
    public void f() {}
    public void test() {
        ####
    }
}
  1. s_f();
  2. Object o = this.b1;
  3. Object o = b2;
  4. ...
  5. B.s_f();

6. zadatak

Koja od sledećih tvrđenja su tačna na programskom jeziku Java?

  1. Inicijalizacioni blokovi mogu da pozivaju statičke metode klase u kojoj su definisani.
  2. Inicijalizacioni blokovi mogu da budu statički, dinamički i automatski.
  3. Inicijalizacioni blokovi su članovi klase.
  4. Može da postoji tačno jedan statički i tačno jedan nestatički inicijalizacioni blok.
  5. Inicijalizacioni blokovi mogu da koriste try naredbe.

7. zadatak

Koje tvrdnje su tačne za pakete na programskom jeziku Java?

  1. Klasi koja ima paketsko pravo pristupa mogu da pristupe sve klase iz tog paketa i sve klase iz potpaketa tog paketa.
  2. Paket A.X može da postoji i ako paket A nije definisan (u programu ne postoji naredba package A;).
  3. Pravo pristupa klasi u paketu može biti javno, paketsko i zaštićeno.
  4. Klase iz paketa A.X imaju pravo pristupa svim javnim klasama iz paketa A.
  5. Podrazumevano pravo pristupa za članove klase je privatno.

8. zadatak

Kojim ponuđenim odgovorom može da se zameni oznaka #### da bi se dati izvorni kod napisan na programskom jeziku Java uspešno preveo?

class B {
    public B() {}
    public B(int i) {}
}
class D extends B {
    public D() {}
    public D(int i) {
        ####
    }
}
  1. super(i);
  2. this(i);
  3. this();
  4. //
  5. super(i); this();

9. zadatak

Koje od sledećih tvrdnji su tačne za programski jezik Java?

  1. Dozvoljeno je korišćenje referenci tipa apstraktne klase.
  2. Svi metodi apstraktne klase moraju biti apstraktni.
  3. Klasa sa svim konkretnim metodima može da bude označena modifikatorom abstract.
  4. Moguće je kreiranje objekata apstraktne klase, ako su svi metodi te apstraktne klase konkretni.
  5. Klasa sa barem jednim apstraktnim metodom mora da bude označena modifikatorom abstract.

10. zadatak

Označiti tačnu tvrdnju koja odgovara sledećem programskom segmentu.

class A implements Cloneable {}

public class Main {
    public static void main(String[] args) {
        try {
            A a = new A();
            a.clone();
            System.out.println("uspeh");
        } catch (CloneNotSupportedException e) {
            System.out.println("neuspeh");
        }
    }
}
  1. Program ispisuje neuspeh.
  2. Program se ne prevodi.
  3. Program ispisuje uspeh.