Difference between revisions of "Programming Test"

From MPSWiki
Jump to: navigation, search
(Created page with "==Что будет выведено в результате исполнения следующего кода== class A { public: A() {cout << "A";}...")
 
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
==Что будет выведено в результате исполнения следующего кода==
 
==Что будет выведено в результате исполнения следующего кода==
class A
+
<code><pre>class A
 
 
 
{
 
{
 
 
public:
 
public:
 
             A() {cout << "A";}
 
             A() {cout << "A";}
 
 
             ~A() {cout << "~A";}
 
             ~A() {cout << "~A";}
 
 
 
 
             virtual void f() {cout << "fA";}
 
             virtual void f() {cout << "fA";}
 
 
};
 
};
 
 
  
 
class B : public A
 
class B : public A
 
 
{
 
{
 
 
public:
 
public:
 
 
             B() {cout << "B";}
 
             B() {cout << "B";}
 
 
             ~B() {cout << "~B";}
 
             ~B() {cout << "~B";}
 
 
 
 
             virtual void f() {cout << "fB";}
 
             virtual void f() {cout << "fB";}
 
 
};
 
};
 
 
  
 
class C : public A
 
class C : public A
 
 
{
 
{
 
 
public:
 
public:
 
 
             C() {cout << "C";}
 
             C() {cout << "C";}
 
 
             ~C() {cout << "~C";}
 
             ~C() {cout << "~C";}
 
 
 
 
             virtual void f() const {cout << "fC";}
 
             virtual void f() const {cout << "fC";}
 
 
};
 
};
 
 
  
 
int main(int argc, char* argv[])
 
int main(int argc, char* argv[])
 
 
{
 
{
 
 
             A* pA1 = new A(), *pA2 = new B(), *pA3 = new C();
 
             A* pA1 = new A(), *pA2 = new B(), *pA3 = new C();
 
 
             pA1->f();
 
             pA1->f();
 +
            pA2->f();
 +
            pA3->f();
  
             pA2->f();
+
             delete pA1;
 +
            delete pA2;
 +
            delete pA3;
 +
            return 0;
  
            pA3->f();
+
}</pre></code>
  
+
#fAfBfA~C~B~A
 +
#AABACfAfBfA~A~A~A
 +
#ABACAfAfBfA~C~B~A
 +
#AABACfAfAfA~C~B~A
 +
#ABAACfAfAfA~C~B~A
 +
#AABACfAfBfA~C~B~A
 +
#AABACfAfBfA~A~B~C
 +
#ни один не подходит
 +
#ошибка компилятора
 +
==Как упростить запись следующего запроса==
  
            delete pA1;
+
<code><pre>Select x,y,z
 +
from tabA
 +
WHERE (x>0.12 or x < 0.14)</pre></code>
  
             delete pA2;
+
#SELECT x,y,z FROM TabA WHERE x BETWEEN 0.12 AND 0.14
 +
#SELECT x,y,z FROM TabA WHERE x BETWEEN 0.12 OR 0.14
 +
#SELECT x,y,z FROM TabA WHERE x IN(0.12 OR 0.14)
 +
#SELECT x,y,z FROM TabA
 +
==Какое условие отбора эквивалентно условию: '''BETWEEN''' 10 AND 12==
 +
#>=10 OR <=12
 +
#>10 AND <12
 +
#>10 OR <12
 +
#>=10 AND <=12
 +
#<10 OR >12
 +
==Для создания какого типа запроса используется инструкция языка SQL '''UPDATE'''==
 +
#Запрос на выборку
 +
#Запрос на добавление записей
 +
#Запрос на обновление
 +
#Запрос на объединение
 +
#Перекрестный запрос
 +
#Управляющий запрос
 +
==Укажите результат==
 +
<code><pre>struct test
 +
{int x, y, z;};
 +
test my[3] = {{9,8,7}, {6,5,4}, {3,2,1}};
 +
test *p_my = my;
 +
int x = *(&(++p_my)->x+2);</pre></code>
 +
==Укажите конечный результат с1 и с2==
 +
<code><pre>int c1= 1;
 +
c1 += ++c1;
 +
int c2= 1;
 +
c2 += c1++;</pre></code>
 +
==Укажите ошибки==
 +
<code><pre>class CSharp
 +
{
 +
public:
 +
             CSharp(){};
 +
            virtual ~CSharp(){};
 +
protected:
 +
            virtual Draw()=0;
 +
};
  
             delete pA3;
+
class CSomeShape: CSharp
 +
{
 +
public:
 +
             CSomeShape(){};
 +
            virtual ~CSomeShape(){};
 +
protected:
 +
            virtual Draw()
 +
            {
 +
                        TRACE("Hello");
 +
            }
 +
};
  
            return 0;
+
void main()
 +
{
 +
CSharp* arr[2];
 +
arr[0] = new CSharp();
 +
arr[1] = new CSomeShape();
 +
arr[0]->Draw();
 +
arr[1]->Draw();
 +
}</pre></code>
 +
==Что будет выведено==
 +
<code>
 +
TRACE("\"Preveed!\"\n");</code>
 +
==чему в результате будет равно k1 и k2==
 +
<code><pre>int *p1= new int[10];
 +
int p2[10];
 +
int k1 = sizeof(p1);
 +
int k2 = sizeof(p2);</pre></code>
 +
==Чему будут равны элементы массива==
 +
<code><pre>template <class T>
 +
class A
 +
{
 +
public:
 +
  A(T val) : m_val(val) {}
 +
  operator () (T& val) {val+= ++m_val;}
 +
private:
 +
  T m_val;
 +
};
  
 +
typedef CArray<int, int> CIntArray;
 +
template<class T>
 +
void ProcForEach(CIntArray& arr, T func)
 +
{
 +
  for (int i = 0, nSize = arr.GetSize(); i < nSize; i++)
 +
      func(arr.ElementAt(i));
 
}
 
}
 +
int main(int argc, char* argv[])
 +
{
 +
  CIntArray arr;
 +
  arr.Add(2);
 +
  arr.Add(1);
 +
  ProcForEach(arr, A<int>(5));
 +
}</pre></code>

Latest revision as of 07:30, 11 March 2019

Что будет выведено в результате исполнения следующего кода

class A
{
public:
            A() {cout << "A";}
            ~A() {cout << "~A";}
            virtual void f() {cout << "fA";}
};

class B : public A
{
public:
            B() {cout << "B";}
            ~B() {cout << "~B";}
            virtual void f() {cout << "fB";}
};

class C : public A
{
public:
            C() {cout << "C";}
            ~C() {cout << "~C";}
            virtual void f() const {cout << "fC";}
};

int main(int argc, char* argv[])
{
            A* pA1 = new A(), *pA2 = new B(), *pA3 = new C();
            pA1->f();
            pA2->f();
            pA3->f();

            delete pA1;
            delete pA2;
            delete pA3;
            return 0;

}
  1. fAfBfA~C~B~A
  2. AABACfAfBfA~A~A~A
  3. ABACAfAfBfA~C~B~A
  4. AABACfAfAfA~C~B~A
  5. ABAACfAfAfA~C~B~A
  6. AABACfAfBfA~C~B~A
  7. AABACfAfBfA~A~B~C
  8. ни один не подходит
  9. ошибка компилятора

Как упростить запись следующего запроса

Select x,y,z
from tabA
WHERE (x>0.12 or x < 0.14)
  1. SELECT x,y,z FROM TabA WHERE x BETWEEN 0.12 AND 0.14
  2. SELECT x,y,z FROM TabA WHERE x BETWEEN 0.12 OR 0.14
  3. SELECT x,y,z FROM TabA WHERE x IN(0.12 OR 0.14)
  4. SELECT x,y,z FROM TabA

Какое условие отбора эквивалентно условию: BETWEEN 10 AND 12

  1. >=10 OR <=12
  2. >10 AND <12
  3. >10 OR <12
  4. >=10 AND <=12
  5. <10 OR >12

Для создания какого типа запроса используется инструкция языка SQL UPDATE

  1. Запрос на выборку
  2. Запрос на добавление записей
  3. Запрос на обновление
  4. Запрос на объединение
  5. Перекрестный запрос
  6. Управляющий запрос

Укажите результат

struct test
{int x, y, z;};
test my[3] = {{9,8,7}, {6,5,4}, {3,2,1}};
test *p_my = my;
int x = *(&(++p_my)->x+2);

Укажите конечный результат с1 и с2

int c1= 1;
c1 += ++c1;
int c2= 1;
c2 += c1++;

Укажите ошибки

class CSharp
{
public:
            CSharp(){};
            virtual ~CSharp(){};
protected:
            virtual Draw()=0;
};

class CSomeShape: CSharp
{
public:
            CSomeShape(){};
            virtual ~CSomeShape(){};
protected:
            virtual Draw()
            {
                        TRACE("Hello");
            }
};

void main()
{
CSharp* arr[2];
arr[0] = new CSharp();
arr[1] = new CSomeShape();
arr[0]->Draw();
arr[1]->Draw();
}

Что будет выведено

TRACE("\"Preveed!\"\n");

чему в результате будет равно k1 и k2

int *p1= new int[10];
int p2[10];
int k1 = sizeof(p1);
int k2 = sizeof(p2);

Чему будут равны элементы массива

template <class T>
class A
{
public:
   A(T val) : m_val(val) {}
   operator () (T& val) {val+= ++m_val;}
private:
   T m_val;
};

typedef CArray<int, int> CIntArray;
template<class T>
void ProcForEach(CIntArray& arr, T func)
{
   for (int i = 0, nSize = arr.GetSize(); i < nSize; i++)
      func(arr.ElementAt(i));
}
int main(int argc, char* argv[])
{
   CIntArray arr;
   arr.Add(2);
   arr.Add(1);
   ProcForEach(arr, A<int>(5));
}