игра брюс 2048
Главная / Программирование / Язык программирования C++ / Тест 10

Язык программирования C++ - тест 10

Упражнение 1:
Номер 1
Какие виды наследования бывают (выберите наиболее полный ответ)?
 

Ответ:

 (1) внешнее,внутреннее,защищающее 

 (2) общее,внешнее,внутреннее,защищающее 

 (3) внешнее,внутреннее,защищенное 


Номер 2
Что будет в результате выполнения следующей программы?
 
class Base{
…
public: void f(); 
private: int *baseID;
};
class Derived : public Base{
…
public: void foo();
private: int derivedID;
};
Derived my1;
int x;
my1.baseID=&x;
 
 

Ответ:

 (1) присвоение будет выполнено 

 (2) результат непредсказуем 

 (3) ошибка компиляции 

 (4) сообщение об ошибке внутренних адресов 


Упражнение 2:
Номер 1
Если записано
 class A { public: void f() { cout << 1; } };
 class B : public A
 { public: void f() { cout << 2; } };
  то что будет напечатано в результате выполнения кода?
 B b; A& a=b; a.f();

Ответ:

 (1) 2 

 (2) 2 1 

 (3) 1 2 

 (4) 1 

 (5) ошибка  


Упражнение 3:
Номер 1
Если имеется абстрактный класс А и производный от этого класса класс А1
  то какая из записей заведомо неверна?

Ответ:

 (1) A a; 

 (2) A1 a1;A& a=a1; 

 (3) A* a= new A; 


Упражнение 4:
Номер 1
Какая из записей является правильной записью абстрактного класса?

Ответ:

 (1) abstract class A { virtual int f() = 0; }; 

 (2) class A { virtual int f() = 0; }; 

 (3) class A { virtual int f(); }; 


Номер 2
Абстрактный класс – это класс, в котором

Ответ:

 (1) есть виртуальный конструктор 

 (2) есть виртуальный деструктор 

 (3) есть хотя бы один чисто виртуальный метод 


Номер 3
Имеется запись: monster - базовый класс, demon - производный: 

// Описываются указатели:
monster *p;
demon *d;

При выполнении какого выражения всегда можно говорить,что потери информации не будет?

Ответ:

 (1) d=p 

 (2) d=(demon*)p 

 (3) p=d 

 (4) (monster*)d=p 


Упражнение 5:
Номер 1
Какой будет результат выполнения следующего кода?
 
class A {
public:
      int inc(int x) { return ++x; };
      int inc(short x) { return x + 2; };
};
A obj; int y = 5;
cout << obj.inc(y);
 
 

Ответ:

 (1) 6 

 (2) 5 

 (3) 4 

 (4) 3 


Номер 2
Произойдет ли ошибка при компиляции этого кода?
 
 class Channel
{ public:
 void SetNumber (int n) { number = n;};
 int GetNumber() const { return number;};
 int number;};
int main()
{ private : int n;} Channel ch;
{Channel ch;
 ch.number = 9;
 ch.SetNumber(10);
 Channel ch2(2);}
 
 

Ответ:

 (1) нет, не произойдет 

 (2) да, произойдет, запись неверна 

 (3) произойдет при обнулении n 

 (4) произойдет при n=10 


Номер 3
Что содержится в записи минимального по своим возможностям класса?

Ответ:

 (1) только конструктор 

 (2) только деструктор 

 (3) только конструктор и деструктор 

 (4) по крайней мере, один метод 

 (5) по крайней мере, один атрибут 

 (6) не менее одного атрибута и хотя бы один метод-конструктор класса 

 (7) не содержится ничего 


Упражнение 6:
Номер 1
Укажите какое из выражений будет правильным?

class A
  { public :  int a, b;
    protected : int func (float d) {};
    private : short i; } A1;
class B : public A
  { private : int k; } B1;
class C : public B
  { protected : int l, m; } C1;

Ответ:

 (1) B1.k = 3; 

 (2) C1.a = C1.b; 

 (3) C1.a = C1.i; 

 (4) C1->a = C1->b; 


Номер 2
Укажите какое из выражений будет правильным?
 
 class A
   { public :  int a, b;
     protected : int z;
    private : short i; } A1;
 class B : public A
   { public :  int c, d;
     private : int k;} B1;
 

Ответ:

 (1) A1.i = 10; 

 (2) B1.k = A1.i; 

 (3) B1.c = A1.a; 


Номер 3
Укажите какое из выражений будет правильным?

class A
{
    public :  int a, b;
    protected : int z; 
    private : short i; 
} A1;
class B : protected A
{
     public :  int c, d;
     private : int k; 
} B1;

Ответ:

 (1) A1.i = 10; 

 (2) B1.k = A1.i; 

 (3) B1.c = A1.z

 (4) A1.a = B1.d; 


Упражнение 7:
Номер 1
Сколько производных классов можно получить из базового класса?

Ответ:

 (1) неограниченное количество 

 (2) количество производных классов определяется количеством базовых классов 

 (3) определяется наличием абстрактного класса 


Номер 2
В чем заключается принцип полиморфизма?

Ответ:

 (1) в наличии виртуальных методов 

 (2) в наличии множественного наследования 

 (3) в использовании виртуального наследования 


Номер 3
Отметьте истинное утверждение для абстрактного класса.

Ответ:

 (1) класс, у которого есть хотя бы один чисто виртуальный метод, называется абстрактным 

 (2) абстрактный базовый класс навязывает определенный интерфейс всем производным из него классам 

 (3) невозможно создать объект абстрактного класса 

 (4) в абстрактном классе нельзя определять методы 


Упражнение 8:
Номер 1
Какой результат будет у следующего выражения?
 
 class A
   { public :  int a, b;
     protected : int z;
    private : short i; } A1;
 class B : private A
   { private : int k;} B1;
  int main()
   { B1.a = 10; 
     cout << B1.a;
   }
 

Ответ:

 (1) 10 

 (2) ошибка 

 (3) 0 


Номер 2
Какой результат будет у следующего выражения?
 
 class A
   { public :  int a, b;
     protected : int z;
    private : short i; } A1;
 class B : protected A
   { private : int k;} B1;
  int main()
   { B1.z = 20; 
     cout << B1.z;
   }
 

Ответ:

 (1) 20 

 (2) ошибка 

 (3) 0 


Номер 3
Что выведет программа в стандартный поток вывода?

class A
{ 
 public :  int a, b;
 protected : int z;
 private : short id; 
} A1;

class B : protected A
{ public : short t;
 void ff(short a)
 { id = ++a; }
} B1;

int main()
{ 
 B1.ff(20);
 cout << B1.id;
}

Ответ:

 (1) 20 

 (2) 21 

 (3) 0 

 (4) ошибка 




Главная / Программирование / Язык программирования C++ / Тест 10