1  2  3  4  5  6  Σ

Broj Indeksa

Ime i Prezime  Predavač  Asistent

Programiranje (C) - 3. kolokvij, 7.6.2002.

Uputa: Zabranjeno je korištenje bilo kakvih pomagala. Rješenja pišite desno ili ispod zadatka. Predajte samo ova dva lista.

1. (15 bod.) a) Ako su dane sljedeće deklaracije:

char rijec[]="Adam";
char *prijec=rijec;

kakav ispis daju naredbe:

i) printf("%s", prijec+2);

ii) *(prijec)='d'; printf("%s", prijec);

b) i) Objasnite značenje sljedeće deklaracije: char *(*x)(int *a[]);

ii) Deklarirajte polje od 12 elemenata koji su pokazivači na funkcije. Svaka funkcija kao ulazne argumente ima dva pokazivača na tip double, a vraća pokazivač na tip float.

2. (5 bod.) Nadite, opišite i ispravite greške u sljedećem programu:

struct Datum{
int dan, mjesec, godina;
};
struct Racun{
char ime [30];
int broj;
struct Datum datum_otvaranja;
float stanje;
};
int main()
{
struct Datum danas={17,3,1999}, sutra;
struct Racun pero;
Racun.Datum.dan=12;
\*  nastavak programa ....*\
return 0;
}

3. (20 bod.) Zadana je struktura

struct kazaliste {
    char predstava[50], redatelj[30];
    int br_posjetilaca;
};

Napišite program koji učitava najviše 20 takvih struktura i zatim ispisuje ime najposjećenije predstave i ime njezinog redatelja.

4. (15 bod.) a) Napišite što donji program ispisuje. Obrazložite odgovor.

#include <stdio.h>
int a,b,c;
void zbuni1 (int b, int a){
    a+=3; b+=2; c+=1;
}
void zbuni2 (int b, int *a){
    *a+=1; b+=2; c+=3;
}
void zbuni3 (int *b, int c){
    a+=1; *b+=2; c+=3;
}
int main(){
      int a,b,c;  a=b=c=0;
      zbuni1(c,b);  zbuni2(b,&c); zbuni3(&a,a);
      printf("%d %d %d",a,b,c);
      return 0;
}

5. (20 bod.) Napišite funkciju koja prima pokazivač na početak niza cijelih brojeva, duljinu niza te vraća aritmetičku i geometrijsku sredinu članova niza. Takoder napišite program koji s tipkovnice učitava prirodan broj n i zatim stvara polje cijelih brojeva duljine n, unosi elemente polja te poziva gore navedenu funkciju i ispisuje tražene rezultate. (Napomena : Ne zaboravite deklarirati sve potrebne varijable.)

6. (25 bod.) Napišite funkciju koja kao argument ima pokazivač na vezanu listu cijelih brojeva i iz liste izbacuje sve neparne brojeve. Funkcija treba vratiti pokazivač na početak modificirane liste.

B.M. I.N. R.P.