Elektrotehnički Fakultet Univerziteta u Beogradu                     Beograd, 04.04.2009.

Prvi kolokvijum iz Programiranja 2

Kolokvijum traje 90 minuta

Napomene:

a) Pažljivo proučite Uputstvo pre popunjavanja Obrasca za odgovore.

b) Vrednost odgovora: tačan = 5; netačan = -1.25; nevažeći (nula ili više zacrnjenih kružića) = 0.

c) Na pitanjima se može osvojiti najviše 15 poena.

d) Zadatak nosi 20 poena.

I ZADACI

1)Napisati program na programskom jeziku C kojim se u prazan jednodimenzioni niz celih brojeva umeću pozitivni celi brojevi u nerastućem poretku. U niz ne treba umetati broj ako on već postoji. Brojevi se čitaju sa standardnog ulaza, a unos se prekida kada korisnik unese vrednost koja nije pozitivna. Nakon unosa, program treba da ispiše sadržaj niza.

II PITANJA

1)Realni brojevi se predstavljaju u formatu seeeemmmmm, gde je s predznak, eeee eksponent sa viškom 7 i mmmmm biti normalizovane mantise sa skrivenim bitom (1≤M<2). Ako se u realne promenljive A i B učitaju dekadne vrednosti 5.83 i -12.34, kakav će biti izgled realnog broja, izračunatog kao zbir A+B, smeštenog u memoriju? Sva zaokruživanja obavljati prema pravilima ANSI/IEEE standarda za realne brojeve.

(A)    33216

 B) 13216

 C) 32216

2)Realni brojevi se na računarima A i B smeštaju u skladu sa ANSI/IEEE standardom za predstavljanje realnih brojeva. Na računaru A, realni brojevi se smeštaju u 12-bitnu lokaciju prema formatu seeeeemmmmmm, a na računaru B u 10-bitnu lokaciju prema formatu seeeemmmmm, gde je s bit za predznak broja, e bitovi za predstavljanje eksponenta u kodu sa viškom 15 za računar A i 7 za računar B, a m bitovi za predstavljanje normalizovane mantise sa skrivenim bitom (1≤M<2). Ako je izgled učitane realne promenljive XA na računaru A: CD716, kakav će biti izgled realnog broja XB na računaru B za istu učitanu vrednost:

(A)    36C16

 B) 16B16

 C) 36B16

3)Ako je niz deklarisan kao unsigned int niz[MAX_NIZ] i ako je MAX_NIZ neka konstanta, šta treba staviti umesto &&& u sledećem delu programa u jeziku C da bi se na standardnom izlazu ispisao broj neparnih brojeva u nizu niz. Pretpostaviti da su elementi niza već učitani.

int i, c=0;

for (i=0; i<MAX_NIZ; &&&) i++;

printf("%d", c);

 

(A)    c+=((niz[i-1]%2)?1:0)

 B) c+=niz[i]&1

 C) c+=niz[i]%2

4)Šta ispisuje sledeći program napisan na programskom jeziku C?

#include <stdio.h>

void main() {

  unsigned int i, s;

  for( s = 1, i = 0; i < 7; i++)

     if(i%3 != 0) {

       i |= i + 1 & i + 2;

       s += i;

    } else i += (i + 2 >> 1) & i + 1;

  printf("%d\n", s);

}

 

(A)    14

 B) 15

 C) 22