p1m.2011.test.2

Post on 07-Oct-2015

215 views 0 download

description

test iz programiranja

Transcript of p1m.2011.test.2

  • Programiranje 1 - Matematika - drugi test 2011/12.

    Ime i prezime: , Broj indeksa:

    1. (a) U jeziku C, prenos parametara u funkciju vrsi se po , osim u slucaju

    kada se u funkciju prenosi samo .

    (b) Sta ispisuje naredni program?

    void f(int x, int y[]) { int main() {

    x += y[0] + y[1]; x = x >= 7 ? x++ : --x; int x = 2, y[] = {3, 4}; f(x, y);

    y[0] += y[1]; printf("%d %d %d\n", x, y[0], y[1]);

    } }

    (c) Sta kompilator radi ukoliko naide na poziv nedeklarisane funkcije?

    2. (a) Pokazivacke promenljive sadrze .

    (b) Koje binarne operacije je moguce izvesti nad dva pokazivaca istog tipa i koja im je semantika?

    Koje binarne operacije je moguce izvesti nad pokazivacem i brojem i koja im je semantika?

    (c) Zaokruziti ispravne deklaracije.

    int *p1, *p2, *p3;

    int *q1 = (p1 + p2) - p3;

    int *q2 = p1 + (p2 - p3);.

    (d) Postoji li razlika izmedu deklaracija int* p; i int p[10]; i u cemu se ogleda?

    A izmedu void f(int* p) i void f(int p[])?

    3. (a) sizeof(x) je . sizeof("x") je . "x" sadrzi karaktere i .

    (b) Definisati funkciju void izmeni(char* s) koja menja sadrzaj niske s tako sto velika slova na parnimpozicijama menja malim, mala slova na neparnim pozicijama menja velikim, a ostale karaktere ostavljanepromenjenim.

    4. Dat je kod:

    int a;

    void f() { void g() {

    int b = 3; static int c; char s[] = "a"; char* t = "a";

    printf("%d %d %d\n", a, b, c); }

    a += 3; b += 3; c += 3;

    }

    (a) Promenljiva a ima doseg nivoa i zivotni vek.

    Promenljiva b ima doseg nivoa i zivotni vek.

    Promenljiva c ima doseg nivoa i zivotni vek.

    (b) Petlja for (i = 1; i < 4; i++) f(); ispisuje .

    (c) Promenljiva s nalazi se u segmentu , a ono na sta pokazuje nalazi se u segmentu .

    Promenljiva t nalazi se u segmentu , a ono na sta pokazuje nalazi se u segmentu .

    Na 32-bitnim sistemima sizeof(s) je , sizeof(t) je .

    5. (a) Definisati tip podataka pogodan za predstavljanje tacke u Dekartovskoj ravni i uvesti mu ime Tacka.

    (b) Definisati funkciju rastojanje koja izracunava rastojanje izmedu dve tacke.

    (c) Definisati void funkciju transliraj koja translira prosledenu tacku za prosledeni vektor (x, y) po obe ose.