PA2: demo skillcheck vol2 + těžší teor. úlohy

C++ Data Structures and Memory Management Quiz
Test your knowledge of advanced C++ concepts with this engaging quiz designed for developers. Dive into questions related to data structures, memory management, and operator overloading, along with practical code scenarios.
Prepare yourself for challenges like:
- Understanding class behavior and memory allocation
- Identifying data structure suitability for different tasks
- Analyzing code snippets for correctness and efficiency
Program při spuštění spadne.
Kompilace nebo linkování selže.
Program půjde spustit a zobrazí:

map<string,list>
set<pair<string,int>>
unordered_set<pair<string,int>,hash_pair>
map<string,vector>
unordered_multimap<string,int>
3.:
Máme matriku příjmení a jmen uložených v std::pair<string, string> v pořadí (příjmení, jméno). Jaká je vhodná datová struktura pro uložení matriky, pokud máme pouze O(1) místa navíc mimo matriky samotné a chceme v lineárním ĝase najít nejĝastější jméno (ne příjmení).
list<pair<string, string>> seřázený podle příjmení
vector<pair<string, string>> neseřázený
vector<pair<string, string> > seřazený podle pair::operator <
unordered_set<pair<string, string>, hash_fun>
Ani jedna z nabízených
4.:
class CInt {
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ){ m_X = new int ( *src.m_X ); }
~CInt(void){ delete m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int *m_X;
};
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ){ m_X = new int ( *src.m_X ); }
~CInt(void){ delete m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int *m_X;
};
int main( void ) {
CInt a ( 12 ), b ( 42 ), c = a;
a = 17;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
5.:
class CInt{
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ) { m_X = new int ( *src . m_X ); }
~CInt ( void ) { delete m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int * m_X;
};
int main ( void ){
CInt a ( 49 ), b ( 6 ), c = a;
a = b;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
6.:
class CInt{
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ) { m_X = new int ( *src . m_X ); }
~CInt ( void ) { delete m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int * m_X;
};
int main ( void ){
CInt a ( 74 ), b ( 20 ), c = a;
a = 54;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
7.:
class CInt{
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ) { m_X = src . m_X; }
~CInt ( void ) { delete m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int * m_X;
};
int main ( void ){
CInt a ( 65 ), b ( 12 ), c = a;
a = 92;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
8.:
class CInt
{
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int * m_X;
};
int main ( void ){
CInt a ( 37 ), b ( 24 ), c = a;
a = 5;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
9.:
class CInt{
public:
CInt ( int x ) : m_X ( new int ( x ) ) {}
CInt ( const CInt & src ) { m_X = src . m_X; }
void operator = ( int x ) { *m_X = x; }
void print ( void ) const { cout << *m_X; }
private:
int * m_X;
};
int main ( void ){
CInt a ( 83 ), b ( 12 ), c = a;
a = 95;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
10.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum operator + ( CNum & a, CNum & b ) { return a + b; }
void print ( void ) const { cout << m_X; }
private:
int m_X;
};
int main ( void ){
CNum a (17), b(30);
CNum c = a + b;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
11.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
friend CNum operator + ( CNum & a, CNum & b ) { return a + b; }
void print ( void ) const { cout << m_X; }
private:
int m_X;
};
int main ( void ){
CNum a (94);
CNum c = a + 78;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
15.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum operator + ( const CNum & a ) { m_X += a . m_X; return *this; }
void print ( void ) const { cout << m_X; }
private:
int m_X;
};
int main ( void ){
CNum a (98);
CNum c = a + 43;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
16.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum operator + ( const CNum & a ) const {
CNum res ( m_X + a . m_X ); return CNum ( res );
}
void print ( void ) const { cout << m_X; }
private:
int m_X;
};
int main ( void ){
CNum a (39);
CNum c = a + 16;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
17.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum operator + ( const CNum & a ) const { return a + m_X; }
void print ( void ) const { cout << m_X; }
private:
int m_X;
};
int main ( void ){
CNum a (64);
CNum c = a + 27;
c . print ();
return 0;
}
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
18.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum ( const CNum & src ) { m_X = src . m_X; cout << m_X; }
void debug ( void ) const { cout << *this; }
friend ostream & operator << ( ostream & os, const CNum & x );
private:
int m_X;
};
ostream & operator << ( ostream & os, const CNum & x ){
os << x . m_X;
return os;
}
...
CNum a ( 21 ), b = a;
b . debug();
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
19.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum ( const CNum & src ) { m_X = src . m_X; cout << m_X; }
friend ostream & operator << ( ostream & os, const CNum x );
private:
int m_X;
};
ostream & operator << ( ostream & os, const CNum x ){
os << x . m_X;
return os;
}
...
CNum a ( 88 ), b = a;
cout << a;
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
20.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum ( const CNum & src ) { m_X = src . m_X; cout << m_X; }
friend ostream & operator << ( ostream & os, const CNum & x );
private:
int m_X;
};
ostream & operator << ( ostream & os, const CNum & x ){
os << x . m_X;
return os;
}
...
CNum a ( 70 ), b = a;
cout << a;
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
21.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum ( const CNum & src ) { cout << m_X; m_X = src . m_X; }
friend ostream & operator << ( ostream & os, const CNum & x );
private:
int m_X;
};
ostream & operator << ( ostream & os, const CNum & x ){
os << x . m_X;
return os;
}
...
CNum a ( 55 ), b = a;
cout << a;
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
22.:
class CNum{
public:
CNum ( int x ) { m_X = x; }
CNum ( const CNum & src ) { m_X = src . m_X; cout << m_X; }
void debug ( void ) const { cout << *this; }
friend ostream & operator << ( ostream & os, CNum & x );
private:
int m_X;
};
ostream & operator << ( ostream & os, CNum & x ){
os << x . m_X;
return os;
}
...
CNum a ( 69 ), b = a;
b . debug();
Zobrazí se
Program půjde zkompilovat, ale může spadnout/spadne
Program nepůjde zkompilovat
Program vyĝerpá dostupnou paměť
Program nespadne, ale neuvolňuje alokovanou paměť
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro ostatní programátory nepochopitelný
Program nespadne, ale výstup je nedefinovaný.
23.:
class CArray{
public:
CArray ( int len ){
m_D = new int[ m_L = len ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray & src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
int & operator [] ( int I ) { return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(11), b = a;
a[2] = 95;
cout << b[2];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
24.:
class CArray{
public:
CArray ( int len ){
m_D = new int[ m_L = len ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray & src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
int & operator [] ( int I ) { return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(23), b = a;
a[14] = 6;
cout << b[14];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
25.:
class CArray{
public:
CArray( int len ){
m_D = new int[ m_L = len ];
for( int I = 0; I < m_L; i++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray & src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
~CArray(void){ delete [] m_D; }
int & operator [] ( int I ){ return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(69), b = a;
a[19] = 1;
cout << b[19];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
26.:
class CArray{
public:
CArray ( int len ){
m_D = new int[ m_L = len ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray & src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
~CArray ( void ) { delete [] m_D; }
int & operator [] ( int I ) { return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(96), b(89);
b = a;
a[89] = 72;
cout << b[89];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
27.:
class CArray{
public:
CArray ( int len ){
m_D = new int[ m_L = len ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray & src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
~CArray ( void ) { delete [] m_D; }
int & operator [] ( int I ) { return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(89), b(87);
a[87] = 64;
b = a;
cout << b[87];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
28.:
class CArray{
public:
CArray ( int len ){
m_D = new int[ m_L = len ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = 0;
}
CArray & operator = ( const CArray src ){
delete [] m_D;
m_D = new int[ m_L = src . m_L ];
for ( int I = 0; I < m_L; I ++ ) m_D[i] = src . m_D[i];
return *this;
}
~CArray ( void ) { delete [] m_D; }
int & operator [] ( int I ) { return m_D[i]; }
private:
int * m_D;
int m_L;
};
int main ( void ){
CArray a(64), b(57);
b = a;
a[57] = 42;
cout << b[57];
return 0;
}
Program nepůjde zkompilovat
Program půjde zkompilovat, ale může spadnout/spadne
Program nejspíš nespadne, ale zobrazená hodnota je nedefinovaná
Program funguje správně, ale přetěžuje operátory neobvyklým způsobem, bude pro
Program nespadne, ale neuvolňuje alokovanou paměť
Program nespadne a zobrazí výsledek
{"name":"PA2: demo skillcheck vol2 + těžší teor. úlohy", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Test your knowledge of advanced C++ concepts with this engaging quiz designed for developers. Dive into questions related to data structures, memory management, and operator overloading, along with practical code scenarios.Prepare yourself for challenges like:Understanding class behavior and memory allocationIdentifying data structure suitability for different tasksAnalyzing code snippets for correctness and efficiency","img":"https:/images/course2.png"}