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

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

Упражнение 1:
Номер 1
Выберите наиболее правильный вариант объявления оператора присваивания в классе A:

Ответ:

 (1) A& operator=(const A& a); 

 (2) const A& operator=(const A& a); 

 (3) A& operator=(A a); 

 (4) A& operator=(const A a); 


Номер 3
: Выберите наиболее правильный вариант объявления оператора += двух объектов класса A:

Ответ:

 (1) A& operator+=(const A& a); 

 (2) A& operator+=(A& a) const; 

 (3) const A& operator+=(A& a) const; 


Упражнение 2:
Номер 1
Класс B наследован от класса A. Отметьте верное для класса B.

Ответ:

 (1) объект класса B может использоваться как объект базового класса 

 (2) класс B должен быть определен с ключевым словом derived 

 (3) класс B может непосредственно обращаться к внутренним атрибутам базового класса 


Номер 2
Для переопределенного оператора верно:

Ответ:

 (1) переопределенный оператор выполняется с тем же приоритетом, что и исходный оператор 

 (2) у переопределенного оператора не может быть аргументов по умолчанию 

 (3) переопределенный оператор может быть унарным оператором 

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


Номер 3
Функция объявлена как friend класса. Отметьте верное.

Ответ:

 (1) функция имеет доступ к внутренним атрибутам класса 

 (2) функция-оператор должна иметь в качестве первого аргумента объект данного класса 

 (3) ключевое слово friend не оказывает влияния на функции и операторы 


Упражнение 3:
Номер 2
Какой тип будет у следующего выражения ?
 void* + reinterpret_cast<int*>1000

Ответ:

 (1) void* 

 (2) int* 

 (3) int 

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

 (5) ошибка выполнения 


Номер 3
Если в классе A определены методы
A(int x);
operator int();
operator++(int);
то какие из них будут вызваны в следующем выражении ?
A b; static_cast <int> (b + 1);

Ответ:

 (1) operator int(), конструктор А(int x) 

 (2) operator++(int), operator int(), конструктор А(int x) 

 (3) только конструктор А(int x) 

 (4) только operator int() 

 (5) operator++(int), конструктор А(int x) 


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

Ответ:

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

 (2) необходимо определять 

 (3) необязательно учитывать 

 (4) необязательно определять 


Номер 2
Какие операции поддаются перегрузке?

Ответ:

 (1) только унарные 

 (2) только бинарные 

 (3) унарные и бинарные 


Номер 3
Переопределение операции сложения приведет к(отметьте все правильные варианты)

Ответ:

 (1) ее вызову при выполнении операции ++ с объектом класса 

 (2) ее вызову при выполнении операции сложения с объектом класса 

 (3) преобразованию целых чисел к объекту данного класса при выполнении сложения 

 (4) возможному преобразованию объектов других классов к данному при выполнении операции сложения 


Упражнение 5:
Номер 1
Если определена операция умножения для двух объектов класса A и операция преобразования к int, что будет вызвано при
  A a;
  int x;
  int y = a * x;

Ответ:

 (1) операция умножения, а затем преобразование к целому 

 (2) преобразование к целому 

 (3) только операция умножения 


Номер 2
Если определена операция вычитания для двух объектов класса A, а операция преобразования к int не определена, что будет вызвано при
A a1,a2,a3=5;
a3 = a1 – a2;

Ответ:

 (1) преобразование к целому 

 (2) операция вычитания, а затем преобразование к целому 

 (3) только операция вычитания 

 (4) произойдет ошибка 


Номер 3
Какое из следующих определений представляет собой правильную запись операции сложения целого числа и объекта:

Ответ:

 (1) friend A operator+(int a1, const A& a2); 

 (2) friend A operator+(int a1, int a2); 

 (3) friend void operator+(const A& a1, int a1, A res); 


Упражнение 6:
Номер 1
Какой тип преобразования типов используется в следующем выражении?
  
  int a = 0; float f = 3.4; a += f;
  

Ответ:

 (1) неявное преобразование типов 

 (2) явное преобразование типов 

 (3) пользовательское преобразование типов 


Номер 2
Какое приведение типов используется в следующем выражении?
  
  int a = 0; float f = 3.4; f += (int)a;
  

Ответ:

 (1) неявное приведение типов 

 (2) явное приведение типов 

 (3) стандартное приведение типов 


Номер 3
Какие операции используются для контроля за приведением типов?

Ответ:

 (1) reinterpret_cast 

 (2) static_cast 

 (3) const_cast 

 (4) basic_cast 


Упражнение 7:
Номер 1
Какой результат будет у следующего выражения?
  
  int m = 1, n=2;
  double A = (double)m/n;
  cout << A;
  

Ответ:

 (1) 0.5 

 (2) 0 

 (3) 1 

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


Номер 2
Какой результат будет у следующего выражения?
  
  int m = 1,n=2;
  int *p= &n;
  p=static_cast<int*> (m); 
  cout << *p;
  

Ответ:

 (1) 1 

 (2) адрес переменной m 

 (3) 2 

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


Номер 3
Какой результат будет у следующего выражения?
  
  int m = 10, n = 4;
  double A = static_cast <double> (m)/n;
  cout << A;
  

Ответ:

 (1) 2 

 (2) 2.5 

 (3) 1 

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


Упражнение 8:
Номер 1
Если в арифметическом выражении участвуют целый и вещественный операнды, то:

Ответ:

 (1) целый тип приводится к вещественному 

 (2) вещественный тип приводится к целому 

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


Номер 2
Если в арифметическом выражении участвуют короткое целое и длинное целое, то:

Ответ:

 (1) длинное приводится к короткому 

 (2) короткое приводится к длинному 

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


Номер 3
Какой результат будет у следующего выражения?
  
  const char* str1 = "hello";
  char* str2 = const_cast ( char* ) str1; 
  cout << str2;
  

Ответ:

 (1) hello 

 (2) h 

 (3) hellohello 

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




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