You are on page 1of 15

PITANJA I ODGOVORI ZA PREDAVANJE 3

Pitanje 1: Da li se vektori mogu iskoristiti za kreiranje višedimenzionalnih struktura podataka?

Odgovor:

a) Da (T)

b) Ne

c) Samo za kreiranje matrica

d) Ništa od ponuđenog

Pitanje 2: Realna matrica 𝑀 = (𝑚𝑖𝑗 ) kreira se pomoću vektora kao:


10×5

Odgovor:

a) std::vector<std::vector<double>> M(10, 5);

b) std::vector<std::vector<double>> M(10, std::vector<double>(5));

c) kreira se drugačije

Pitanje 3: Kako kreirati cjelobrojnu matricu M formata 5x4, čiji će svi elementi biti inicijalizirani na
vrijednost 10?

Odgovor:

a) std::vector<std::vector<int>> M(5, 4, 10);

b) std::vector<std::vector<int>> M(5, 4, std::vector<int>(5), 10);

c) std::vector<std::vector<int>> M(5, 4, std::vector<int>(5,10)); (T)

d) ništa od navedenog

Pitanje 4: Da li se matrice kreirane pomoću vektora mogu koristiti kao klasični dvodimenzionalni
nizovi u jeziku C?

Odgovor:

a) Da (T)

b) Ne

c) Samo u posebnim situacijama

Pitanje 5: Koja se koristi ključna riječ da se neka rogobatna konstukcija zamijeni puno kraćim
zapisom?
Odgovor:

a) auto

b) typedef (T)

c) #define

d) sasvim nešto četvrto

Pitanje 6: Kako se u C++11 vrši automatsko određivanje tipa?

Odgovor:

a) pomoću ključne riječi sizeof

b) korištenjem riječi typedef

c) upotrebom riječi auto

d) ništa od navedenog

Pitanje 7: Kako se prave grbave matrice?

Odgovor:

a) Upotrebom klasičnog dvodimenzionalnog niza, npr. double grbava [10][6];

b) Isključivo korištenjem vektora

c) Upotrebom pokazivača

d) Tehnikama predočenim pod b) i c) (T)

e) Sasvim neke druge tehnike su u pitanju za kreiranje grbavih matrica

Pitanje 8: Da li se napravljenoj matrici (realizirana preko niza vektora) može promijeniti dimenzija, i
ako može kako?

Odgovor:

a) Može se promijeniti dimenzija u kombinaciji sa upotrebom ključne riječi resize, kao i brojačkih
struktura (T)

b) Ne može se nikako izmijeniti njena dimenzija

c) Samo u nekim iznimnim situacijama može se obaviti redimenzionisanje matrice

d) Jednom stvorena dimenzija se ne može mijenjati sve dok program traje

Pitanje 9: Da li se obični dvodimenzionalni nizovi u jeziku C mogu inicijalizirati prilikom deklaracije?

Odgovor:
a) Da (T)

b) Ne

Pitanje 10: Kako se vrši inicijalizacija dvodimenzionalni nizoava u C++-u?

Odgovor:

a) Upotrebom inicijalizacionih listi (T)

b) Korištenjem brojačkih struktura

c) Pješke dodjeljivanje svakom elementu određenu vrijednost

d) Ništa od izlistanog

Pitanje 10: Da li se u C-u i C++-u broj vrsta može automatski odrediti na osnovu inicijalizacione liste,
dok se broj kolona ipak mora eksplicitno zadati?

Odgovor:

a) Da (T)

b) Ne, jer se ne trebaju unaprijed zadavati ni broj vrsta ni kolona

c) Neophodno je zadati samo broj vrsta, dok se broj kolona može automatski odrediti

d) Uvijek se mora zadati broj vrsta i kolona

Pitanje 11: Šta od navedenog nije ispravno?

Odgovor:

a) int m[][3] = {{2, 3, 5}, {4, 3, 2}};

b) int m[][] = {{2, 3, 5}, {4, 3, 2}};

c) int m[2][3] = {{2, 3, 5}, {4, 3, 2}};

d) ništa

e) ispravno je pod a) i pod c) (T)

Pitanje 12: Da li je u C++11 moguće inicijalizirati vektor vektôra inicijalizacionom listom, čiji su
elementi vektori, ili ponovo inicijalizacione liste?

Odgovor:

a) Tako nešto je besmisleno raditi

b) Moguće je samo za neke tipove podataka, općenito ne treba to raditi

c) Uvijek je moguće to postići (T)


Pitanje 13: Označite šta od navedenog ispod nije regularno raditi u C++11?

Odgovor:

a) std::vector<std::vector<int>> M = {{2, 3, 5}, {4, 3, 2}};

b) std::vector<std::vector<int>> M{ {{2, 3, 5}, {4, 3, 2}}};

c) sve osim pod a) i pod b)

d) std::vector<std::vector<int>> M = {{2, 3, 5}, std::vector<int>{4, 3, 2}};

Pitanje 14: Označite koje deklaracije u C++11 govore o grbavim matricama:

Odgovor:

a) int M[3][3] = {{2, 3, 5}, {4}, {3, 2}};

b) int M[3][3]{ {{2, 3, 5}, {4}, {3, 2}}};

c) std::vector<std::vector<int>> M{{2, 3, 5}, {4}, {3, 2}};

d) Matrice pod a) i pod c) su grbave

e) Matrice pod a) i b) su grbave

f) Samo matrica pod c) je grbava (T)

g) Niti jedna od deklaracija pod a), b) i c) ne predstavlja grbavu matricu

Pitanje 15: Kako se u jeziku C predstavljaju stringovi?

Odgovor:

a) kao obični nizovi čiji su elementi znakovi tipa char

b) kao nizovi čiji su elementi karakteri tipa short int

c) sasvim nešto treće

Pitanje 16: Koja je oznaka za kraj stringa u jeziku C?

Odgovor:

a) specijalni znak sa ASCII šifrom 0 (T)

b) specijalni znak sa ASCII šifrom '\n'

c) specijalni znak sa ASCII šifrom 122

d) ništa od spomenutog

Pitanje 17: Šta su nul-terminirani nizovi znakova?


Odgovor:

a) cjelobrojni nizovi

b) nizovi čiji su elementi tipa char

c) nizovi čiji su elementi tipa char, pri čemu je posljednji element sa ASCII šifrom 0 (T)

d) sasvim nešto četvrto

Pitanje 18: Kako se izdvaja znak iz ulaznog toka, bez ignoriranja, npr. razmaka, oznake za novi red
'\n', itd.?

Odgovor:

a) Nije neophodno na instancom std::cin ništa poduzeti

b) Neophodno je nad ulaznim objektom pozvati metodu get (T)

c) Potrebno je nad objektom std::cin pozvati metodu put

d) Odgovor na ovo pitanje je nešto suptilnije prirorde

Pitanje 19: Kako da se dobije znak iz ulaznog toka, a da se pri tome ipak ne izvrši njegovo izdvajanje?

Odgovor:

a) Upotrebom funkcije peek nad ulaznim objektom std::cin (T)

b) Upotrebom neke druge funkcije

c) Ništa od specificiranog

Pitanje 20: Šta vraćaju funkcije get i peek kada se pozovu kao metode nad objektom std::cin?

Odgovor:

a) Znak

b) Broj (T)

c) Zavisi od situacije

Pitanje 21: Kako se može izvršiti konverzija malih u velika slova:

Odgovor:

a) Isključivo upotrebom funkcije toupper iz biblioteke cctype

b) Korištenjem ugrađene funkcije toupper ili npr. upotrebom ove konstrukcije: znak += 'A' - 'a', pri
čemu je znak između 'a' i 'z' (T)
Pitanje 22: Da li je sljedeća konstrukcija while((z=std::cin.get())!= '\n'){} regularna, i ako jeste, kako se
može interpretirati?

Odgovor:

a) Nije regularna

b) Ona je regularna, te uzimajući da je promjenljiva z tipa char, ona se interpretira kao storiranje
znakova u promjenljivu z sve dok se ne pritisne tipka Enter (T)

c) Konstrukcija je sintaksno regularna, ali nema smisla da se dodjeljuje promjenljivoj z neka vrijednost
unutar logičkog dijela za while petlju

d) Konstrukcija je posve regularna, samo nije jasno kada će se petlja završiti, i da li će uopće završiti,
jer nema nigdje eksplicitne provjere logičkog izraza, čime bi se obezbijedilo iteriranje unutar nje

Pitanje 23: Koja se koristi ugrađena funkcija u C++-u za učitavanje cijelog niza znakova, a ne znak po
znak?

Odgovor:

a) putline

b) getline (T)

c) scanf

d) neka druga

Pitanje 24: Koliko parametara ima funkcija getline? Odaberite ispod koje njihovo značenje je tačno.

Odgovor:

a) Funkcija nema parametara

b) Funkcija ima samo jedan parametar

c) Funkcija ima tri parametra, pri čemu je prvi parametar nul-terminirani niz znakova, drugi
parametar je broj koji je za jedinicu veći od max. broja znakova koji će se pročitati, a treći parametar
je znak koji se koristi kao oznaka za kraj unosa

d) Funkcija može imati dva parametra, pri čemu prvi označava niz znakova u koji se smještaju pročitani
znakovi, dok se drugi koristi za specificiranje broja znakova koji će se pročitati

e) Tačni su odgovori pod c) i d) (T)

f) Tačan je samo odgovor pod b)

Pitanje 25: Označite ispravno značenje upotrebe operatora sizeof nad nekom promjenljivom a:

Odgovor:

a) vraća broj bitova koje promjenljiva a zauzima u memoriji


b) vraća broj znakova koje promjenljiva a nizovskog tipa zauzima u memoriji

c) vraća broj bajtova koje promjenljiva a zauzima u memoriji

d) tačni su odgovori pod b) i c) (T)

e) tačan je samo odgovor pod c)

f) niti jedan od ponuđenih odgovora nije tačan

Pitanje 26: U kojoj se biblioteci nalazi funkcija strlen?

Odgovor:

a) iostream

b) iomanip

c) cstring (T)

d) nekoj četvrtoj

Pitanje 27: Kako se postiže pražnjenje spreminka odnosno bafera?

Odgovor:

a) korištenjem ove konstrukcije: std::cin.ignore(10000, '\n'); (T)

b) upotrebom neke funkcije iz biblioteke iomanip

c) automatski se obavlja pražnjenje

d) ništa od navedenog

Pitanje 28: Koja je uloga gutača praznina std::ws?

Odgovor:

a) Nema posebno neku važnu ulogu

b) Njegova uloga je da se uklone samo praznine na kraju

c) Njegova uloga je da se uklone sve praznine (T)

Pitanje 29: Koja se koristi biblioteka za rad sa dinamičkim tipom podataka string?

Odgovor:

a) istoimena biblioteka string (T)

b) biblioteka cstring
c) biblioteka algorithm

d) neka četvrta

Pitanje 30: Konstrukcija std::string s; kreira:

Odgovor:

a) string nulte dužine, koji se automatski inicijalizira na prazan string (T)

b) string čija dužina nije jednaka nula

Pitanje 31: Koje deklaracije nisu legalna?

Odgovor:

a) std::string s = "P2";

b) std::string s("P2");

c) std::string s{ "P2"};

d) std::string s ='P2';

e) samo pod d) nije legalna deklaracija (T)

Pitanje 32: Da li je legalno da se nulterminirani niz znakova koristi za inicijalizaciju dinamičkog niza
znakova i obratno?

Odgovor:

a) Da, obratno Ne (T)

b) Ne, obratno Da

c) U oba slučaja nije legalno

d) Legalno je u oba slučaja

Pitanje 33: Upotreba operatora = kod dinamičke promjenljive tipa std::string ima istu ulogu kao kod
drugih primitivnih tipova podataka, tj. njegovo preopterećenje je dobro urađeno kopirajućim
operatorom dodjele?

Odgovor:

a) Dobro je izvedeno (T)

b) Samo u nekim slučajevima

c) Nije najbolje izvedeno


Pitanje 34: Obzirom da nije dopušteno dodjeljivanje dinamičke promjenljive tipa std::string običnom
niz nul-terminiranih znakova, da li se to dodjeljivanje može nekako ostvariti?

Odgovor:

a) Da, uz pomoć ugrađenje funkcije std::strcpy (T)

b) Nažalost, takva vrsta kopiranja nije moguća

c) Samo naprednim programerskim tehnikama

Pitanje 35: Kako se može kreirati 20 kopija slova A?

Odgovor:

a) std::string(20, 'A') (T)

b) 20*std::string('A')

Pitanje 36: Da li se getline funkcija može koristiti za rad sa dinamičkim stringovima posve isto kao pri
radu sa nul-terminiranim znakovnim nizovima?

Odgovor:

a) Da

b) Ne (T)

c) Samo u određenim situacijama

Pitanje 37: Uzimajući da je promjenljiva s dinamički string, označite koja od konstrukcija nije valjana:

Odgovor:

a) std::cin.getline(s);

b) std::getline(std::cin, s);

c) Regularna je konstrukcija pod b)

Pitanje 38: Da li se ista vrsta indeksiranja [] koristi za pristup dinamičkim stringovima, te običnim nul-
terminiranim nizovima znakova?

Odgovor:

a) Da (T)

b) Ne

Pitanje 39: Obavijest o dužini dinamičke promjenljive s (npr. std::string s;) postiže se pozivom:
Odgovor:

a) funkcije size odnosno length nad objektom s (T)

b) funkcije length tako što joj se kao stvarni parametar prosljeđuje promjenljiva s

c) ništa od navedenog

Pitanje 40: Koja od sljedećih dodjela nije legalna?

Odgovor:

a) std::string s; for(int i(0); i < 10; i++) s[i] = 'A'; (T)

b) std::string s(10,'A'); for(int i(0); i < 10; i++) s[i] = 'A';

Pitanje 41: Da li dinamički stringovi moraju biti nul-terminirani?

Odgovor:

a) Da

b) Ne, jer nema nikakve garancije da će se iza posljednjeg korisnog znaka stringa nalaziti znak sa ASCII
šifrom 0 (T)

c) Ovisi

Pitanje 42: Koja od sljedećih konstrukcija nije bezbjedna, pretpostavljajući da je promjenljiva s


dinamički string inicijaliziran na "Danas strasno grmi"?

Odgovor:

a) for(int i(0); s[i]!=0; i++) std::cout <<char(std::toupper(s[i])); (T)

b) for(int i(0); i<s.length(); i++) std::cout <<char(std::toupper(s[i]));

c) for(char z : s) std::cout << char(std::toupper(z));

Pitanje 43: Kako radi funkcija strcat koja se nalazi u biblioteci cstring?

Odgovor:

a) Ova funkcija ne vraća ništa, ali pri tome modificira svoje stvarne parametre tako što nadovezuje
sadržaj svog drugog parametra na kraj prvog parametra, čime mijenja sadržaj prvog parametra (T)

b) Ova funkcija vraća sadržaj izmijenjenog prvog parametra tako što nadovezuje sadržaj svog drugog
parametra na kraj prvog parametra

c) Ova funkcija kreira novi dinamički string i vraća ga kao rezultat bez da vrši modifikaciju svojih stvarnih
parametara

d) Ništa od navedenog
Pitanje 44: Da li postoji automatska konverzija iz tipa niz znakova u tip dinamički string?

Odgovor:

a) Da (T)

b) Ne

c) Možda u nekim iznimnim slučajevima

Pitanje 45: Šta je moguće proslijediti funkciji čiji je formalni parametar tipa std::string:

Odgovor:

a) obični ili konstantni nul-terminirani niz znakova (T)

b) cjelobrojnu promjenljivu

c) realnu promjenljivu

Pitanje 46: Pronađite uljeza, tj. determinirajte koja od konstrukcija ima sintaksnu grešku, uzimajući
da su promjenljive: a, b, i c dinamički stringovi, a promjenljive niz1 i niz2 nul-terminirani nizovi
znakova:

Odgovor:

a) c = a + b + c; c = a + "bla bla"; c = "bla bla" + a;

b) c = niz1 + a; c = "Dobar " + "dan!";

c) c = niz1 + "bla bla"; c = niz1 + niz2;

d) c = niz1 + std::string("bla bla"); c= std::string(niz1) + niz2;

e) Sve je tačno osim pod b)

f) sve je tačno osim pod b) i c) (T)

g) sve je tačno osim pod c)

Pitanje 47: Kako radi funkcija substr?

Odgovor:

a) Ova funkcija vrši konverziju podstringa u brojčanu vrijednost

b) Ova funkcija vraća kao rezultat dinamički string, koji je izdvojen kao dio iz stringovske promjenljive
na koju je primijenjen (T)

c) Ova funkcija ima dva parametra, u prvom parametru prima string, dok u drugom vraća po referenci
dinamički string, koji je izdvojen kao dio iz stringovske promjenljive na koju je primijenjen

d) ništa od navedenog
Pitanje 48: Da li je funkcija strcmp neophodna pri radu sa promjenljivama tipa std::string?

Odgovor:

a) Svakako

b) Samo u rijetkim situacijama

c) Nikako (T)

Pitanje 49: Da li se funkcija to_string uvedena u verziji 11 jezika C++ može ovako implementirati:

template <typename T> std::string napraviString(T x) {std::ostringstream s; s << x; return s.str();}

Odgovor:

a) Da (T)

b) Ne

c) Vjerovatno

Pitanje 50: Za šta se redom koriste ove funkcije std::stoi i std::stod?

Odgovor:

a) za konverziju stringa u int odnosno u double (T)

b) za neku drugu konverziju

Pitanje 51: Konverzija iz tipa std::string u znakovni niz se ostvaruje:

Odgovor:

a) pozivom funkcije c_str (T)

b) eksplicitnom konverzijom, npr. (char [])s, pri čemu je s dinamički string

c) ništa od navedenog

Pitanje 52: Uzimajući da je s dinamički string, a A nul-terminirani niz znakova, kako se može
interpretirati ova konstrukcija: std::strcpy(A, s.c_str());

Odgovor:

a) kopira se dinamički string u obični niz A

b) kopira se nul-terminirani niz A u dinamički string s

c) kopiraju se znakovi dinamičkog stringa s u nul-terminirani niz znakova A (T)

d) gornja konstrukcija ima posve drugo značenje


Pitanje 53: Šta su izuzeci?

Odgovor:

a) Oni su su preporučeni način reagiranja funkcije na nepredviđene okolnosti, npr. na argumente za


koje funkcija nije definirana, ili pak kada se nema dovoljno memoriju ili drugih resursa

b) Izuzeci su moćni mehanizam koji u nepredvidivim situacijama pomažu programu da nastavi sa


radom drugačijim tokom u odnosu na situaciju kada je sve bilo korektno

c) Izuzeci predstavljaju neki način vraćanja informacija iz funkcija pomoću kojih se može reagirati na
nepredvidive pojave

d) Sve osim pod c)

Pitanje 54: Koja se koristi ključna riječ za bacanje izuzetaka?

Odgovor:

a) throw (T)

b) return

c) exit

d) ništa od navedenog

Pitanje 55: Da li nailaskom na naredbu throw se vrši prekidanje programa?

Odgovor:

a) Da (T)

b) Ne

c) Skoro uvijek

d) Ponekad

Pitanje 56: Koje se ključne riječi koriste za hvatanje izuzetaka?

Odgovor:

a) try

b) catch

c) try i catch (T)

d) ništa od prikazanog

Pitanje 57: Koja se skupina naredbi neće izvršiti unutar try-catch bloka?
Odgovor:

a) ukoliko dođe do problema neće se nikada izvršiti skupina unutar catch bloka

b) ukoliko nema problema izvršit će se unutar catch bloka

c) bez obzira ima li ili nema problema izvršit će se sve naredbe unutar try bloka

d) prvo će se izvršiti unutar try bloka, a ako dođe do problema tokom izvršavanja programa, nastavit
će se izvršavati one naredbe unutar catch bloka (T)

Pitanje 58: Koji se tipovi formalnih parametara koriste u naredbi catch tokom hvatanja izuzetaka?

Odgovor:

a) Konstantni niz znakova tipa char

b) cjelobrojni tip

c) realni tip

d) ...

e) std::domain_error, std::logic_error, std:: overflow_error

f) pokazivač na konstantni tip

g) sve od a) do f)

Pitanje 59: Opišite kako proizvoljan try-catch blok radi kada se ima više od jednog izuzetka. Na
primjer imamo tri catch-a: try {Neke_naredbe}catch(int broj) {Obrada_1;}catch(const char tekst[])
{Obrada_2;}catch(...) {Obrada_3;}

Pitanje 60: Kako postići u verzii C++11 da funkcija nikada ne baci izuzetak?

Odgovor:

a) Nećemo koristiti ključnu riječ throw

b) Koristit ćemo je, ali ćemo vršiti neku vrstu kontrole

c) upotrebom ključne riječi noexcept

d) ništa od nabrojanog

Pitanje 61: Napisati u kojoj se biblioteci nalaze izuzeci

Pitanje 62: Da li je preporučljivo da se koriste izuzeci primitivnih tipova podataka ili oni iz biblioteke
stdexcept?

Odgovor:
a) Da (T)

b) Ne

c) Samo u posebnim okolnostima

Pitanje 63: Nabrojte bar tri izuzetka iz biblioteke stdexcept.

You might also like