Difference between revisions of "Programming Test"

From MPSWiki
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 110: Line 110:
 
arr[0]->Draw();
 
arr[0]->Draw();
 
arr[1]->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>
 
}</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));
}