KURZUS: Programozás alapjai

MODUL: III. modul

Modulzáró feladatok

1. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A direktívák # karakterét nem előzheti meg semmilyen karakter a sorban.
A direktívákat mindig le kell zárni ;-vel.
A direktíva soremelést megelőző \ karaktere azt jelzi, hogy a következő sor folytatássor lesz, és a sorokat egyesíteni kell.
A direktívák a forrásszövegnek csak az őket követő részeire hatnak.
Az #include direktívával betöltött fájl nem tartalmazhat további #include-okat.
2. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A makrókifejtés nem történik meg karakterlánc konstansokban.
A __DATE__ makró segítségével a forrásfájl létrehozásának dátuma automatikusan bekerül a forrásba.
Nem létező makró definiálatlanná tétele #undef segítségével fordítási hibát okoz.
Paraméteres makrók paramétereit és a teljes makrótestet külön is érdemes kerek zárójelpárokba zárni.
Ha a paraméteres makró testében ugyanaz a paraméter többször is előfordul, akkor a mellékhatások többször is jelentkezhetnek.
3. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A karakterosztályozó makrók használatához be kell kapcsolni a string.h fejfájlt.
A makrók és a függvények azonosítói azonos névteret használnak.
Egy fejfájl többszöri bekapcsolása meggátolható a helyesen használt #ifndef direktívával.
A #pragma direktívát követő szimbólumokat nem rögzíti az ANSI C szabványa.
A tárolási osztály meghatározza az objektum élettartamát, hatáskörét és kapcsolódását.
4. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A függvényparaméterek automatikus tárolási osztályúak.
A blokkon belül definiált objektumok alapértelmezett tárolási osztálya az extern.
Az auto tárolási osztály specifikátor globális hatáskörű objektumok deklarációjában is használható.
Az automatikus tárolási osztályú objektumoknak nincs kapcsolódásuk.
A register tárolási osztályú változókat a fordító mindig a processzor regisztereiben tárolja, és sosem helyezi el a memóriában.
5. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A register tárolási osztályú változók címére nem lehet hivatkozni.
A static kulcsszavas deklaráció definíció.
A blokkon belüli static tárolási osztályú változónak történő memóriafoglalást követően implicit kezdőérték adás is történik.
Külső kapcsolódású változó definíciója az extern kulcsszó használatával lehetséges.
A statikus élettartamú változóknak a programozó felelőssége használat előtt memóriát foglalni, majd használat után azt felszabadítani.
6. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A statikus élettartamú objektumok fájl szintű (globális) hatáskörrel rendelkeznek.
Az automatikus változók explicit inicializálásra szorulnak.
A lokális élettartamú objektum mindig lokális hatáskörű.
A statikus élettartamú objektum mindig globális hatáskörű.
A függvények paraméterei lokális hatáskörűek.
7. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A blokk hatáskörű változók mindig láthatóak a beágyazott blokkokban.
A függvény paraméterei függvény hatáskörrel rendelkeznek.
A függvény prototípusában szereplő paraméterlista azonosítóinak hatásköre a függvény teljes definíciójára kiterjed.
A függvény prototípusában szereplő paraméterek azonosítóit nem kell egyeztetni a függvény definíciójában szereplő paraméterek azonosítóival.
A globális (minden függvény testén kívül) elhelyezett azonosítók hatásköre a teljes forrásfájlra kiterjed.
8. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy programban szerepelhet több egyforma azonosítójú, belső kapcsolódású objektum.
Ugyanaz a függvény egy programban akár többször is deklarálható.
A függvény prototípusok használata egyáltalán nem kötelező.
A hívott függvényből akár return utasítás nélkül is vissza lehet térni a hívóba.
Függvény lokális változóinak hatásköre a beágyazott függvényre is kiterjed.
9. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy függvény hívását meg kell előznie legalább egy deklarációjának.
A függvény visszatérési értékének típusát röviden csak a függvény típusaként szoktuk említeni.
Függvénynek tömböt átadva igazából nem is a tömb, hanem csak annak címe kerül átadásra.
Függvény aktuális paraméterének típusa nem feltétlenül kell, hogy egyezzen a formális paraméter típusával.
A függvény prototípusából mindig egyértelműen kiderül, hogy pontosan hány paraméter átadására számít a függvény.
10. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A fordító mindig ellenőrzi, hogy a függvény aktuális paramétereinek típusai hozzárendelés kompatibilisek-e a formális paraméterekkel.
A függvénytestben minden változó tárolási osztálya auto.
A függvénytestben minden változó alapértelmezett tárolási osztálya auto.
A void visszatérési értékű függvényben nem szerepelhet a return kulcsszó.
A nem deklarált függvény alapértelmezett visszatérési érték típusa void.
11. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A nem deklarált függvény alapértelmezett visszatérési érték típusa int.
Az int fv() és az int fv(void) deklarációk ekvivalensek.
A függvény paraméterei külön intézkedés nélkül úgy használhatóak, mint bármely lokális változója, akár az értékük is megváltoztatható.
Rekurzív függvényhívások során az aktuális paramétereknek mindig újabb memóriaterületet foglal a fordító.
A mutatók adatot, függvényt és típust is képesek megcímezni.
12. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A mutatók memóriacímek tárolására szolgálnak.
A mutatókat más néven vektoroknak is szokták nevezni.
A mutatók technikailag előjel nélküli egészek, de használatukra speciális szabályok, korlátozások vonatkoznak.
A mutató típusa a deklarációban rögzíti annak az objektumnak a típusát, amelyet a mutató megcímezhet.
A void* típusú mutató semmit sem képes megcímezni.
13. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A lokális élettartamú mutatók implicit módon NULL kezdőértéket kapnak.
A NULL mutató az ú.n. nulláslap megcímzésére szolgál.
Típustól függetlenül, bármilyen mutató összehasonlítható a NULL értékkel.
Típustól függetlenül, bármilyen mutató felveheti a NULL értéket.
register tárolási osztályú változók címe a & operátorral képezhető.
14. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Egy adatmutató értékét felveheti egy másik adatmutató, bár explicit típuskényszerítésre szükség lehet.
Egy adatmutató értékét felveheti egy kódmutató, bár explicit típuskényszerítésre szükség lehet.
A mutató által nyilvántartott helyen lévő érték elérése a * operátorral lehetséges.
A printf képes mutatók értékeinek megjelenítésére a p típuskarakterrel.
A void* típusú mutató egy meg nem határozott típusú adatot címez meg.
15. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Statikus élettartamú objektum címével inicializálható egy lokális élettartamú mutató.
Lokális élettartamú objektum címével inicializálható egy statikus élettartamú mutató.
A const char* s paramétert fogadó függvény nem változtathatja meg az s változó értékét.
A const char* s paramétert fogadó függvény nem változtathatja meg az s címen lévő karakterlánc tartalmát.
A char* const s paramétert fogadó függvény nem változtathatja meg az s változó értékét.
16. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A char* const s paramétert fogadó függvény nem változtathatja meg az s címen lévő karakterlánc tartalmát.
Tömbindexelésnél semmi akadálya annak, hogy az index mögé szögletes zárójelpárba a tömb nevét írjuk.
A C-ben nincs külön szintaktikai lehetőség a cím szerinti paraméterátadásra, de a címképző operátor használatával ez a probléma megkerülhető.
A t[i] tömbindexelés ekvivalens módon átírható *(t+i)-re.
A t[i] tömbindexelés ekvivalens módon átírható *t+i-re.
17. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A tömb utolsó utáni "elemét" címző mutató még legális.
A tömb első előtti "elemét" címző mutató még legális.
A címaritmetikai műveletek csak tömbökön történő alkalmazás esetén értelmezettek.
Ha két mutató azonos címet tárol, de az egyik konstans mutató, a másik azonban nem, akkor az egyezőségi reláció hamis eredményre vezet.
A karakterlánc kezelő függvények akkor is biztonságosan használhatók, ha a memóriában egymást átfedő karaktertömbökre használjuk őket.
18. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az strcat függvény nem ellenőrzi, hogy az eredmény karakterlánc el fog-e férni a neki szánt helyen.
A str... kezdetű könyvtári függvények feltételezik, hogy a paraméterként átadott karaktertömbök a lánczáró karaktert már tartalmazzák.
Az strcmp a karakterláncok összehasonlításakor nem különbözteti meg a kis- és nagybetűket.
Az strlen függvény a paraméter karakterlánc hosszába a lánczáró karaktert is beleszámítja.
Az strtok függvény minden hívásánál nyugodtan lecserélhetjük az elválasztó jeleket valami másra.
19. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az strtok függvény működése közben megváltoztatja a karakterláncot, amiben a szimbólumokat keresi.
A mutatótömb olyan mutató, amely egy tömböt címez meg.
A mutatótömb olyan tömb, ami mutatókból áll.
A nyelv nem korlátozza egy tömb dimenzióinak számát.
Tömindexelésnél a szögletes zárójelpárban egymástól vesszővel elválasztva kell felsorolni az indexeket.
20. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A tömbindexelésnél az indexek dimenziónként eltérő intervallumba eshetnek.
A többdimenziós tömb inicializálásakor akár beágyazott inicializátor listák is használhatóak.
Többdimenziós tömbök inicializálásakor a kapcsoszárójel párok számának egyeznie kell a tömb dimenzióinak számával.
srand hívás hiányában az egymást követő rand hívások mindig ugyanazt az értéket fogják szolgáltatni.
srand hívás hiányában az egymást követő rand hívások az értékeknek mindig ugyanazt a sorozatát fogják szolgáltatni.
21. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A rand függvény nem képes negatív érték visszaadására.
A time függvény minden hívásakor más-más eredményt ad.
A fordító a globális változóknak a heap-en foglal helyet.
A fordító a lokális változókat a veremben helyezi el.
Dinamikus memóriakezeléshez be kell szerkeszteni az stdlib.h fejfájlt.
22. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
A globális errno változó vizsgálatával lehet kideríteni, mi okozta a malloc függvény futása során a hibát.
Ha a program futása során minden rendben zajlott, a main függvény ezt 1 érték visszaadásával jelezheti az operációs rendszernek.
A main függvény első, általában argc nevű paraméterének értéke mindig eggyel nagyobb a parancssori paraméterek számánál.
A main függvény második, általában argv nevű paramétere egy karakteres mutatótömb.
A getenv függvény üres karakterláncot címző mutató visszaadásával jelzi, ha a paraméterként átadott nevű környezeti változó nem létezik.
23. Az alábbi állításokról döntse el, hogy igazak vagy hamisak!
Az abort() és az exit(3) hívások ekvivalensek.
int fv(double, int); -ben az fv típusa konstans kódmutató.
Az int *fv(int); függvény egészet címző mutatóval tér vissza.
Az int (*fv)(int); függvény egészet címző mutatóval tér vissza.
Mutatóaritmetika kódmutatókon is végezhető.