100 nejlepších otázek a odpovědí na programovací pohovor v jazyce C (PDF)
Zde jsou otázky a odpovědi na pohovor C Programming pro čerstvější i zkušené kandidáty, aby získali svou vysněnou práci.
Otázky a odpovědi základního pohovoru o programování C pro Freshers
1) Jak vytvoříte příkaz zvýšení nebo příkaz snížení v C?
Ve skutečnosti to můžete udělat dvěma způsoby. Jedním z nich je použití operátoru zvýšení ++ a operátoru snížení –. Například příkaz „x++“ znamená zvýšit hodnotu x o 1. Podobně výraz „x –“ znamená snížit hodnotu x o 1. Dalším způsobem psaní příkazů přírůstku je použití konvenčního znaménka + plus nebo – znaménko mínus. V případě „x++“ je dalším způsobem zápisu „x = x +1“.
👉 Zdarma ke stažení PDF: C Programming Interview Otázky a odpovědi >>
2) Jaký je rozdíl mezi Call by Value a Call by Reference?
Při použití Call by Value posíláte hodnotu proměnné jako parametr funkci, zatímco Call by Reference posílá adresu proměnné. Také pod Call by Value není hodnota v parametru ovlivněna žádnou operací, která se provede, zatímco v případě Call by Reference mohou být hodnoty ovlivněny procesem v rámci funkce.
3) Někteří kodéři ladí své programy umístěním symbolů komentářů na některé kódy, místo aby je smazali. Jak to pomáhá při ladění?
Umístění symbolů komentářů /* */ kolem kódu, označované také jako „odkomentování“, je způsob, jak izolovat některé kódy, o kterých si myslíte, že mohou způsobit chyby v programu, aniž byste kód smazali. Myšlenka je taková, že pokud je kód ve skutečnosti správný, jednoduše odstraníte symboly komentáře a budete pokračovat. Také vám to ušetří čas a námahu při přepisování kódů, pokud jste je nejprve smazali.
4) Jaký je ekvivalentní kód následujícího příkazu ve formátu WHILE LOOP?
for (a=1; a<=100; a++)
printf ("%d\n", a * a);
Odpověď:
a=1;
while (a<=100) {
printf ("%d\n", a * a);
a++;
}
5) Co je zásobník?
Zásobník je jednou z forem datové struktury. Data jsou ukládána do zásobníků pomocí přístupu FILO (First In Last Out). V každém konkrétním případě je přístupná pouze horní část zásobníku, což znamená, že aby bylo možné načíst data uložená uvnitř zásobníku, měla by být nejprve extrahována data v horní části. Ukládání dat do zásobníku se také označuje jako PUSH, zatímco načítání dat se označuje jako POP.
6) Co je soubor se sekvenčním přístupem?
Při psaní programů, které budou ukládat a načítat data do souboru, je možné tento soubor označit do různých forem. Soubor se sekvenčním přístupem je takový, že data jsou ukládána v sekvenčním pořadí: do souboru jsou umisťována jedna data za druhou. Pro přístup k určitým datům v souboru se sekvenčním přístupem je třeba data číst po jednom, dokud není dosaženo toho správného.
7) Co je proměnná inicializace a proč je důležitá?
To se týká procesu, ve kterém je proměnné přiřazena počáteční hodnota před jejím použitím v programu. Bez inicializace by proměnná měla neznámou hodnotu, což může při použití ve výpočtech nebo jiných operacích vést k nepředvídatelným výstupům.
8 Co je programování špaget?
Programování špaget odkazuje na kódy, které mají tendenci se v průběhu programu zamotávat a překrývat. Tento nestrukturovaný přístup ke kódování je obvykle připisován nedostatku zkušeností na straně programátora. Programování špaget dělá program složitým a analyzuje kódy obtížným, a proto je třeba se mu co nejvíce vyhnout.
9) Odlišení zdrojových kódů od objektových kódů
Zdrojové kódy jsou kódy, které napsal programátor. Skládá se z příkazů a dalších anglických klíčových slov, která mají dát počítači pokyn, co má dělat. Počítače by však nebyly schopny porozumět zdrojovým kódům. Zdrojové kódy se tedy kompilují pomocí kompilátoru. Výsledným výstupem jsou objektové kódy, které jsou ve formátu srozumitelném pro procesor počítače. v C programování, zdrojové kódy jsou uloženy s příponou souboru .C, zatímco objektové kódy jsou uloženy s příponou souboru .OBJ
10) Jak v programování v C vložíte znaky uvozovek (' a “) do výstupní obrazovky?
Toto je běžný problém pro začátečníky, protože uvozovky jsou normálně součástí příkazu printf. Chcete-li vložit znak uvozovky jako součást výstupu, použijte specifikátory formátu \' (pro jednoduché uvozovky) a \” (pro dvojité uvozovky).
11) K čemu slouží znak '\0'?
Označuje se jako ukončovací znak null a používá se především k zobrazení konce hodnoty řetězce.
12) Jaký je rozdíl mezi symbolem = a symbolem ==?
Symbol = se často používá v matematických operacích. Slouží k přiřazení hodnoty dané proměnné. Na druhou stranu, symbol ==, také známý jako „rovná se“ nebo „ekvivalentní“, je relační operátor, který se používá k porovnání dvou hodnot.
13) Co je modulový operátor?
Operátor modulu vypíše zbytek dělení. Využívá symbol procenta (%). Například: 10 % 3 = 1, což znamená, že když vydělíte 10 3, zbytek je 1.
14) Co je to vnořená smyčka?
Vnořená smyčka je smyčka, která běží v jiné smyčce. Řekněme to v jiném smyslu, máte vnitřní smyčku, která je uvnitř vnější smyčky. V tomto scénáři se vnitřní smyčka provádí několikrát, jak je určeno vnější smyčkou. Při každém otočení vnější smyčky se nejprve provede vnitřní smyčka.
15) Který z následujících operátorů je nesprávný a proč? ( >=, <=, <>, ==)
<> je nesprávné. I když je tento operátor správně interpretován jako „nerovná se“ při psaní podmíněných příkazů, není to správný operátor, který by se měl používat v C programování. Místo toho se musí použít operátor != k označení podmínky „není rovno“.
16) Porovnejte a porovnejte překladače od interpretů.
Kompilátory a interpreti se často zabývají tím, jak jsou programové kódy vykonávány. Interprety spouštějí programové kódy jeden řádek po druhém, zatímco kompilátory berou program jako celek a před spuštěním jej převádějí na objektový kód. Klíčový rozdíl je v tom, že v případě interpretů může program narazit na chyby syntaxe uprostřed provádění a tam se zastaví. Na druhou stranu kompilátory zkontrolují syntaxi celého programu a přistoupí ke spuštění pouze tehdy, když nebudou nalezeny žádné syntaktické chyby.
17) Jak deklarujete proměnnou, která bude obsahovat řetězcové hodnoty?
Klíčové slovo char může obsahovat pouze hodnotu 1 znaku najednou. Vytvořením pole znaků do něj můžete uložit hodnoty řetězce. Příklad: “char MyName[50]; ” deklaruje řetězcovou proměnnou s názvem MyName, která může obsahovat maximálně 50 znaků.
18) Lze použít složené závorky { } k uzavření jednoho řádku kódu?
Zatímco složené závorky se používají hlavně k seskupení několika řádků kódu, bude to stále fungovat bez chyby, pokud je použijete pro jeden řádek. Někteří programátoři preferují tuto metodu jako způsob organizace kódů, aby vypadaly přehledněji, zejména v podmíněných příkazech.
19) Co jsou hlavičkové soubory a jaké jsou jejich použití v programování v C?
Soubory záhlaví jsou také známé jako soubory knihovny. Obsahují dvě základní věci: definice a prototypy funkcí používaných v programu. Jednoduše řečeno, příkazy, které používáte při programování v C, jsou ve skutečnosti funkce, které jsou definovány v rámci každého hlavičkového souboru. Každý hlavičkový soubor obsahuje sadu funkcí. Například: stdio.h je hlavičkový soubor, který obsahuje definici a prototypy příkazů jako printf a scanf.
20) Co je syntaktická chyba?
Syntaktické chyby jsou spojeny s chybami v používání programovacího jazyka. Může to být příkaz, který byl napsán chybně nebo příkaz, který musel být zadán v režimu malých písmen, ale místo toho byl zadán velkými písmeny. Chybně umístěný symbol nebo nedostatek symbolu někde v řádku kódu může také vést k syntaktické chybě.
21) Co jsou proměnné a čím se liší od konstant?
Proměnné a konstanty mohou na první pohled vypadat podobně v tom smyslu, že obě jsou identifikátory složené z jednoho znaku nebo více znaků (písmen, číslic a několika přípustných symbolů). Oba budou mít také určitou hodnotu. Hodnoty držené proměnnou lze v programu měnit a lze je použít ve většině operací a výpočtů. Konstanty jsou dané hodnoty pouze v jeden okamžik, umístěné na začátku programu. Tato hodnota se v programu nemění. Můžete například přiřadit konstantu s názvem PI a dát jí hodnotu 3.1415 . Poté jej můžete použít jako PI v programu, místo abyste museli psát 3.1415 pokaždé, když to potřebujete.
22) Jak přistupujete k hodnotám v poli?
Pole obsahují řadu prvků v závislosti na velikosti, kterou jste jim zadali během deklarace proměnné. Každému prvku je přiřazeno číslo od 0 do počtu prvků-1. Chcete-li přiřadit nebo načíst hodnotu konkrétního prvku, podívejte se na číslo prvku. Například: pokud máte prohlášení, které říká „intscores[5];“, pak máte 5 přístupných prvků, konkrétně: skóre[0], skóre[1], skóre[2], skóre[3] a skóre[4 ].
23) Mohu použít datový typ „int“ k uložení hodnoty 32768? Proč?
Ne. Datový typ „int“ je schopen ukládat hodnoty od -32768 do 32767. Chcete-li uložit 32768, můžete místo toho použít „long int“. Můžete také použít „unsigned int“, za předpokladu, že nehodláte ukládat záporné hodnoty.
24) Mohou být dva nebo více operátorů jako \n a \t kombinovány v jednom řádku programového kódu?
Ano, je naprosto vhodné kombinovat operátory, zvláště pokud je to nutné.
Například: můžete mít kód jako printf (“Hello\n\n\’World\'”) pro výstup textu „Ahoj“ na první řádek a „Svět“ uzavřený v jednoduchých uvozovkách, který se zobrazí na dalších dvou řádcích.
25) Proč nejsou všechny hlavičkové soubory deklarovány v každém programu C?
Volba deklarování hlavičkového souboru v horní části každého programu C by závisela na tom, jaké příkazy/funkce budete v tomto programu používat. Protože každý hlavičkový soubor obsahuje různé definice funkcí a prototyp, používali byste pouze ty hlavičkové soubory, které by obsahovaly funkce, které budete potřebovat. Deklarování všech hlavičkových souborů v každém programu by pouze zvýšilo celkovou velikost souboru a zatížení programu a nepovažuje se to za dobrý styl programování.
26) Kdy se ve funkci používá klíčové slovo „void“?
Při deklaraci funkcí se rozhodnete, zda tato funkce bude vracet hodnotu nebo ne. Pokud tato funkce nevrátí hodnotu, například když je účelem funkce zobrazit některé výstupy na obrazovce, pak se do levé části záhlaví funkce umístí „void“. Když se po provedení funkce očekává návratová hodnota, umístí se datový typ návratové hodnoty místo „void“.
27) Co jsou složené výroky?
Složené příkazy se skládají ze dvou nebo více programových příkazů, které se provádějí společně. K tomu obvykle dochází při zpracovávání podmínek, kdy se při vyhodnocení PRAVDA nebo NEPRAVDA provádí řada příkazů. Složené příkazy lze také provádět v rámci smyčky. Složené závorky { } jsou umístěny před a za složenými příkazy.
28) Jaký význam má algoritmus pro programování v jazyce C?
Před napsáním programu je nutné nejprve vytvořit algoritmus. Algoritmus poskytuje postup krok za krokem, jak lze odvodit řešení. Funguje také jako plán toho, jak program začne a skončí, včetně toho, jaký proces a výpočty jsou zahrnuty.
29) Jaká je výhoda pole oproti jednotlivým proměnným?
Při ukládání více souvisejících dat je dobré použít pole. Je to proto, že pole jsou pojmenována pomocí pouze 1 slova, za kterým následuje číslo prvku. Například: pro uložení 10 výsledků testů 1 studenta lze použít 10 různých názvů proměnných (grade1, grade2, grade3… grade10). U polí se používá pouze 1 název, ostatní jsou přístupné přes název indexu (grade[0], grade[1], grade[2]… grade[9]).
30) Napište příkaz smyčky, který zobrazí následující výstup:
1
12
123
1234
12345
Odpověď:
for (a=1; a<=5; i++) {
for (b=1; b<=a; b++)
printf("%d",b);
printf("\n");
}
C Programovací pohovor Otázky a odpovědi pro zkušené
31) Co je na tomto tvrzení špatného? scanf(“%d”,jakéčíslo);
Před název proměnné whatnumber musí být umístěn ampersand & symbol. Umístění & znamená, že jakákoliv celočíselná hodnota zadaná uživatelem je uložena na „adrese“ názvu proměnné. To je častá chyba programátorů, která často vede k logickým chybám.
32) Jak generujete náhodná čísla v C?
Náhodná čísla jsou generována v C pomocí rand() command, Například: anyNum = rand() vygeneruje libovolné celé číslo začínající od 0 za předpokladu, že anyNum je proměnná typu integer.
33) Jaký by mohl být problém, pokud platný název funkce, jako je tolower(), je kompilátorem C hlášen jako nedefinovaný?
Nejpravděpodobnějším důvodem této chyby je, že soubor záhlaví pro tuto funkci nebyl uveden v horní části programu. Soubory záhlaví obsahují definici a prototyp funkcí a příkazů používaných v programu C. V případě „tolower()“ kód „#include ” musí být přítomen na začátku programu.
34) Co jsou komentáře a jak je vkládáte do programu C?
Komentáře jsou skvělým způsobem, jak do programu vložit nějaké poznámky nebo popis. Může sloužit jako připomínka toho, o čem program je, nebo jako popis toho, proč tam byl určitý kód nebo funkce umístěna. Komentáře začínají /* a končí znaky */. Komentáře mohou být jednořádkové nebo mohou zahrnovat i několik řádků. Může být umístěn kdekoli v programu.
35) Co je to ladění?
Ladění je proces identifikace chyb v programu. Během kompilace programu, nalezené chyby zastaví program v úplném spuštění. V tomto stavu by se programátor podíval na možné části, kde došlo k chybě. Ladění zajišťuje odstranění chyb a hraje důležitou roli při zajištění očekávaného výstupu programu.
36) Co dělá operátor && v programovém kódu?
&& se také označuje jako operátor AND. Při použití tohoto operátoru musí být všechny zadané podmínky PRAVDA, než bude možné provést další akci. Pokud máte 10 podmínek a všechny kromě 1 se nepodaří vyhodnotit jako PRAVDA, celý příkaz podmínky je již vyhodnocen jako NEPRAVDA
37) Jaký příkaz nebo kód lze v programování v jazyce C použít k určení, zda je počet sudý nebo lichý?
Neexistuje jediný příkaz resp funkce v C která dokáže zkontrolovat, zda je číslo liché nebo sudé. Toho však lze dosáhnout vydělením tohoto čísla dvěma a kontrolou zbytku. Pokud je zbytek 2, pak je toto číslo sudé, jinak je liché. Můžete to napsat do kódu jako:
if (num % 2 == 0)
printf("EVEN");
else
printf("ODD");
38) Co znamená formát %10.2, když je obsažen v příkazu printf?
Tento formát se používá pro dvě věci: pro nastavení počtu mezer přidělených pro výstupní číslo a pro nastavení počtu desetinných míst. Číslo před desetinnou čárkou je pro přidělenou mezeru, v tomto případě by pro výstupní číslo přidělilo 10 mezer. Pokud je počet místa obsazeného výstupním číslem menší než 10, budou před skutečné číslo výstupu vloženy další znaky mezery. Číslo za desetinnou čárkou určuje počet desetinných míst, v tomto případě jsou to 2 desetinné prostory.
39) Co jsou logické chyby a jak se liší od syntaktických chyb?
Program, který obsahuje logické chyby, má tendenci projít procesem kompilace, ale výsledný výstup nemusí být očekávaný. K tomu dochází, když byl do kódu vložen nesprávný vzorec nebo byla provedena nesprávná sekvence příkazů. Chyby syntaxe se na druhou stranu vypořádávají s nesprávnými příkazy, které jsou napsány chybně nebo je kompilátor nerozpozná.
40) Jaké jsou různé typy řídicích struktur v programování?
V programování existují 3 hlavní řídicí struktury: sekvence, výběr a opakování. Sekvenční řízení sleduje tok shora dolů při provádění programu, takže se nejprve provede krok 1 a poté krok 2 až do provedení posledního kroku. Výběr se zabývá podmíněnými příkazy, což znamená, že kódy se provádějí v závislosti na vyhodnocení podmínek jako TRUE nebo FALSE. To také znamená, že ne všechny kódy mohou být provedeny a uvnitř existují alternativní toky. Opakování jsou také známá jako smyčkové struktury a budou opakovat jeden nebo dva programové příkazy nastavené čítačem.
41) Co je || operátor a jak to funguje v programu?
|| je také známý jako operátor OR v programování C. Při použití || Chcete-li vyhodnotit logické podmínky, jakákoli podmínka, která se vyhodnotí jako TRUE, vykreslí celý příkaz podmínky jako TRUE.
42) Lze funkci „if“ použít při porovnávání řetězců?
Ne. Příkaz „if“ lze použít pouze k porovnání číselných hodnot a hodnot jednotlivých znaků. Pro porovnávání hodnot řetězců existuje další funkce nazvaná strcmp, která se zabývá konkrétně řetězci.
43) Co jsou direktivy preprocesoru?
Direktivy preprocesoru jsou umístěny na začátku každého programu C. Zde jsou specifikovány soubory knihovny, které by závisely na tom, jaké funkce mají být v programu použity. Dalším využitím direktiv preprocesoru je deklarace konstant. Direktivy preprocesoru začínají symbolem #.
44) Jaký bude výsledek následujícího podmíněného příkazu, je-li hodnota proměnné s 10?
s >=10 && s < 25 && s!=12
Výsledek bude PRAVDIVÝ. Protože hodnota s je 10, s >= 10 se vyhodnotí jako PRAVDA, protože s není větší než 10, ale stále se rovná 10. s< 25 je také PRAVDA, protože 10 je menší než 25. Stejně, s!=12 , což znamená, že s se nerovná 12, má hodnotu TRUE. && je operátor AND a řídí se pravidlem, že pokud jsou všechny jednotlivé podmínky PRAVDA, je PRAVDA celý příkaz.
45) Popište pořadí přednosti s ohledem na operátory v C.
Pořadí priority určuje, která operace se musí nejprve provést v příkazu operace nebo podmíněném příkazu. Na nejvyšší úrovni priority jsou unární operátory !, +, – a &. Za ním následují běžné matematické operátory (nejprve *, / a modul %, poté + a -). Další na řadě jsou relační operátory <, <=, >= a >. Poté následují dva operátory rovnosti == a !=. Logické operátory && a || jsou dále vyhodnoceny. Na poslední úrovni je operátor přiřazení =.
46) Co je na tomto tvrzení špatného? myName = "Robin";
Znak = nemůžete použít k přiřazení hodnot řetězcové proměnné. Místo toho použijte funkci strcpy. Správný příkaz by byl: strcpy(myName, “Robin”);
47) Jak určíte délku hodnoty řetězce, která byla uložena v proměnné?
Chcete-li získat délku hodnoty řetězce, použijte funkci strlen(). Máte-li například proměnnou s názvem CeléJméno, můžete získat délku uložené hodnoty řetězce pomocí tohoto příkazu: I = strlen(CeléJméno); proměnná I bude mít nyní délku znaku hodnoty řetězce.
48) Je možné inicializovat proměnnou v době, kdy byla deklarována?
Ano, po deklaraci proměnné nemusíte psát samostatný příkaz přiřazení, pokud jej neplánujete později změnit. Například: char planet[15] = „Země“; dělá dvě věci: deklaruje řetězcovou proměnnou s názvem planeta a poté ji inicializuje hodnotou „Země“.
49) Proč je jazyk C považován za jazyk střední úrovně?
Je to proto, že jazyk C je bohatý na funkce, díky nimž se chová jako jazyk vysoké úrovně a zároveň může interagovat s hardwarem pomocí metod nízké úrovně. Použití dobře strukturovaného přístupu k programování ve spojení s anglickými slovy používanými ve funkcích z něj dělá jazyk na vysoké úrovni. Na druhou stranu může C přímo přistupovat k paměťovým strukturám podobným rutinám v assembleru.
50) Jaké jsou různé přípony souborů při programování v C?
Zdrojové kódy v C jsou uloženy s příponou .C. Soubory záhlaví nebo soubory knihovny mají příponu souboru .H. Pokaždé, když je zdrojový kód programu úspěšně zkompilován, vytvoří soubor objektu .OBJ a spustitelný soubor .exe.
51) Co jsou vyhrazená slova?
Vyhrazená slova jsou slova, která jsou součástí standardní knihovny jazyka C. To znamená, že vyhrazená slova mají zvláštní význam, a proto je nelze použít k jiným účelům, než k jakým jsou původně určena. Příklady vyhrazených slov jsou int, void a return.
52) Co jsou propojené seznamy?
Propojený seznam se skládá z uzlů, které jsou spojeny s jiným. V programování v jazyce C se propojené seznamy vytvářejí pomocí ukazatelů. Použití propojených seznamů je jedním z efektivních způsobů využití paměti pro ukládání.
53) Co je FIFO?
V programování C existuje datová struktura známá jako fronta. V této struktuře jsou data uložena a zpřístupněna pomocí formátu FIFO nebo First-In-First-Out. Fronta představuje řádek, kde první data, která byla uložena, budou první, která jsou také dostupná.
54) Co jsou binární stromy?
Binární stromy jsou vlastně rozšířením konceptu propojených seznamů. Binární strom má dva ukazatele, levý a pravý. Každá strana se může dále větvit a vytvářet další uzly, přičemž každý uzel má také dva ukazatele. Dozvědět se víc o Binární strom v datové struktuře Pokud máte zájem.
55) Ne všechna vyhrazená slova jsou psána malými písmeny. Pravda nebo lež?
FALEŠNÝ. Všechna vyhrazená slova musí být napsána malými písmeny; jinak by to kompilátor C interpretoval jako neidentifikované a neplatné.
56) Jaký je rozdíl mezi výrazem „++a“ a „a++“?
V prvním výrazu by přírůstek proběhl nejprve na proměnné a a výsledná hodnota bude ta, která se použije. Toto je také známé jako přírůstek předpony. Ve druhém výrazu je aktuální hodnota proměnné a ta, která má být použita v operaci, než se zvýší hodnota samotné. Toto je také známé jako přírůstek postfixu.
57) Co by se stalo s X v tomto výrazu: X += 15; (za předpokladu, že hodnota X je 5)
X +=15 je krátká metoda zápisu X = X + 15, takže pokud je počáteční hodnota X 5, pak 5 + 15 = 20.
58) V jazyce C jsou proměnné NAME, name a Name všechny stejné. Pravda nebo lež?
NEPRAVDIVÉ. Jazyk C je jazyk citlivý na malá a velká písmena. Proto jsou NAME, name a Name tři jedinečně odlišné proměnné.
59) Co je to nekonečná smyčka?
Nekonečná smyčka může znamenat dvě věci. Jedním z nich je, že byl navržen tak, aby se nepřetržitě opakoval, dokud není splněna podmínka v rámci smyčky, po které by funkce přerušení způsobila, že program vystoupil ze smyčky. Další myšlenka na nekonečnou smyčku je, když byla zapsána nesprávná podmínka smyčky, což způsobilo, že smyčka běžela navždy chybně. Nekonečné smyčky jsou často označovány jako nekonečné smyčky.
60) Co je to vývojový diagram programu a jak pomáhá při psaní programu?
Vývojový diagram poskytuje vizuální znázornění postupu krok za krokem k řešení daného problému. Vývojové diagramy se skládají ze symbolů, přičemž každý symbol má podobu různých tvarů. Každý tvar může představovat určitou entitu v rámci celé struktury programu, jako je proces, podmínka nebo dokonce vstupní/výstupní fáze.
61) Co je špatného na tomto programovém prohlášení? prázdnota = 10;
Slovo void je vyhrazené slovo v jazyce C. Vyhrazená slova nelze použít jako uživatelsky definovanou proměnnou.
62) Je toto programové prohlášení platné? INT = 10.50;
Za předpokladu, že INT je proměnná typu float, je tento příkaz platný. Někdo si může myslet, že INT je vyhrazené slovo a nesmí se používat pro jiné účely. Pamatujte však, že vyhrazená slova jsou vyjádřena malými písmeny, takže kompilátor C to nebude interpretovat jako vyhrazené slovo.
63) Jaké jsou skutečné argumenty?
Když vytváříte a používáte funkce, které potřebují provést akci s některými danými hodnotami, musíte tyto dané hodnoty předat dané funkci. Hodnoty, které jsou předávány do volané funkce, se označují jako skutečné argumenty.
64) Co je to úniková sekvence nového řádku?
Sekvence escape nového řádku je reprezentována znakem \n. Slouží k vložení nového řádku při zobrazení dat na výstupní obrazovce. Více mezer lze přidat vložením více \n znaků. Například \n\n vloží dvě mezery. Escape sekvenci nového řádku lze umístit před skutečný výstupní výraz nebo za něj.
65) Co je přesměrování výstupu?
Je to proces přenosu dat do alternativního výstupního zdroje jiného než je obrazovka. Přesměrování výstupu umožňuje programu uložit výstup do souboru. Pokud máte například program s názvem COMPUTE, zadáním tohoto na příkazovém řádku jako COMPUTE >DATA může přijmout vstup od uživatele, provést určité výpočty a poté nechat výstup přesměrovat do souboru s názvem DATA, místo aby jej zobrazoval na obrazovce. .
66) Co jsou chyby za běhu?
Jedná se o chyby, ke kterým dochází při provádění programu. Jedním z běžných případů, kdy může dojít k chybám za běhu, je, když se pokoušíte vydělit číslo nulou. Když se vyskytnou chyby za běhu, provádění programu se pozastaví a zobrazí se, který řádek programu chybu způsobil.
67) Jaký je rozdíl mezi funkcemi abs() a fabs()?
Tyto 2 funkce v podstatě provádějí stejnou akci, a to získat absolutní hodnotu dané hodnoty. Abs() se používá pro celočíselné hodnoty, zatímco fabs() se používá pro čísla s plovoucím typem. Prototyp pro abs() je pod , zatímco fabs() je pod .
68) Jaké jsou formální parametry?
Při použití funkcí v programu C obsahují formální parametry hodnoty, které byly předány volající funkcí. Hodnoty jsou nahrazeny v těchto formálních parametrech a použity v jakýchkoli operacích, jak je uvedeno v hlavním těle volané funkce.
69) Co jsou kontrolní struktury?
Řídicí struktury převezmou odpovědnost za provádění pokynů v programu. To znamená, že tok programu se nemusí nutně přesouvat z jednoho příkazu do dalšího, ale spíše může být nutné přenést nebo obejít některé alternativní části v závislosti na výsledku podmíněných příkazů.
70) Napište jednoduchý fragment kódu, který zkontroluje, zda je číslo kladné nebo záporné
If (num>=0)
printf("number is positive");
else
printf ("number is negative");
71) Kdy je výhodnější příkaz „přepnout“ před příkazem „pokud“?
Jedno příkaz switch se nejlépe používá při práci s výběry založenými na jediné proměnné nebo výrazu. Příkazy switch však mohou vyhodnotit pouze celočíselné a znakové datové typy.
72) Co jsou globální proměnné a jak je deklarujete?
Globální proměnné jsou proměnné, ke kterým lze přistupovat a manipulovat s nimi kdekoli v programu. Chcete-li proměnnou učinit globální, umístěte deklaraci proměnné do horní části programu, hned za sekci direktiv preprocesoru.
73) Jaké jsou vyjmenované typy?
Výčtové typy umožňují programátorovi používat smysluplnější slova jako hodnoty proměnné. Každá položka ve výčtové proměnné typu je ve skutečnosti spojena s číselným kódem. Například lze vytvořit proměnnou výčtového typu s názvem DAYS, jejíž hodnoty jsou Monday, úterý… neděle.
74) Co dělá funkce toupper()?
Používá se k převodu libovolného písmena do režimu velkých písmen. Prototyp funkce Toupper() je deklarován v . Všimněte si, že tato funkce převede pouze jeden znak, nikoli celý řetězec.
75) Je možné mít funkci jako parametr v jiné funkci?
Ano, to je v programování C povoleno. Stačí zahrnout celý prototyp funkce do pole parametrů jiné funkce, kde se má použít.
76) Co jsou vícerozměrná pole?
Vícerozměrná pole jsou schopna ukládat data ve dvou nebo vícerozměrné struktuře. Například můžete použít 2rozměrné pole k uložení aktuální pozice figurek v šachové hře nebo pozice hráčů v programu tic-tac-toe.
77) Kterou funkci v C lze použít k připojení řetězce k jinému řetězci?
Funkce strcat. Ke zdrojovému řetězci je třeba připojit dva parametry, zdrojový řetězec a hodnotu řetězce.
78) Jaký je rozdíl mezi funkcemi getch() a getche()?
Obě funkce přijmou od uživatele vstupní hodnotu znaků. Při použití getch() se klávesa, která byla stisknuta, nezobrazí na obrazovce a je automaticky zachycena a přiřazena k proměnné. Při použití getche() se na obrazovce objeví klávesa, kterou uživatel stiskl, a zároveň je přiřazena k proměnné.
79) Provádějí tyto dva programové příkazy stejný výstup? 1) scanf(“%c”, &písmeno); 2) písmeno=getchar()
Ano, oba dělají přesně to samé, což je přijmout další klávesu stisknutou uživatelem a přiřadit ji proměnné s názvem písmeno.
80) Jaké jsou typy struktur v C?
Typy struktur se primárně používají k ukládání záznamů. Záznam se skládá ze souvisejících polí. To usnadňuje organizaci skupiny souvisejících dat.
81) Co znamenají znaky „r“ a „w“ při psaní programů, které budou využívat soubory?
„r“ znamená „číst“ a otevře soubor jako vstup, do kterého mají být načtena data. „w“ znamená „zápis“ a otevře soubor pro výstup. Předchozí data uložená v tomto souboru budou vymazána.
82) Jaký je rozdíl mezi textovými soubory a binárními soubory?
Textové soubory obsahují data, která mohou lidé snadno pochopit. Obsahuje písmena, čísla a další znaky. Na druhou stranu binární soubory obsahují 1 a 0, které mohou interpretovat pouze počítače.
83) je možné vytvořit vlastní hlavičkové soubory?
Ano, je možné vytvořit vlastní hlavičkový soubor. Stačí do něj zahrnout prototypy funkcí, které chcete ve svém programu použít, a použít direktivu #include následovanou názvem vašeho hlavičkového souboru.
84) Co je dynamická datová struktura?
Dynamická datová struktura poskytuje prostředky pro efektivnější ukládání dat do paměti. Použití Použití dynamické přidělení paměti, váš program bude přistupovat k paměťovým prostorům podle potřeby. To je na rozdíl od statické datové struktury, kde programátor musí indikovat pevný počet paměťového prostoru, který má být v programu použit.
85) Jaké jsou různé datové typy v C?
Základní datové typy v C jsou int, char a float. Int se používá k deklaraci proměnných, které budou ukládat celočíselné hodnoty. Float se používá k ukládání reálných čísel. Char může ukládat hodnoty jednotlivých znaků.
86) Jaká je obecná podoba programu C?
Program AC začíná direktivami preprocesoru, ve kterých by programátor specifikoval, který hlavičkový soubor a jaké konstanty (pokud existují) se mají použít. Následuje nadpis hlavní funkce. V rámci hlavní funkce se nachází deklarace proměnné a příkaz programu.
87) Jaká je výhoda souboru s náhodným přístupem?
Pokud je množství dat uložených v souboru poměrně velké, použití náhodného přístupu vám umožní prohledávat jej rychleji. Pokud by se jednalo o soubor se sekvenčním přístupem, museli byste procházet jeden záznam po druhém, dokud nedosáhnete cílových dat. Soubor s náhodným přístupem umožňuje přeskočit přímo na cílovou adresu, kde se nacházejí data.
88) Co se stane v příkazu switch, když je vynechán příkaz break?
Pokud příkaz break nebyl umístěn na konec konkrétní části případu? Přejde na další část pouzdra, což může způsobit nesprávný výstup.
89) Popište, jak lze pole předat uživatelsky definované funkci
Jedna věc, kterou je třeba poznamenat, je, že funkci nemůžete předat celé pole. Místo toho mu předáte ukazatel, který bude ukazovat na první prvek pole v paměti. Chcete-li to provést, uveďte název pole bez závorek.
90) Co jsou ukazatele?
Ukazatele ukazují do konkrétních oblastí v paměti. Ukazatele obsahují adresu proměnné, která zase může obsahovat hodnotu nebo dokonce adresu do jiné paměti.
91) Dokážete funkcím předat celou strukturu?
Ano, je možné předat funkci celou strukturu ve volání stylem metody. Někteří programátoři však dávají přednost globální deklaraci struktury a poté předání proměnné tohoto typu struktury funkci. Tato metoda pomáhá udržovat konzistenci a jednotnost z hlediska typu argumentu.
92) Co je funkce get()?
Jedno gets() function umožňuje úplné zadání dat od uživatele. Když uživatel stiskne klávesu enter pro ukončení vstupu, celý řádek znaků se uloží do řetězcové proměnné. Všimněte si, že klíč enter není zahrnut v proměnné, ale místo toho je za posledním znakem umístěn prázdný znak \0.
93) Symbol % má speciální použití v příkazu printf. Jak byste umístili tuto postavu jako součást výstupu na obrazovku?
Můžete to udělat pomocí %% v příkazu printf. Můžete například napsat printf(“10%%”), aby se výstup zobrazil jako 10% na obrazovce.
94) Jak vyhledáváte data v datovém souboru pomocí metody náhodného přístupu?
Použití fseek() funkce pro provádění vstupu/výstupu s náhodným přístupem k souboru. Po otevření souboru funkcí fopen() by fseek vyžadoval tři parametry, aby fungoval: souborový ukazatel na soubor, počet bajtů k prohledání a výchozí bod v souboru.
95) Jsou komentáře zahrnuty ve fázi kompilace a umístěny také do souboru EXE?
Ne, komentáře, na které narazil kompilátor, se neberou v úvahu. Komentáře jsou většinou pouze orientační pro programátora a nemají žádné další významné využití ve funkcionalitě programu.
96) Existuje v C vestavěná funkce, kterou lze použít pro třídění dat?
Ano, použijte qsort() funkce. Je také možné vytvořit uživatelsky definované funkce pro třídění, jako jsou funkce založené na algoritmu pro třídění balónků a bublin.
97) Jaké jsou výhody a nevýhody haldy?
Ukládání dat na haldu je pomalejší než při použití zásobníku. Hlavní výhodou použití haldy je však její flexibilita. Je to proto, že paměť v této struktuře lze přidělovat a odebírat v libovolném konkrétním pořadí. Pomalost v haldě může být kompenzována, pokud byl algoritmus dobře navržen a implementován.
98) Jak převádíte řetězce na čísla v C?
Můžete si napsat své vlastní funkce pro převod řetězců na číslo, nebo místo toho použít vestavěné funkce C. Atof můžete použít k převodu na hodnotu s plovoucí desetinnou čárkou, atoi k převodu na celočíselnou hodnotu a atol k převodu na dlouhé celé číslo.
99) Vytvořte jednoduchý fragment kódu, který prohodí hodnoty dvou proměnných num1 a num2.
int temp; temp = num1; num1 = num2; num2 = temp;
100) K čemu slouží středník (;) na konci každého programového příkazu?
Souvisí to s procesem analýzy a kompilací kódu. Středník funguje jako oddělovač, takže kompilátor ví, kde každý příkaz končí, a může přistoupit k rozdělení příkazu na menší prvky pro kontrolu syntaxe.
Tyto otázky na pohovoru také pomohou ve vašem životě (ústních)

