Prog2 1. KZH Igaz/Hamis kikérdező
A VIK Wikiből
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Minden programot using namespace std; direktívával kell kezdeni.
- Referencia típusú változó nem adható át paraméterként.
- A new képes kivételt generálni.
- A névterek egymásba ágyazhatók.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Függvényprototípus használata kötelező, ha a függvény a használat előtt nincs definiálva.
- A throw utasítás végtelen ciklusból való kilépésre való.
- Kivételt csak abban a fájlban lehet elfogni, ahol a throw utasítás van.
- Minden programot #include <iostream> direktívával kell kezdeni.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{int i;
while (std::cin >>i);}
while (std::cin >>i);}
- Addig olvas be egész számokat, amíg az inputon egész formátumnak megfelelő adatok érkeznek.
- A kódrészlet hibás, mert az i változó nem kap értéket.
- Végtelen ciklus.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- A struktúra egy osztály.
- A new sosem generál kivételt.
- Az értékadó operátor nem terhelhető túl.
- A delete[] egy operátor.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
void swap(int& a, int& b) {
int c = a;
a = b;
b = c; }
int c = a;
a = b;
b = c; }
- A függvény felcseréli a referencia paraméterként kapott két változó adatát.
- A függvény az első paraméterként kapott változóba másolja a második paraméter adatát.
- A függvény hibás, mert lokális változó referenciáját képzi.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Az inline függvénynek nem lehet default paramétere.
- A realloc helyett a renew utasítást kell használni.
- Destruktornak csak konstans paramétere lehet.
- A nyelvben nincs logikai típus.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Függvénysablonnak nem lehet paramétert átadni.
- Ciklus feltételében is lehet változót deklarálni. Pl:while (int i = f())...
- Konstans tagfüggvény nem változtathatja meg az objektum állapotát.
- Default paramétere csak tagfüggvénynek lehet.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ struct S{
int a;
}; S so;}
int a;
}; S so;}
- S egy osztály.
- S egy objektum.
- S minden adattagja privát.
- so destruktora sosem hívódik meg, mert nincs.
- so adattagja inicializálatlan.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- A private kulcsszó struktúrában nem szerepelhet.
- A new[] képes kivételt generálni.
- inline függvényben nem lehet ciklus.
- Konstans tagfüggvény csak konstans paramétert kaphat.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- A scope (::)operatorral a privát adatok is elérhetők bárki számára.
- A new[] operátorral foglalt memóriaterületet delete[] operátorral kell felszabadítani.
- A névterek nem ágyazhatók egymásba.
- A konstruktor mindig int típusú, ezért azt nem kell kiírni.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ class C{
int x;
}; C co;}
int x;
}; C co;}
- C egy osztály.
- C egy objektum.
- C minden adattagja privát.
- C konstruktora nem hívódik meg, mert nincs.
- A kódrészletben memóriaszivárgás lép fel.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
void swap(int& a, int& b) {
int& c = a;
a = b;
b = c; }
int& c = a;
a = b;
b = c; }
- A függvény felcseréli a referencia paraméterként kapott két változó adatát.
- A függvény az első paraméterként kapott változóba másolja a második paraméter adatát.
- A függvény hibás, mert lokális változó referenciáját képzi.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Minden függvény megkapja a this pointert egy rejtett paraméterként.
- A névterek nem ágyazhatók egymásba.
- Referencia típusú változó átadható paraméterként.
- Egy változót többször is lehet definiálni, de deklarálni csak egyszer.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- A public kulcsszó osztályon belül csak egyszer szerepelhet.
- A new képes kivételt generálni.
- Az inline függvényben nem lehet ciklus.
- Túlterheléssel az operátorok szintaxisa nem változtatható meg.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ struct S{
int a;
}; S sv[3]; S s1; }
int a;
}; S sv[3]; S s1; }
- S egy osztály.
- S egy objektum.
- S minden adattagja privát.
- S konstruktora nem hívódik meg, mert nincs.
- S konstuktora 3-szor hívódik meg.
- S konstuktora 4-szor hívódik meg.
- S destruktora nem hívódik meg, mert nincs.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ class C{ }
new C[3];
}; C c1; }
new C[3];
}; C c1; }
- c1 egy objektum.
- C deklarációja hibás, mert nincs adattagja.
- C-nek nincs destruktora.
- C konstruktora nem hívódik meg, mert nincs.
- C konstruktora 3-szor hívódik meg a kódrészletben.
- C destruktora 3-szor hívódik meg a kódrészletben.
- A kódrészletben memóriaszivárgás lép fel.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ struct S{
int *a;
S()
{ this->a = 0;
} ~S() {}
};
int *a;
S()
{ this->a = 0;
} ~S() {}
};
- S egy osztály.
- S egy objektum.
- S-nek nincs konstruktora.
- Memóriaszivárgás lép fel.
- A deklaráció hibás, mert a this csak akkor használható, ha van a tagfüggvénynek paramétere.
- Minden adat és tagfüggvény privát.
- Minden adat és tagfüggvény publikus.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- A private kulcsszó osztályban nem szerepelhet.
- A függvények felüldefiniálhatók (fv. overload).
- Minden osztálynak van konstruktora.
- Egy osztálynak több destruktora is lehet.
Jelölje, hogy mely kijelentés(ek) igaz(ak)az alábbi C++ kódrészletre!
{ class Z{
int a;
public: Z(int i)
{ a = i;
} ~Z() {}
};
int a;
public: Z(int i)
{ a = i;
} ~Z() {}
};
- Z egy objektum.
- Z-nek nincs konstruktora.
- Z egy változó.
- Z-ből nem hozható létre tömb.
- Minden adat és tagfüggvény privát.
- Minden tagfüggvény publikus.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Makrók használata tiltott.
- Minden operátor túlterhelhető.
- Nincs pointeraritmetika.
- Névterek használata a névütközések elkerülését segíti.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Minden osztályban meg kell írni legalább 1 konstruktort.
- A dinamikus memóriakezelés nyelvi elemmel segített.
- Az int *p = malloc(10*sizeof(int)); C utasítás C++ megfelelője: int *p = new(10);
- A C nyelvben ismert realloc függvényt a renew operátor helyettesíti.
Jelölje, hogy mely kijelentés(ek) igaz(ak)a C++ nyelvre!
- Egy osztálynak több konstruktora is lehet.
- A destruktor mindig void* paramétert kap, amit nem kell jelölni.
- Null pointerre alkalmazható a delete operator.
- A destruktor nem csinál semmit ezért teljesen felesleges.