##group=program ##answer=a Co vytiskne na obrazovku následující řádek ? printf("\"%-7.0d\"\n",1234); (a) "1234 " (b) "+1234 " (c) " 1234" (d) "" ##group=program ##answer=c Řádek ve čteném souboru vypadá takto: S 14:52 - [79], "guard"; jakou hodnotu budou mít argumeny i, j, k a text funkce fscanf ? int i,j,k; char text[1000]; fscanf(f,"S %d:%d - [%d], \"%s\"",&i,&j,&k,text); Pokud nelze určit hodnotu některého z argumentů, napište to. ##group=program ##answer=a Napište funkci, která vrátí handler souboru otevřeného jak pro čtení, tak pro zápis, soubor nemusí existovat a funkce musí zachovat obsah již existujícího souboru. /* například, nebo si upravte */ FILE *otevri(const char *jmeno); ##group=program ##answer=a Napište funkci, která korektně vymaže z paměti prvek obousměrně zřetězeného seznamu. Prvek bude identifikován indexem (první prvek má index 0). Funkce musí také ošetřit nastavení globálních promenných, které ukazují na seznam (jedna na jeho první prvek a druhá na konec). Správně ošetřete chybové stavy. Struktura prvku bude vypadat takto: struct tprvek { void *data; struct tprvek *next,*prev; }; /* globální proměnné: */ struct tprvek *first,*last; /* například, nebo si upravte */ int vymaz(int n); ##group=program ##answer=a Napište funkci, která vytvoří nový prvek, přiřadí mu uživatelská data a zařadí do obousměrnězřetězeného seznamu na pozici danou indexem (0 je první prvek). Funkce musí také ošetřit nastavení globálních promenných, které ukazují na seznam (jedna na jeho první prvek a druhá na konec). Správně ošetřete chybové stavy. Struktura prvku bude vypadat takto: struct tprvek { void *data; struct tprvek *next,*prev; }; /* globální proměnné: */ struct tprvek *first,*last; /* například, nebo si upravte */ int vloz(void *v,int n); ##group=program ##answer=a Napište funkci, která korektně vymaže z paměti prvek jednosměrně zřetězeného seznamu. Prvek bude identifikován indexem (první prvek má index 0). Funkce musí také ošetřit nastavení globální promenné, která ukazuje na začátek seznamu. Správně ošetřete chybové stavy. Struktura prvku bude vypadat takto: struct tprvek { void *data; struct tprvek *next; }; /* globální proměnná: */ struct tprvek *first; /* například, nebo si upravte */ int vymaz(int n); ##group=program ##answer=a Napište funkci, která vytvoří nový prvek, přiřadí mu uživatelská data a zařadí do jednosměrně zřetězeného seznamu na pozici danou indexem (0 je první prvek). Funkce musí také ošetřit nastavení globální promenné, která ukazuje na začátek seznamu. Správně ošetřete chybové stavy. Struktura prvku bude vypadat takto: struct tprvek { void *data; struct tprvek *next; }; /* globální proměnná: */ struct tprvek *first; /* například, nebo si upravte */ int vloz(void *v,int n); ##group=program ##answer=a Napište funkci, která provede setřídění jednosměrně zřetězeného seznamu podle položky data prvku seznamu. Použít můžete libovolný řadící algoritmus. Ošetřete seřazování prázdného seznamu. Struktura prvku seznamu bude vypadat takto: struct tprvek { int data; struct tprvek *next; }; /* například, nebo si upravte */ int serad(struct tprvek *seznam); ##group=program ##answer=a Napiště funkci, která provede jednosměrné zřetězení prvků stromu po patrech do šířky zleva doprava tak, aby při průchodu takto vzniklým seznamem pomocí položky next jsme procházeli prvky stromu do šířky. Prvek stromu bude mít následující strukturu: struct tprvek { int data; struct tprvek *left,*right,*next; } /* například, nebo si upravte */ int zretez(struct tprvek *strom); ##group=program ##answer=a Proveďte správné přetypování tak, aby 4 byty v proměnné typu float se intepretovali jako 4 byty proměnné typu long. float f; long l; l=/* přetypování */d;