====== Příklad otázek písemného zkouškového testu ====== * Jak zjistı́me velikost datové reprezentace základnı́ch celočíselných typů v jazyce C? * Jak rozlišíte literál typu ''int'' a ''long''? * Jak vkládáme do zdrojového souboru programu v C hlavičkové soubory jiných modulů nebo knihoven? * Jak v C přistupujeme k datovým položkám složeného typu (''struct'')? * Popište jak v C probíhá volání funkce ''int doit(int r)''? Jaká data jsou předávána do/z funkce a kam jsou hodnoty ukládány? * Jak v C dynamicky alokujete paměť pro uložení posloupnosti 20 hodnot typu ''int''? Jak následně takové dynamické pole zvětšíte pro uložení dalších 10 položek? * Co v C reprezentuje identifikátor ''NULL''? * Jak jsou v C reprezentovány textové řetězce? * Co reprezentuje klíčové slovo void? * Co způsobí definování makra preprocesoru ''NDEBUG'' v souvislosti s používáním funkce ''assert()''? * Vyjmenujte základní paměťové třídy, ve kterých mohou být uložny hodnoty proměnných? * Vysvětlete rozdíl mezi proměnnou a ukazatelem na proměnnou v jazyce C? * Jaké znáte znaky používané v C pro řízení výstupu? * Jak probíhá proces spuštění programu implementovaného v jazyce C (v prostředí s operačním systémem)? * Jak získáte ukazatel na proměnnou deklarovanou jako ''double d = 12.3;'' * Jak se v C liší ukazatel a pole[]? * Jaký je v C rozdíl mezi ukazatelem na konstantní proměnnou a konstantním ukazatelem? Jak definice těchto ukazatelů zapisujeme? * Deklarujte pole variabilní délky ''s'' velikosti ''n'', kterou načtete ze standarního vstupu. * Stručně popište typ ''union'' používaný v jazyce C. * Jak v jazyce C realizujete předání parametrů funkci odkazem? Lze to vůbec? * Jaké znáte překladače jazyka C? * Popište proces vytvoření spustitelného programu ze zdrojových souborů jazyka C. * Vysvětlete jaký je v C rozdíl mezi proměnnou typu ukazatel, proměnnou a polem z hlediska uložení hodnoty v paměti? * Garantuje uvedení ''const'' u deklarace proměnné, že není žádná možnost jak příslušnou hodnotou proměnné změnit? * V jakém kontextu se používá klíčové slovo ''do''? * Jak v C definujete ukazatel na proměnné, např. typu ''int''? * Jaká návratová hodnota programu v C indikuje úspěšneé vykonání a ukončení programu? Proč je zvolena právě tato hodnota? * Je v jazyce C nutné uvolňovat dynamicky alokovanou paměť? Pokud ano, jak to uděláte? * Deklarujte diagonální (jednotkovou) matici 3x3 jako 2D pole typu ''int''. Součástí písemného testu jsou také implementační otázky např. * Opravte implementaci spojového seznamu. * Napište program, který vygeneruje uvedený obrazec. * Napište program pro realizaci zásobníků celých číseln (''int'') jako třídu ''Stack'' s metodami ''push()'' a ''pop()''. * Uveďte příklad implementace třídy pro komunikaci po sériovém portu dle RAII (Resource acquisition is initialization).