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[]="Eva";
    char *prijec=rijec;

kakav ispis daju naredbe:

i) *(prijec+2)='o'; printf("%s", prijec);

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

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

ii) Deklarirajte pokazivač na funkciju čiji je ulazni argument polje pokazivača na tip int, a vraća pokazivač na tip znak.

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

    struct zgrada {
       int tip;
       char ime[30];
       char adresa [40];
       int br_soba;
    } hotel;
    int main()
    {
       zgrada.tip = 3;
       printf("%d\n", hotel->tip);
       \*  nastavak programa ....*\
       return 0;
    }

3. (20 bod.) Zadana je struktura

struct radnik{
    char ime[20], prezime[30];
    int staz;
    float placa;
};

Napišite program koji učitava najviše 20 takvih struktura i zatim računa i ispisuje najveću plaću te prosječnu plaću svih radnika.

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+=1; b+=1; c+=1;
}
void zbuni2 (int b, int *a){
    *a+=2; b+=2; c+=2;
}
void zbuni3 (int *b, int c){
    a+=3; *b+=3; c+=3;
}
int main(){
      int a,b,c; a=b=c=0;
      zbuni1(a,b); zbuni2(b,&c); zbuni3(&a,c);
      printf("%d %d %d",a,b,c);
      return 0;
}

5. (20 bod.) Napišite funkciju koja prima pokazivač na početak niza, duljinu niza te vraća njegov najveći i najmanji element. 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 pokazivač na vezanu listu cijelih brojeva i mijenja tu vezanu listu na način da se na početku liste trebaju naći neparni, a zatim iza njih parni brojevi. Funkcija treba vratiti pokazivač na početak tako modificirane liste. Redoslijed parnih i neparnih brojeva ne mora ostati isti. Ne smijete koristiti pomoćnu vezanu listu.

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