wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Prog2 Coggle

Total questions: 36

Worksheet time: 18mins

Name
Class
Date
1.

Melyik a C++ program belépési pontja, amelyet a rendszer hív meg futáskor?

a)

init() függvény definíciója

b)

bootstrap() eljárás kezdete

c)

start() metódus hívása

d)

main() függvény definíciója

2.

Melyik main aláírás hordozza a parancssori argumentumok számát és értékeit C++-ban?

a)

int main() szabványos forma

b)

auto main(auto args) sablon

c)

int main(int argc, char* argv[])

d)

void main() régi változat

3.

Mi különbözteti meg a header fájlt a forrás fájltól C++-ban?

a)

Header bináris, forrás szöveges tartalom

b)

Header deklarációk, forrás definíciók

c)

Header .cpp, forrás .hpp kiterjesztés

d)

Header futtatható, forrás könyvtári kód

4.

Melyik példa ír le definiálatlan viselkedést C++-ban?

a)

Egész típus túlcsordulása kétkomplementen

b)

Megfelelő típuskonverzió explicit casttal

c)

Nullpointer dereferálása bármely környezetben

d)

Határon belüli tömbhozzáférés biztosítva

5.

Mit csinál a C++ előfeldolgozó a fordítási folyamatban?

a)

Memóriakezelést végez futásidőben

b)

Makrókat bővít és include-okat illeszt

c)

Optimalizálja a gépi kód utasításait

d)

Futtatja a program main függvényét

6.

Melyik állítás igaz a kommentekre C++-ban?

a)

Fordításkor futtatható metaadatok

b)

Előfeldolgozó törli őket végleg

c)

Linker átírja a jelentésüket

d)

Runtime naplóba kerülnek automatikusan

7.

Melyik állítás írja le helyesen a private és public tagok közti különbséget egy osztályban?

a)

private tagok csak az osztályon belül érhetők el

b)

private tagok örökléskor automatikusan válnak protecteddé

c)

public tagok nem példányokhoz, csak statikusan érhetők el

d)

public tagok csak barát osztályokból érhetők el

8.

Mi a this mutató elsődleges szerepe tagfüggvényekben?

a)

Az ősosztály első példányára mutat

b)

Az osztály statikus tagjára mutat

c)

Az aktuális objektumra mutat

d)

Az aktuális névteret azonosítja

9.

Melyik kifejezés igaz konstans tagfüggvényekre?

a)

Mindig inline fordítódnak

b)

Csak privát láthatóságúak lehetnek

c)

Csak statikus tagokat érhetnek el

d)

Nem módosíthatják a tagállapotot

10.

Melyik állítás helyes az inicializálási listákról a konstruktorban?

a)

Tagokat létrehozáskor, deklarált sorrendben inicializálnak

b)

Tagokat testben, tetszőleges sorrendben állítanak be

c)

Mindig későbbi futási időben hajtódnak végre

d)

Csak primitív típusokra alkalmazhatók

11.

Adott osztályban a tagok deklarálási sorrendje A, B, C. Melyik sorrendben inicializálódnak az inicializálási listában?

a)

Az írt lista szerinti tetszőleges

b)

C, majd B, majd A

c)

A, majd B, majd C

d)

Random, fordítófüggő

12.

Mi a konstruktor delegálás célja C++-ban?

a)

Öröklési hierarchia lecserélése

b)

Destruktorok automatikus láncolása

c)

Virtuális függvények elrejtése

d)

Közös inicializálási logika újrafelhasználása

13.

Melyik példakód fejezi ki helyesen a delegáló konstruktort?

a)

ClassX(int a): ClassX(){ }

b)

ClassX(): ClassX(0) { }

c)

ClassX(int a){ ClassX(); }

d)

ClassX(): this(0) { }

14.

Melyik állítás igaz konstans objektumokra és const tagfüggvényekre?

a)

Const objektum csak const tagfüggvényeket hívhat

b)

Const objektum nem példányosítható

c)

Const tagfüggvények visszatérési értéke mindig const

d)

Const objektum bármely függvényt hívhat

15.

Mi a virtuális függvény elsődleges célja objektumorientált nyelvekben?

a)

Osztályok példányosításának megakadályozása

b)

Memóriakezelés automatizálása fordításkor

c)

Privát adattagok láthatóvá tétele kívülről

d)

Dinamikus kötés engedélyezése futásidőben

16.

Mit jelent az override kulcsszó használata egy leszármazott osztályban?

a)

Bázisosztály konstruktorának tiltása globálisan

b)

Metódus túlterhelése más paraméterekkel

c)

Statikus tag újradefiniálása másik névtérben

d)

Bázisfüggvény felülírása kompatibilis szignatúrával

17.

Mi történik objektumszeleteléskor, amikor egy leszármazott objektumot érték szerint egy bázisosztály változóba másolsz?

a)

Az egész objektum mélyen másolódik változatlanul

b)

A leszármazott rész elveszik, csak bázis rész marad

c)

A példány hivatkozássá alakul automatikusan

d)

A virtuális táblák duplikálódnak futás közben

18.

Melyik állítás igaz az absztrakt osztályokra?

a)

Példányosíthatók, ha minden metódus publikus

b)

Nem örökölhetők további leszármazottak által

c)

Nem rendelkezhetnek konstruktortörzzsel soha

d)

Legalább egy tisztán virtuális függvényt tartalmaznak

19.

Mi a különbség a statikus és dinamikus kötés között?

a)

Statikus: csak interfészeknél, dinamikus: csak sablonoknál

b)

Statikus: futáskor, dinamikus: fordításkor

c)

Statikus: fordításkor, dinamikus: futáskor

d)

Statikus: mindig lassabb, dinamikus: mindig gyorsabb

20.

Mikor aktiválódik a dinamikus polimorfizmus?

a)

Virtuális metódus hívásakor bázisreferencián

b)

Konstruktor hívásakor bármely osztályban

c)

Statikus metódus meghívásakor leszármazottból

d)

Sablonfüggvény fordítási idejű példányosításakor

21.

Mit eredményez egy tisztán virtuális (pure virtual) függvény deklarálása?

a)

A bázis automatikusan implementációt generál

b)

Az osztály absztrakttá válik és nem példányosítható

c)

A függvény mindig inline módon fordul

d)

A metódus csak privát lehet és végleges

22.

Hogyan kerülhető el az objektumszeletelés érték szerinti hozzárendeléskor?

a)

Használj referenciát vagy mutatót bázistípusra

b)

Használj nagyobb pufferű memóriakiosztást

c)

Állítsd a metódusokat nem-virtuálisra kifejezetten

d)

Alkalmazz másoló konstruktor tiltást explicit

23.

Melyik kódminta biztosítja a helyes override-t C++-ban?

a)

class B{virtual void f() const;}; class D:B{void f() override;};

b)

class B{virtual void f();}; class D:B{void f() override;};

c)

class B{void f();}; class D:B{void f() override;};

d)

class B{virtual void f(int);}; class D:B{void f(double) override;};

24.

Melyik állítás helyes a vptr/vtable mechanizmusról?

a)

Memóriamenedzsmentet végez garbage collectorral

b)

Virtuális hívás irányítására szolgál futásidőben

c)

Fordítási idejű sablon specializációt vezérel

d)

Csak statikus metódusokhoz tartozik minden osztályban

25.

Melyik állítás igaz a stack és heap allokáció közti különbségre C++-ban?

a)

A stack automatikus élettartamú, a heap manuális felszabadítású

b)

A stack allokáció mindig lassabb, a heap mindig gyorsabb

c)

A stacken csak pointerek lehetnek, a heapen csak értékek

d)

A stack dinamikus méretű, a heap mindig fix méretű

26.

Melyik párosítás helyes a C++ memóriakezelésnél?

a)

new ↔ free; malloc ↔ delete

b)

new ↔ release; malloc ↔ destroy

c)

new ↔ delete; malloc ↔ free

d)

new ↔ dealloc; malloc ↔ dispose

27.

Mi a destruktor elsődleges felelőssége egy osztályban?

a)

Erőforrások felszabadítása determinisztikusan

b)

Tagfüggvények túlterhelése futásidőben

c)

Példányok számlálása globális változóval

d)

Sablonparaméterek dedukálása fordításkor

28.

Mikor célszerű std::unique_ptr használata?

a)

Nyers pointerek cseréje C stílusú API-hoz

b)

Automatikus másolás több konténer között

c)

Megosztott tulajdonlás, ciklikus referenciák kezelése

d)

Exkluzív tulajdonlás, egyetlen felelős példány

29.

Melyik állítás igaz az std::shared_ptr-re?

a)

Referenciaszámlálással kezeli a megosztott tulajdont

b)

Automatikusan megszünteti a körkörös hivatkozásokat

c)

Mindig gyorsabb, mint a unique_ptr minden esetben

d)

Nem szálbiztos és nem használható több szálban

30.

Válaszd ki a helyes eljárást: egy malloc-kal foglalt blokk felszabadítása C++ kódban.

a)

free pointer hívása pontosan egyszer

b)

delete[] pointer hívása minden esetben

c)

Nem kell felszabadítani, a runtime megteszi

d)

delete pointer hívása többször egymás után

31.

Adott két osztály, A és B, amelyek egymásra mutatnak. Hogyan előzhető meg shared_ptr-rel a ciklikus referencia okozta memória-szivárgás?

a)

Mindkét irányban nyers pointerek alkalmazása

b)

Az egyik irányban delete manuális hívása

c)

Mindkét irányban std::unique_ptr használata

d)

Az egyik irányban gyenge hivatkozás, std::weak_ptr

32.

Melyik állítás igaz a std::string indexelésére a [] és at() használatával?

a)

at() visszaadja const char*, [] visszaadja char* mutatót

b)

[] mindig gyorsabb, at() mindig lassabb minden helyzetben

c)

[] és at() egyaránt kivételt dob túlindexeléskor

d)

[] nem végez ellenőrzést, at() határ-ellenőrzést végez

33.

Mit ad vissza a find függvény, ha a keresett minta nem található a std::string-ben?

a)

false logikai értéket

b)

nullptr mutatót

c)

-1 egész számot

d)

std::string::npos értéket

34.

Melyik hívás alakít át egy egész számot std::stringgé biztonságosan?

a)

printf("%d", 42)

b)

std::stoi("42")

c)

std::string(42)

d)

std::to_string(42)

35.

Miben különbözik a find_first_of a find-től?

a)

find_first_of csak a string elején keres mintát

b)

find_first_of visszatérési típusa eltérően bool

c)

find_first_of teljes részszöveget keres pontos egyezéssel

d)

find_first_of bármelyik megadott karakter első előfordulását keresi

36.

Melyik megközelítés a legbiztonságosabb karakter elérésére és hibakezelésére, ha index túlfutás lehetséges?

a)

at() használata és kivétel kezelése try-catch blokkban

b)

[] használata és reménykedni, hogy érvényes az index

c)

c_str() meghívása és pointer aritmetika

d)

[] használata és ellenőrizni, hogy nem dob kivételt