Často kladené otázky při zkoušce z předmětu Základy programování Otázky budou při zkoušce položeny, když budou v programu prvky, kterých se tyto otázky týkají. Není to výčet všech otázek, které mohou při zkoušce být položeny. Jsou to jen nejčastější otázky, které byly kladeny při předchozích zkouškách. Rozlišovat pojmy "identifikátor", "konstanta", "proměnná", "funkce", formální nebo skutečný "parametr" neboli "argument" funkce, "datový typ", "klíčové slovo", "výraz", "příkaz", "literál", "operátor" a umět je v programu najít nebo určit. Jak se při překladu programu zpracovávají direktivy pro preprocesor? Co je to konstanta a k čemu je v programech dobrá? Jak se určitý literál v programu nahradí pojmenovanou konstantou? Jaký je rozdíl mezi konstantami definovanými pomocí modifikátoru "const" a direktivy #define? Kam posune vykonávání programu příkaz "break;"? Kam posune vykonávání programu příkaz "continue;"? Kam posune vykonávání programu příkaz "return;"? Jak se liší příkaz "exit(1);" a "return 1;"? Vykoná se někdy default větev? Jak funguje funkce pro vstup čísla? - Proč je před druhým parametrem znak "&"? - Kdy se musí druhý parametr funkce scanf() psát se znakem "&"? - Proč se funkce scanf() porovnává s hodnotou "1"? - Jak funguje vyprazdňování bufferu a proč je na na dvou místech? Jaké řádky se v programu vykonávají, když uživatel zadá neplatný vstup? Proč při zadání něklika písmen místo čísla se opakovaně vypíše "Nezadali jste cisloZadejte cislo znovu:"? Jak se určuje datový typ definovaných konstant? Jaký je rozdíl ve vykonávání řídících struktur if...if a if...else? Co je typ enum, neboli výčtový typ? Co je struktura? Co je operátor "->"? Jak se liší od operátoru "."? Co v programu dělá zvuky? Jak se liší literál v programu zapsaný jako číslice, číslice v apostrofech a číslice v uvozovkách? Proč jste pro peníze zvolil datový typ float? Jak se liší datový typ "char", "int", "long", "short", "float" a "double"? Co je datový typ boolean? Jak se hodnota čísla interpretuje jako true/false? Jak vyjde hodnota výrazu typu boolean? Co je výraz typu boolean? Vyhodnocují se vždy všechny části výrazu typu boolean? Co je to zkrácené vyhodnocování booleanovského výrazu a kde v programu se uplatňuje? Co vrací funkce ceil() nebo jiná společně neprobraná funkce? Jak je ovlivněn datový typ literálů způsobem jejich zápisu? Jak jsou aritmetické operace (například dělení) ovlivěny datovým typem operandů? Bylo nutné inicializovat určitou proměnnou? Záleží na tom, jestli je někde použit prefix nebo postfix inkrement? Je nutná určitá závorka () nebo {}? Odkud kam sahá cyklus se slovem while? Jak by se program musel modifikovat, aby fungoval při měnících se kurzech nebo obecně při splnění nějakých požadavků, o kterých se dá předpokládat, že mohou v praxi vzniknout? Co dělá funkce srand()? Jak se chová funkce rand() bez použití funkce srand()? V jakém intervalu jsou hodnoty generované funkcí rand()? Co dělá oprátor % například při generování náhodných čísel? Kde je v programu operátor čárky a jak se vyhodnocuje? Kde je v programu ternární operátor a jak se vyhodnocuje? Co znamenají operátory použité v programu? Co vrací operátor sizeof()? Jak funguje funkce fgets()? Co je identifikátor "stdin", "stdout", "stderr"? Co dělá funkce fflush()? Má program únik paměti? Co je to rekurze a kde se v programu vyskytuje? Proč je rekurze v případech, kdy se dá nahradit cyklem, škodlivá? Viz https://efis.tul.cz/~dana.nejedlova/C/DistancniStudium/2019LS/11.txt Jak program, který například hádá číslo, souvisí s binárním vyhledáváním? Jaký je rozdíl mezi statickým a dynamickým polem? Jak se definuje statické pole podle standardu ANSI C? Co dělá funkce puts()? Proč místo ní není jen funkce printf()? Z jakého zdroje jste vzal určitý algoritmus? Jak funguje určitá funkce definovaná v programu, tedy ne knihovní? Proč při výpočtu faktoriálu určitého čísla nedpovídá výsledek stránce https://cs.wikipedia.org/wiki/Faktori%C3%A1l? Co se stane, když se do programu zadá příliš vysoké číslo? Možno ukázat na kalkulačce ve Windows. Proč se diskriminant nebo jiný výraz reálného datového typu nemá porovnánat přímo s nulou? Stačí k tomu, aby byl trojúhelník zkonstruovatelný, to, že má všechny strany kladné? viz https://cs.wikipedia.org/wiki/Troj%C3%BAheln%C3%ADkov%C3%A1_nerovnost Jak se liší oblast platnosti proměnné definované na začátku funkce oproti proměnné definované v bloku? Jak se liší globální proměnné od lokálních? Jakého datového typu je proměnná "file" a co v ní je? Co je to pointer? Jak vypadá v operační paměti textový řetězec nebo pole? Jak program pozná, kde řetězec nebo pole končí, když jej čte? Jak se předávají parametry (například jednoduchý neboli primitivní datový typ, řetězec nebo pole) do určité funkce? Kdy se do funkce musí předat jednoduchý neboli primitivní datový typ se znakem "&"? Jaké podprogramy jsou typu funkce a jaké jsou typu procedura? Jak se liší funkce s návratovým typem "void" od ostatních funkcí? Jak souvisí návratový typ funkce "void" s příkazem "return;"? Jaká jsou pravidla pro pořadí funkcí v programu v jazyce C? Co jsou takzvané funkční prototypy a k čemu jsou? K čemu je v programu určitá knihovna? Co je v kninovně "limits.h" a jak je v jazyce C touto knihovnou řešena platformová nezávislost? Jak je omezena použitelnost programu, který používá nestandardní knihovnu? Co dělá funkce getch() a jak se liší od getchar()? Jak by se mohl program změnit, aby v něm nebyl opakující se kód? Jak by se upravil program, aby ve výstupním souboru byly výpočty zapisovány bez prázdných řádků, nebo aby se za výzvou pro zadání psalo na stejný řádek zadávané číslo? Jak by se upravil program, aby mohl mít více než 9 funkcí? Co by mohl program dělat efektivněji? Co by mohlo uživateli na programu vadit? Proč se v řetězci jako parametru funkce printf() vyskytuje "%%" nebo "\\" nebo "\""? Co by se muselo v programu změnit, aby vypisoval výsledky s více desetinnými místy?