p1m.2011.test.2

2
 Programiranje 1 - Matematika - drugi test 2011/12. Ime i prezime: , Bro j indeksa: 1. (a ) U je ziku C, prenos pa rame tara u funkci ju vr ˇ si se po , osim u slu ˇ caju 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) Pokazivaˇ cke promenljive sadrˇ ze . (b) Koje binarne op eracije je mogu´ ce izvesti nad dva pokaziv aˇ ca istog t ipa i koja im je semantik a? Koje binarne operacije je mogu´ ce izvesti nad pokazivaˇ cem i brojem i koja im je semantik a? (c) Zaokruˇ ziti is pravne dekl aracije. int *p1, *p2 , *p3 ; int *q1 = (p1 + p2) - p3; int *q2 = p1 + (p2 - p3); . (d) Pos toji li razlik a izmedu deklarac ija int* p; i  i nt p[10] ;  i u ˇ cemu se ogleda? A izmedu  void f(i nt* p)  i  void f(i nt p[] )? 3. (a)  sizeof(’x’)  j e .  sizeof("x")  j e .  "x"  sadr ˇ zi karaktere i . (b) Deni sati funk ciju  void izmeni(char* s)  koja menja sadrˇ zaj niske  s  tako ˇ sto velik a slov a na parnim pozicijama menja malim, mala slova na neparnim pozicijama menja velikim, a ostale karaktere ostavlja nepromenjenim. 4. Dat je kˆ od: 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) Promenljiv a  a  ima doseg nivoa i ˇ zivotni vek. Promenljiva  b  ima doseg nivoa i ˇ zivotni vek. Promenljiva  c  ima doseg nivoa i ˇ zivotni vek. (b) Petl ja for (i = 1; i < 4; i++) f();  ispisuje . (c) Promenljiv a  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)  j e . 5. (a) Deni sati tip podatak a p ogodan za predsta vljanje taˇ cke u Dekar tovs koj ravni i uve sti mu ime  Tacka. (b) Deni sati funkc iju rastojanje  koja izraˇ cunava rast o janj e i zmed u dve t aˇ cke. (c) Deni sati void  funkciju transliraj  koja translira prosledenu taˇ cku za prosledeni vektor (x, y) po obe ose.

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.