ОО2/Јун 2023
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?
- 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.
- Rezultat prevođenja izvornog kod na jeziku Java iz jedne datoteke tipa .java uvek se smesta u tačno jednu .class datoteku.
- Java virtuelna masina (JVM) prevodi izvorni kod na jeziku Java u bajtkod.
- Prevodilac jezika Java prevodi izvorni kod na jeziku Java u bajtkod.
- 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 priliko 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?
- Jedan fajl sa izvornim kodom na programskom jeziku Java moze da sadrži više definicija tipova podataka.
- Dozvoljeno je pristupiti paketskom članu definisanom u paketu p.sp iz koda nekog tipa podatka definisanog u paketu p.
- Po konvenciji imenovanja paketa, za imenovanie korisnički definisanih paketa koristi se obrnuti redosled imena Internet domena.
- Dozvoljeno je da se naredba import test.*; pojavi u jednom fajlu vise puta.
- 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?
- Klasa moze da proširuje više osnovnih klasa u jednom koraku izvođenja.
- Primer višestrukog nasleđivanja predstavlja klasa koja proširuje drugu klasu i implementira više interfejsa.
- Supertipove neke klase čine i interfejsi koje ta klasa implementira.
- Interfejsi omogućavaju višestruko nasleđivanje u programskom jeziku Java.
- Programski jezik Java podržava proširivanje (izvođenje) klasa i interfejsa u više koraka.
6. zadatak
7. zadatak
Koja od sledećih tvrđenja su tačna za programski jezik Java?
- Poziv metoda
join()
bez argumenata će blokirati niz pozivaoca dok se nit za koju je metod pozvan ne završi. - Metod
join()
je definisan klasi Thread. - Poziv metoda
notify()
za objekat niti iz koje je pozvan metodjoin()
će blokirati nit pozvanog objekta. - Metod
join()
baca provereni izuzetak InterruptedException. - Metod
join()
mora da se pozove iz sinhronizovanog koda inače će biti bačen izuzetak IllegalMonitorStateException.
8. zadatak
9. zadatak
Za svaki od sledećih vrsta .NET sklopova navesti tip (ekstenziju fajla).
- Biblioteka za dinamičko povezivanje .dll [1]
- 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
- ↑ Bilo je ponuđeno više odgovora.