C Programiranje (Zadaci)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

1.

Napisatifunkcijukojavraalogikuvrijednostistinaakojeuzadanomnizukaraktera
pronaenzadanipodniz,alogikuvrijednostlainae.Poredtoga,funkcijamoramodificirati
zadaninizkarakteratakodasamoprvopojavljivanjepodnizauzadanomnizupretvoriuvelika
slova.Zatraenjepodnizaobaveznokoristitiodgovarajuufunkcijuizprogramskebiblioteke,
tepokazivadobijenobavljanjemtefunkcijeobaveznokoristitipriizmjenikarakteraunizu.

Primjeri:
Zazadaninizdanasjeradnidanizadanipodnizdan,funkcijavraalogikuvrijednost
istina,azadaninizmijenjauDANasjeradnidan.
Zazadaniniz"danasjesubota"izadanipodniz"nedjelja",funkcijavraala,inemijenja
zadaniniz.

2.
NapisatifunkcijujestSigurnakojavraalogikuvrijednostistinaakojezadanalozinka
sigurna,alogikuvrijednostlainae.Sigurnalozinkajenizkarakterakojizadovoljavasvatri
navedenauslova:
usebiimabaremjednoslovoabecede(moebitimalo,amoebitiivelikoslovo)
usebiimabaremjednucifru
usebiimabaremjedanspecijalnikarakter.Specijalnikarakterisuonikojisemoguispisati,a
nisunicifrenislova.

3.
NapisatifunkcijuprethodnikkojaupozivajuiprogramvraaASCIIprethodnikzadanog
karaktera(tj.karakterkojiseuASCIItabelinalazinapozicijineposrednoispredzadanog
karaktera).Npr.akosefunkcijizadakarakter'K',funkcijatrebavratitikarakter'J'.Nije
potrebnovoditiraunaotometaesedesitiakosefunkcijizadakarakter'\0'.
Napisatiglavniprogramukojemesestastature,pomoufunkcijegets,uitatinizkaraktera
(moesepretpostavitidakorisniksigurnoneezadatinizduiod50karaktera).Namonitor
ispisatiuitaninizkaraktera.
Zatimniztrebaizmijenitinaslijedeinain:iznizaizbacitikarakterepraznine(blank),a
preostalekarakterezamijenitinjihovimASCIIprethodnicima(ASCIIprethodnikeodrediti
pomoufunkcije
prethodnik
).Ispisatidobijenirezultat.

4.
NapisativlastitumacrodefinicijumojIsUpperkojakaoargumentprihvatakarakter.Zaveliko
slovoabecedemacrovraalogikuvrijednostistina,azasveostalekarakterevraalogiku
vrijednostla(nijedoputenokoritenjeugraenemacrodefinicijeisupperizctype.h).
Napisatifunkcijukojakaoulazniargumentprimanizkaraktera.Funkcijamijenjazadaniniz
takodasvakovelikoslovokojepronaeunizuredomnadopienakrajniza.Funkcijau
pozivajuiprogramvraapokazivanaprvidodanikarakteriliNULLpokazivaukolikonije
dodannitijedankarakter.Zaispitivanjejelinekikaraktervelikoslovo,ufunkcijiobavezno

koristitimacromojIsUpper.Napisatiglavniprogramkojiefunkcijupozvatizaniz"PrvoI
Drugo",ispisatiizmijenjeninizte,uzpomoupokazivaadobijenogkaorezultatfunkcije,
ispisatikarakterekojisunadopisaninakrajniza.
Primjer:Zadaninizkaraktera"PrvoIDrugo"funkcijamijenjauniz"PrvoIDrugoPID",teu
pozivajuiprogramvraapokazivana13.karakterniza.

5.
taeseispisatisljedeimdijelomprograma?
charniz[30]="Zadatakzavjezbu"
charniz2[2]={'a','b'}
strcat(niz,niz2)
printf("%s",niz)

6.
taeseispisatiizvoenjemsljedeegprograma?
intmain(){
chara[20]="abcdeMNOP"
inti=0
while(a[i]){
putchar(tolower(a[i++]))
}
}

7.
Napisativlastituimplementacijufunkcijestrrchrbezkoritenjadrugihugraenihfunkcijaiz
zaglavljastring.h.Prototipfunkcijeje:char*moj_strrchr(constchar*s,intc)
Napisatiglavniprogramukojemjestastaturepotrebnouitatiniz
s
(maksimalneduine30
karaktera)ikarakter
c
.
Pomoufunkcijemoj_strrchrpronaitegdjeseunizu
s
nalazizadnjikarakter
c
,tekoristei
dobijenirezultatispiitesadrajniza
s
odpoetkanizadopronaenogkaraktera
c
.

Primjeri:
ZauitankarakterbiuitannizAbrakadabra,glavniprogramnamonitorispisuje:
Abrakadab
ZauitankaraktereiuitannizAbrakadabra,glavniprogramnamonitorispisuje:
Uzadanomnizunemakarakterae.

8.
NapisatifunkcijuizbaciZnakovekojaizzadanognizakarakteraproizvoljneduineizbacuje
svapojavljivanjazadanogkarakteranapoetkuniza.
Naprimjer,nakonizbacivanjakarakteraaspoetkaniza,niz"aaabrakadabra"ebiti
promijenjenu"brakadabra",aniz"Aabrakadabraaa"eostatinepromijenjen.

Napisatiprogramkojistastatureuitatinizkarakterauvarijabluniz.Uvarijablunizmogueje
pohranitinajvie30karaktera.Bezobziranaduinunizakojijekorisnikupisao,proitati
najvie30karaktera.FunkcijomizbaciZnakoveizbacitisvapojavljivanjakarakteratspoetka
nizainakontogaispisatipromijenjeniniz.

9.
Napisatiprogramkojiestastatureuitatinizkaraktera(string)zakojisemoepretpostaviti
daneebitiduiod9karaktera.Akonizkarakterasadrisamodekadskecifreod0do9,
odreditiodgovarajuiprirodnibrojtenamonitoruispisatidobijenibrojinjegovdrugikorijen
(drugikorijenbrojaispisatisdvadecimalnamjesta),ainaedojavitiporuku:"Dopustene
samodekadskecifre."

Primjer:
Zauitaninizkaraktera"123456789"ispisati:123456789,11111.11
Zauitaninizkaraktera"0145"ispisati:145,12.04
Zauitaninizkaraktera"a0123"ispisati:Dopustenesamodekadskecifre.
Zauitaninizkaraktera"123"ispisati:Dopustenesamodekadskecifre.

Napomena:Urjeenjunijedoputenokoristitifunkcijeosimzaitanjestastature,pisanjena
monitoriizraunavanjedrugogkorijena.

10.
Napisatiprogramkojimeseunovubinarnudatotekuslova.binredomupisatisvavelika,
nakonnjihsvamalaslovaabecede,anakonnjihsvecifre.

11.
Utekstualnudatotekuulaz.txteditoromsuupisanipodacioosobama(matinibroj,ime,
prezimeidatumroenja).

Primjersadrajadatotekeprikazanjeovdje:
952NikoNikic15.05.1989
101MehoMehic17.06.1987
205TestTestic09.12.1987
412NinoNinic11.06.1988
551MajaMajic24.05.1989
115HasoHasic22.01.1986
104JusoHusic03.05.1987
471FataFatic08.06.1988

Napisatiprogramkojiesadrajdatotekeulaz.txtprepisatiunovubinarnudatotekuizlaz.bin.
Jedanzapisdatotekeizlaz.binsadri:matinibroj(long),ime(15+1karakter),prezime(15+1
karakter),danroenja(short),mjesecroenja(short),godinuroenja(short).Koristiti
strukture!


12.
Napisatiprogramkojienamonitorispisatimatinebrojeve,imenaiprezimenasvihosoba
kojeroendanimajuumjesecumaju.Podacioosobamasenalazeudatoteciizlaz.bin
dobijenojuprethodnomzadatku.Koristitistrukture!

Napomena:kodrjeavanjazadatkanijedoputenosvezapise"uitatiumemoriju",npr.u
jedanvelikiniz,iondapotomnizutraitizapisekojizadovoljavajunekiuvjet.Umjestotoga,u
memorijuuitatiprvizapis,provjerititrebalinamonitorispisatipodatkeiztogzapisa,zatim
uitatidrugizapis,itd.

13.
Jednimpozivomfunkcijescanfuvarijablu
s
uitativrijednostisvihnjenihlanova:
structstr1{
intstanje[2]
}
structstr2{
structstr1x
floatk
}s

14.
Jednimpozivomfunkcijescanfuvarijablu
w
uitativrijednostisvihnjenihlanova:
structstr1{
floatstanje[2]
}
structstr2{
structstr1yintk
charime[10+1]
}w

15.
Jednimpozivomfunkcijescanfuvarijablu
b
uitativrijednostisvihnjenihlanova:
structstr1{
floatx
intk
}
structstr2{
structstr1z1
structstr1z2
}b

16.
NapisatifunkcijuobrniNizkojaobrenizkaraktera.
Npr.nizkaraktera"ABCDE"mijenjaunizkaraktera"EDCBA".

17.
NapisatifunkcijuumetniZnakkojanapoetakzadanognizakarakteraumeezadanikarakter.
Funkcijamoeraunatinatodajezanizupozivajuemprogramurezervisanodovoljno
memorije.Ufunkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

18.
NapisatifunkcijuumetniZnakovekojaispredsvakogkarakterazadanognizaumeezadani
karakter(npr,akosefunkcijizadaniz"Test"ikarakter'X',funkcijamijenjanizu"XTXeXsXt").
Funkcijamoeraunatinatodajezanizupozivajuemprogramurezervisanodovoljno
memorije.Ufunkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

19.
NapisativlastitufunkcijumyStrcpykojaobavljaistotoifunkcijastrcpydefinisanaustring.h.
Ufunkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

20.
NapisativlastitufunkcijumyStrlenkojaobavljaistotoifunkcijastrlendefinisanaustring.h
(jedinarazlikanekabudeutometamyStrlenvraaint,umjestosize_t).Ufunkcijisenesmiju
koristitifunkcijeizzaglavljastring.h.

21.
NapisativlastitufunkcijumyStrcatkojaobavljaistotoifunkcijastrcatdefinisanaustring.h.U
funkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

22.
Napisatifunkcijukojakaorezultatvraakolikoputasenizs2pojavljujeunutarnizas1.U
glavnomprogramupomoufunkcijegetsuitatidvaniza,pozvatifunkcijuiispisatirezultat.U
funkcijijedoputenokoristitifunkcijeizbibliotekeizzaglavljastring.h.

23.
taebitisadrajnizovakarakteras1,s2is3nakonobavljanjaslijedeegdijelaprograma:
chars1[20]="ef123f156xyz",
s2[20]="ABCD",
s3[20]
strcat(strcat(s2,"abc"),
strcpy(s3,strstr(strchr(s1,'2'),"f1")))

24.
NapisatimacroMYTOUPPERkojaobavljaistotoifunkcijatoupperdefinisanaustring.h.
Napisatiglavniprogramkojiepomoufunkcijegetsuitatinizkaraktera(sigurnoneduiod
40karaktera),tenamonitorispisatiuitaniniz,alitakodasusvamalaslovapretvorenau
velika.ZapretvaranjemalihslovauvelikakoristitimacroMYTOUPPER.

25.
NapisativlastitufunkcijumyStrchrkojaobavljaistotoifunkcijastrchrdefinisanaustring.h.U
funkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

26.
NapisativlastitufunkcijumyStrstrkojaobavljaistotoifunkcijastrstrdefinisanaustring.h.U
funkcijisenesmijukoristitifunkcijeizzaglavljastring.h.

27.
Napisatiprogramkojipomoufunkcijegetcharstastatureuitavakaraktereunizs1dokgod
nebudeuitankarakter'X'(karakter'X'senedodajeunizs1).Zatimunizs2uitava
karakteredoksenepojavikarakter'Y'(karakter'Y'senedodajeunizs2).Osiguratidanizovi
s1is2buduispravnoterminirani(tj.nakrajunizasenalazikarakter'\0').Nakonuitavanja,
pomoufunkcijeputcharispisatinizoves1is2namonitor,svakiusvojred.Nizovis1is2
sigurnonisuduiod80karaktera.

Primjer:akoseprekotastatureunese:

Ovojenekitekst.XAovojenastavakYOstatakseneucitava

kaorezultattrebaispisati:

Ovojenekitekst.
Aovojenastavak

28.
Utekstualnudatotekuulaz.txteditoromsuupisanipodacioosobama(matinibroj,ime,
prezimeidatumroenja).

Primjersadrajadatotekeprikazanjeovdje:
952NikoNikic15.05.1989
101MehoMehic17.06.1987
205TestTestic09.12.1987
412NinoNinic11.06.1988
551MajaMajic24.05.1989

115HasoHasic22.01.1986
104JusoHusic03.05.1987
471FataFatic08.06.1988

Napisatiprogramkojienamonitorispisatisvepodatkeoosobamaizdatotekeosobe.txtije
imesadrinizkaraktera
sic
.

Zadatotekuizprimjera,programtrebanamonitorispisatisljedee:
115HasoHasic22.01.1986
104JusoHusic03.05.1987

29.
Napisatiprogramkojipomoufunkcijefscanfitarealnebrojeveiztekstualnedatoteke
brojevi.txt,tepozavretkuitanja(kadasedoedokrajadatotekeilisepriitanjudogodi
pogreka)namonitorispisujeiliaritmetikusredinuuitanihbrojevailiporuku"Nijeprocitan
nitijedanbroj".
Npr.zasadrajdatoteke:
2213.52111.03.5

namonitortrebaispisati:7.000000

Npr.zasadrajdatoteke
a114.5224.211

namonitortrebaispisati:Nijeprocitannitijedanbroj.

30.
Ufileusanazivompodaci.datsenalazerijeinapisanevelikimslovimaengleskogalfabeta.
Potrebnojenapisatiprogramkojiesadrajfileapodaci.datifriratiiprebacitiufilesifra.dat.
ifriranjepodatakaseraditakodasvakoslovozamijeninjegovimsljedbenikomuengleskom
alfabetu(slovoAmijenjasaslovomB,slovoCmijenjasaslovomD,...aslovoZsaslovomA).

You might also like