Programming Test

From MPSWiki
Jump to: navigation, search

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

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));
}