Kolokvijum 2 Flashcards

(167 cards)

1
Q

Od čega se sastoji program u C-u?

A

Od proizvoljno mnogo izvornih datoteka i datoteka zaglavlja

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Šta je izvorna datoteka?

A

Izvorna datoteka je tamo gde pišeš kod

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Od čega se uobičajeno sastoji izvorna datoteka?

A

Iz pretprocesorskih direktiva, globalnih deklaracija i definicija funkcija

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Kako se uobičajeno označava izvorna datoteka?

A

Imenom sa sufiksom .c

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Šta su makroi?

A

Makroi su serije komandi koje se mogu čuvati i pokretati kada želimo da kompjuter izvrši neki zadatak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Kako se označacaju datoteke zaglavlja?

A

Imenom i sufiksom .h

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Šta se izdvaja u datoteku zaglavlja?

A

Deklaracije funkcija, globalne promenljive, makroi i konstante

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Čime počinje izvorni kod?

A

Pretprocesorskim direktivama

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Da li se u jednom redu može naći viš pretprocesorskih direktiva?

A

Ne

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Šta je token?

A

Najmanja jedinica koja je značajna kompajleru

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Da li između susednih tokena može biti proizvoljan broj razmaka i tabulatora?

A

Da

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Šta su komentari?

A

Deo koda koji se ne kompajlira

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kako pretprocesor tumači komentare?

A

Svaki komentar zamenjuje jednim praznim mestom (svaki /*, */, // postaje jedno prazno mesto)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Šta su identifikatori?

A

Identifikatori su imena promenljivih, funkcija, makroa, struktura, konstanti i drugih objekata definisanih u C-u

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Koja su pravila za izražavanje identifikatora?

A

Prvi znak ne sme biti cifra, maksimalan broj karaktera je 31 (prevodilac zapravo radi sa prvih n značajnih a ostale zanemaruje)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Koji su unapred definisani identifikatori?

A

main i _(2) func _ _

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Čemu služi _func__?

A

Služi za pristupanje stringu koji sadrži ime funkcije

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Šta je main funkcija?

A

Main je funkcija od koje počinje izvršavanje programa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Šta su tagovi?

A

Tag je identifikator koji se koristi posle struct, union ili enum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Šta je union?

A

Union je specijalni tip podataka koji može da sadrži podatke različitih tipova. Srodan je strukturi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Koja je razlika između unije i strukture?

A

Za razliku od strukture, unija zauzima samo onoliko prostora koliko je dovoljno za smeštanje njenog najvećeg člana. U svakom trenutku moguće je koristiti samo jedan od članova unije

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Koji su prostori imena identifikatora?

A

Tagovi (strukture, unije, nabrojani tipovi), imena članova unija i struktura, ostali identifikatori?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Koje mogu biti oblasti važenja identifikatora?

A

Fajl, blok, prototip, funkcija:
file scope, block scope, funkction prototype scope, function scope

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Kakve identifikatore treba da biramo?

A

Mnemoničke, samoopisujuće

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Koliko ima ključnih reči?
39, možda 40
26
Da li ključne reči mogu biti identifikatori?
Ne
27
Da li je main ključna reč?
Nije
28
Da li je stdio ključna reč?
Nije
29
Da li je struct ključna reč?
Jeste
30
Šta je promenljiva?
Imenovani objekat koji zauzima memorijski prostor određen tipom
31
Šta treba da uradimo pre nego što iskoristimo promenljivu?
Moramo je deklarisati
32
Kako se dele tipovi promenljivih?
Osnovni tipovi (aritmetički, skalarni) nabrojivi, tip void, izvedeni tipovi
33
Koji su označeni celobrojni tipovi?
signed char, int, short, long, long long
34
Da li je signed int isto što i int?
Da
35
Da li je signed long long isto što i long long?
Jeste
36
Koji je puni naziv short tipa?
Signed short int
37
Koji je puni naziv long tipa?
Signed long int
38
Koji je pun naziv long long tipa?
Signed long long int
39
Koja je razlika između char i signed char -a?
Char, signed char i unsigned char su svi različiti. Ali pri deklarisanju kompajler char gleda kao signed char
40
U kojoj datoteci se nalaze INT_MIN; CHAR_MIN i ostali?
limits.h
41
Koji su neoznačeni celobrojni tipovi?
_Bool unsigned char/int/short/long/long long
42
Kojim operatorom dobijamo veličine tipova?
sizeof()
43
Šta su INT_MIN, UINT_MAX, INT_MAX...?
Makroi
44
Koji su tipovi u formatu sa pokretnim zarezom?
Float, double, long double
45
Koliko memorije zauzimaju foat, double, long double?
4B, 8B, 10B
46
Za šta je oznaka B u memoriji?
B je bajt; bajt sadrži 8 bitova
47
Koja je preciznst float-a, double-a, long double-a?
6 cifara, 15 cifara i 19 cifara
48
Da li se u C-u može raditi sa kompleksnim brojevima?
Da, i definisani su aritmetički tipovi u tu svrhu: float, double, long double, svi sa _Complex. Imaginarna jedinica je makro I
49
Koja je datoteka za rad sa kompleksnim brojevima?
complex.h
50
Koji su nabrojivi tipovi?
Enum
51
Kako se definiše enum?
enum dani {pon, ut, sr, cet, pet, sub, ned};
52
Postoje li konstante i promenljive tipa void?
Ne postoje
53
Šta moža biti tipa void?
Funkcije, liste parametara funkcije, izrazi, pokazivači mogu biti na tip void
54
Koje su operacije celog tipa?
Sabiranje, oduzimanje, množenje, deljenje
55
Šta su operandi?
Operandi su ''sabirci'', operator je +
56
Da li postoji bool u C-u?
Postoji, ali se piše _Bool
57
Koja je vrednost izraza 5/2!=5.0/2.0
5/2 je celobrojni aritmetički izraz, a 5.0/2.0 je realni
58
Šta su leksičke komponente?
Promenljive, konstante
59
Da li je rezulzat aritmetičkih operacija uvek istog tipa kao i operandi?
Da
60
Ako operandi nisu istog tipa, šta se onda deđava?
Vrši se implicitna konverzija užeg u širi tip
61
Da li iza naredbi uvek stoji ; ?
Da
62
Šta je osnovna naredba?
Osnovna naredba je izraz iza koga sledi znak ;
63
Koji operatori imaju viši prioritet: unarni ili binarni?
Unarni imaju viši prioritet od binarnih
64
Poređaj po prioritetu operatore: relacione, aritmetičke, logičke
Aritmetički su višeg prioriteta od relacionih, zatim relacioni, pa logički
65
Kako se može promeniti prioritet operatora?
()
66
Koji operatori imaju bočni efekat?
Operatori dodele, uvećanja i smanjenja
67
Kako se predstavlja naredba dodlee u C-u?
Naredba dodele u C-u predstavlja se izratom dodele, a njeno izvršavanje se zasniva na bočnim efektima operatora dodele
68
Koja je razlika između n++ i ++n?
U oba slučaja se promenljiva uvećava za 1. Ali, izraz ++n uvećava promenljivu pre nego što se njena vrednost koristi, a n++ uvećava n nakon što se njena vrednost koristi
69
Da li se, i ako da, kako, razlikuju: x = ++n i x = n++
Prvo x je n+1, a drugo n
70
Šta je prosta naredba?
Izraz za kojim sledi karakter ; Mora imati bar jedan bočni efekat
71
Navedi primer složene (blok) naredbi?
if else...
72
Koja je razlika između break i continue?
break izlazi iz ciklusa, a continue prosleđuje u sledeću iteraciju
73
Šta je ternarni operator u C-u?
Neko govno koje radi isto kao if else. Evo primer: min = (x
74
Koji je prvi operand ternarnog operatora?
Uslovni izraz
75
Kakav tip je niz?
Niz je objektni tip
76
Šta je niz?
Serija objekata istog tipa koji se nalaze na susednim memorijskim okacijama
77
Šta znači da je tip objektni?
Njegov opis sadrži skladištnu veličinu
78
Kada se ne može definisati niz promenljive dužine?
Ako je static objekat
79
Šta se ne sme raditi sa nizovima promenljive dužine?
Ne mogu biti član strukture, ne mogu se inicijalizovati u definiciji
80
Ako je niz statičkog životnog veka, šta mora važiti?
Njegovi inicijalizatori moraju biti konstantni izrazi
81
Da li se dužina niza mora navoditi ako je napisana inicijalizovana lista?
Ne mora
82
Ako je niz definisan i dužinom i inicijalizacionom listom, koliki je taj niz?
Važeća je dimenzija zadata u uglastim zagradama
83
Pomoću kog operanda se može dobiti veličina neke strukture?
sizeof() daje veličinu u bajtovima
84
Šta je pokazivač?
Pokazivač je referenca na podatak tipa objekta ili na funkciju - adresa u memoriji, broj koji ukazuje na lokaciju u memoriji i tip objekta ili funkcije
85
Gde se primenjuju pokazivači?
Pri definisanju funkcija koje se pozivaju po referenci i za pravljenje dinamičkih struktura (spregnute liste, stabla...)
86
Šta je sadržaj pokazivačke promenjive?
Adresa, lokacija u memoriji druge promenljive ili početka memorijskog bloka
87
Šta je operativna memorija?
Niz memorijskih lokacija koje su numerisane celim brojevima 0,1,2,....m-1 pri čemu je m kapacitet memorije
88
Šta je adresa?
Adresa je broj pridružen nekoj memorijskoj lokaciji
89
Koja je najmanja adresabilna memorijska lokacija?
Bajt (sastoji se od 8 bitova)
90
Kolika je veličina char-a?
1B
91
Kolika je veličina short int-a?
2B
92
Kolika je veličina long int-a?
4 bajta
93
Kolika je veličina double-a?
8B
94
Kolika je obično veličina pokazivača?
4B
95
Šta radi operator &?
& je operator referenciranja - daje adresu promenljive
96
Šta radi p=&a?
Adresa promenljive a se dodeljuje promenljivoj p
97
Kako se štampa vrednost pokazivača?
%p
98
Kada & ne sme da se primeni?
Na prolazne podatke za koje je prilikom definisanja traženo da se smeste u procesorske registre (modifikator tipa register)
99
Koji je operator referenciranja, a koji operator dereferenciranja?
& referenciranje, * dereferenciranje
100
Kako se naziva operator * ?
* je operator indirektnog adresiranja
101
Zašto se operator * naziva operatorom indirektnog adresiranja?
Jer se podaci dohvataju posredno, pomoću adrrese
102
Da li treba uključiti neku biblioteku da bi se koristila konstanta NULL?
Ona se nalazi u stdio.h
103
Na šta pokazuje pokazivačka promenljiva koja ima vrednost NULL?
Ne pokazuje ni na šta
104
Na šta pokazuje neinicijalizovana pokazivačka promenljiva?
Na neko đubre - nije NULL, svakako
105
Šta je konstanta pokazivača na vrednost NULL?
Konstantan celobrojan izraz vrednosti 0, konvertovan na tip void *
106
Šta je pokazivač na tip void?
Pokazivač tipa void *, to je pokazivač opšte namene - on može da predstavlja adresu bilo kog objekta, ali ne i njegov tip. Da bismo pristupili objektu u memoriji pomoću void * pokazivača, mora se kastovati na odgovarajući tip
107
Koja je suština 'promenljivi podaci i nepromenljivi pokazivači'?
Gledaš gde je const
108
Da li se operatorom = može dodeliti vrednost pokazivaču od pokazivača?
Da, ako su pokazivači istog tipa. Ako su različiti, kastovati. Kastovanje ne mora ako je jedan od pokazivača generički pokazivač void *
109
Da li se mogu vršiti aritmetičke operacije između pokazivača i celobrojnog podatka?
Da, ako pokazivač nije tipa void * (ne zna se šta je jedinica mere)
110
Šta je jedinica mere pri sabiranju i oduzimanju vrednosti pokazivača i celog broja?
Veličina pokazivanih podataka
111
Da li se void pokazivači mogu porediti?
Samo sa NULL
112
Šta su ograničeni pokazivači?
To su pokazivači sa kvalifikatorom restrict
113
Koja je veza između ograničenog pokazivača i objekta na koji on pokazuje?
Tokom životnog veka pokazivača, objekat se može menjati ili mu se može pristupati **samo pomoću tog pokazivača**
114
Koji su specifikatori memorijskih oblasti?
extern (podrazumevana vrednost), static (ne vidi se u ostalim izvornim datotekama), register (govori prevodiocu da promenljivu učini što pre dostupnom), inline (uputstvo prevodiocu da na mesto funkcije direktno umetne mašinski kod)
115
Kako se niz prosleđuje kao parametar funkcije?
Sa tip ime[] odnosno tip *ime (ekvivalenti)
116
Kada se koristi inline?
Ako imamo čestu upotrebu malih funkcija, prevodiocu ćemo reći da direktno umetne mašinski kod
117
Kada nije preporučljivo definiisati funkciju kao inline?
Kada funkcija sadrži ciklus
118
Koji je operator člana strukture?
.
119
Kako se . naziva?
Operator člana strukture
120
Šta je -> ?
-> je pokazivač na strukturu
121
Čemu je ekvivalentno p->m?
(*p).m
122
Šta je datoteka?
Sekvenca bajtova
123
Šta radi funkcija fopen() ?
Povezuje datoteku s tokom podataka i inicijalizuje objekat tipa FILE
124
Šta sadrži objekat FILE?
Sve informacije neophodne za upravljanje tokom podataka
125
Koje su informacije neophodne za upravljanje tokom podataka?
Pokazivač na korišćeni bafer, indikator pozicije u datoteci, indikatori greške i kraja datoteke
126
Na koliko načina se može odvijati prenošenje tokova podataka u odnosu na bafer?
Na tri načina
127
Koja su tri načina na koja se tokovi podataka mogu prenositi u odnosu na bafer?
Po punjenju bafera (fully buffered), posle znaka za novi red (line buffered), izvan bafera (unbuffered)
128
Šta znači da se tok podataka prenosi po punjenju bafera?
Znakovi u baferu se normalno prenose samo ako je bafer pun
129
Šta znači da se tok podataka prenosi posle znaka za novi red?
Znaci u baferu se normalno prenose samo ako se u bafer upiše znak za novi red ili ako je pun
130
Šta znači da se tok podataka prenosi izvan bafera?
Znakovi se prenose što je brže moguće
131
Koji su standardni tokovi podataka?
stdin je pridružen tastaturi, a stdout i stderr ekranu konzole
132
Kako se upisuju stdin, stdout, stderr?
Stdin i stdout posle znaka za novi red, stderr van bafera
133
Koja funkcija radi redirekciju?
freopen()
134
Šta radi funkcija freopen() ?
Preusmerava tok podataka, otvara određenu datoteku i povezuje je s postojećim tokom podataka određenim trećim argumentom. Datoteka koja je prethodno bila povezana sa tim tokom, zatvara se
135
Koje su funkcije za otvaranje datoteke?
fopen() , freopen(), tmpfile()
136
Koji su argumenti funkcije freopen?
Ime datoteke, režim rada, tok
137
Šta radi funkcija *tmpfile?
Pravi novu privremenu datoteku i otvara je zbog binarnog upisa i čitanja (isto radi što i fopen sa režimom "wb+")
138
Šta znači b ili + u argumentu režima čitanja datoteke?
Znači da je dozvoljeno i čitanje i upis
139
Ako je označeno da datoteka može da se i čita i da se u nju upisuje, da li se odmah posle čitanja može upisati?
Ne, prvo se mora pozvati funkcija fflush() ili funkcije za pozicioniranje fseek(), fsetpos() ili rewind()
140
Šta znači znak b kod argumenta režima čitanja datoteke?
Znači da je tok koji se povezuje sa datotekom binaran - datoteka se otvara u binarnom režimu
141
Šta znači ako znakovni niz režima počinje znakom a?
Znači da se datoteka mora napraviti ako ne postoji, a ako postoji, njen sadržaj će se očuvati - sve operacije upisa se obavljaju na kraju datoteke
142
Šta radi funkcija fread?
Ona se koristi za čitanje binarnih datoteka
143
Šta se postiže uvođenjem polja bitova?
Kompaktnost memorije u C jeziku
144
Šta je, prostim rečima, polje bitova?
Struktura podataka slična strukturi, ali se za svaki 'član' rezerviše navedeno broj bitova. Definiše se **kao struktura, sa struct**
145
Da li polja bitova imaju adrese?
Pojedinačna polja bitova nemaju adrese
146
Koje su operacije nad bitovima?
&, |, ^, <<, >>, ~
147
Šta je ~ ?
1-komplement
148
Na kojim tipovima se mogu primeniti bitovski operatori?
char, short, unsigned, int, long
149
Čemu služe maske?
Maske mogu poslužiti da radimo sa pojedinačnim bitovima, iako nisu adresabilni
150
Od čega zavisi dodeljivanje memorije?
Od zahteva iz procesa za dodatnim memorijskim resursima, kao i od količine slobodne 'heap' memorije
151
Koliko ima funkcija za dinamičko upravljanje memorijom?
4
152
Koje su funkcije za dinamičko upravljanje memorijom?
malloc(), calloc(), realloc() free()
153
Šta rade one 4 funkcije za dinamičko upravljanje memorijom?
malloc() i calloc() dodeljuju novi blok u memoriji realloc() menja veličinu dodeljenog bloka free() oslobađa dodeljenu memoriju
154
Gde se nalaze funkcije za dinamičku alokaciju memorije?
stdlib.h
155
Koliko argumenata imaju malloc, calloc, realloc, free?
malloc 1, calloc 2, realloc 2, free 1
156
Koji je argument malloc() ?
Samo veličina bloka koji želimo alocirati
157
Koji su argumenti calloc?
n i veličina elemenata koje želimo rezervisati
158
Koji su argumenti realloc() ?
Pokazivač na memorijski blok koji se realocira i veličina realociranog memorijskog bloka
159
Koji je argument free() ?
arg, ne znam šta je to
160
Šta radi malloc() ?
Alocira blok memorije i vraća generički pokazivač na početak bloka
161
Šta znači da je pokazivač generički?
Pokazivač bez tipa
162
Kako nazivamo pokazivač bez tipa?
Generički pokazivač
163
Šta radi calloc() ?
Rezerviše memorijski blok dovoljan za memorisanje n elemenata svaki veličine size bajtova, znači n*size i vraća generički pokazivač koji pokazuje na rezervisan memorijski blok
164
Kako je inicijalizovan memorijski blok dodeljen calloc?
Inicijalizovan je na 0
165
Šta radi funkcija realloc?
Oslobađa rezervisani memorijski blok i rezerviše novi veličine size bajtova; vraća generički pokazivač na početak novog memorijskog boka
166
Šta radi funkcija free?
Oslobađa memorijski prostor (mora se koristiti posle malloc i calloc)
167