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

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

Упражнение 1:
Номер 1

Если существует несколько обработчиков особой ситуации, какой будет вызван?


Ответ:

 (1) сработают все обработчики по очереди 

 (2) не будет вызван ни один 

 (3) сработает первый обработчик, перехвативший особую ситуацию 


Номер 2

Верна ли следующая программа?

class A { int _i; public: A(int i) { _i = i; } ~A() { printf("%d ",_i); } }; int main() { A a(-1); { A a(0); A a1(1); throw "Error executed."; A a2(2); } A a1(4); return 0; }

Ответ:

 (1) нет, отсутствует связь переменных 

 (2) нет, так как невозможно определить порядок обращения к данным 

 (3) данная программа верна 

 (4) данная программа зацикленная и приведет к ошибке времени исполнения 


Номер 3

Что обозначает запись typedef void (*terminate_handler)();?


Ответ:

 (1) описание типа функции обработки ошибок, использующегося при аварийном завершении программы 

 (2) завершение блока программы 

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

 (4) организация стека с параметрами typedef 


Упражнение 2:
Номер 1

Как будет работать такой блок:

try { ... } catch (...) { }

Ответ:

 (1) ошибочная запись 

 (2) будет перехватывать все особые ситуации 

 (3) будет перехватывать только первую особую ситуацию 


Номер 2

Что собой представляет исключительная ситуация?


Ответ:

 (1) неудачно завершенная функция 

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

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


Номер 3

В чем смысл механизма исключительных ситуаций?


Ответ:

 (1) отделяет код обработки ошибок от обычного кода 

 (2) лишает необходимости обрабатывать все возможные варианты 

 (3) делает программу более предсказуемой 


Упражнение 3:
Номер 1

Что произойдет, если при возникновении особой ситуации блок try не будет обнаружен в данной функции?


Ответ:

 (1) программа сразу завершит работу 

 (2) поиск try будет продолжен в вызывающей функции и т.д. по стеку 

 (3) программа продолжит работу, не обработав ситуации 


Номер 2

Есть ли ошибка в следующем коде?

try { } catch (a) { } catch (b) { } catch (...) { } catch (c) { } catch (d){ }

Ответ:

 (1) ошибки нет 

 (2) операторов catch не может быть несколько 

 (3) оператор catch(...) ошибочен 

 (4) оператор catch(...) должен стоять последним 


Номер 3

Cколько параметров может принимать catch


Ответ:

 (1) ни одного 

 (2) один 

 (3) несколько 


Упражнение 4:
Номер 1

Каким способом функция может вернуть ошибку?


Ответ:

 (1) в виде возвращаемого значения 

 (2) с помощью флага 

 (3) с помощью исключительных ситуаций 


Номер 2

Какая функция вызывается при аварийном завершении программы?


Ответ:

 (1) exit(); 

 (2) terminate(); 

 (3) close(); 


Номер 3

Что произойдет, если особая ситуация возникнет в конструкторе объекта?


Ответ:

 (1) объект создастся с ошибкой памяти 

 (2) объект создан не будет 

 (3) будет вызван деструктор, уничтожающий объект 


Упражнение 5:
Номер 1

Перечислите средства С++, позволяющие избежать ошибок:


Ответ:

 (1) контроль типов 

 (2) возможность перегрузки функций 

 (3) объявление имен до их использования 

 (4) обнуление неиспользуемых указателей 


Номер 2

Где может встречаться блок try-catch?


Ответ:

 (1) только в функции main 

 (2) только вне функции main 

 (3) в любом месте 


Номер 3

Укажите поток вывода сообщений об ошибках:


Ответ:

 (1) cout 

 (2) cerr 

 (3) throw 


Упражнение 6:
Номер 1

Выполнится ли код, содержащийся в блоке try { }, если никакой ошибки не произошло?


Ответ:

 (1) выполнится 

 (2) не выполнится 

 (3) зависит от содержания кода 


Номер 2

Если происходит ошибка при выполнении функции new, то


Ответ:

 (1) происходит исключительная ситуация memoryexception 

 (2) функция возвращает ноль 

 (3) программа аварийно завершается 


Номер 3

Исключительная ситуация в деструкторе


Ответ:

 (1) приводит к аварийной остановке программы 

 (2) не может быть обработана в блоке try catch 

 (3) вызывает остановку, если происходит при откате стека 


Упражнение 7:
Номер 1

Какой результат будет у следующего выражения?

#include <iostream.h> short x = 4, i = 0; int fun1() { if (i == 0) throw 2; } int fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i;

Ответ:

 (1) Exception 

 (2) Exception 4 0 

 (3) Exception 3 0 

 (4) 4 0 


Номер 2

Какой результат будет у следующего выражения?

#include <iostream.h> short x = 10, i = 5; fun1() { if (i == 5) throw 2; } fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }

Ответ:

 (1) Exception 

 (2) Exception 9 5 

 (3) Exception 10 5 

 (4) 9 5 


Номер 3

Какой результат будет у следующего выражения?

#include <iostream.h> short x = 11, i = 6; void fun1() { if (i == (x-4)) throw 2; } void fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }

Ответ:

 (1) Exception 

 (2) Exception 9 6 

 (3) Exception 10 6 

 (4) 10 6 


Упражнение 8:
Номер 1

Что производит эта программа?

#include <fstream> #include <vector> #include <stack> using namespace std: int main(){ ifstream in ("inpnum"); stack <int. vector<int> > s; int x; while ( in >> x. !in.eof()) s.push(x); while (!s.empty()){ X = s.top(); cout << x << " "; s.pop(); return 0; } }

Ответ:

 (1) вывод чисел из файла 

 (2) создание массива указателей 

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

 (4) расширение области видимости 


Номер 2

Для чего предназначена следующая программа и верна ли она:

#include <iostream> #include <fstream> #include <vector> #include <stack> using namespace std; int main() { ifstream in ("inpnum"); stack <int, vector<int> > s; int x; while (in >> x, !in.eof()) s.push(x); while (! s.empty()) { x = s.top(); cout << x << " "; s.pop(); } }

Ответ:

 (1) для вывода чисел из файла 

 (2) для увеличения объема памяти, занимаемого массивом указателей 

 (3) для буферизации переменных 

 (4) программа ошибочна 


Номер 3

Какая строка данного кода производит возврат элемента по указателю?

#define SIZE 100 int Stack[SIZE]; int SP; void lnit(){ SP = - 1 ; } void Push(int val) { Stack[ ++SP]=val; } int Рор() { if (SP < О ) return(O); return ( Stack[SP--]); }

Ответ:

 (1) вторая 

 (2) четвертая 

 (3) пятая 

 (4) девятая 


Упражнение 9:
Номер 1

В конструкторе класса

class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?

Ответ:

 (1) это неизвестно 

 (2) нужно определить длину строки ptr и тогда делать выводы 

 (3) будет, если создавалась автоматическая переменная класса A 

 (4) нет, не будет 


Номер 2

Класс A имеет следующее определение:

class A { int _i; public: A(int i){ _i = i; } ~A(){ printf("%d ",_i);} }; Что будет выведено в результате выполнения следующего кода: { A a(-1); { A a(0); A a1(1); throw "Error executed."; A a2(2); } A a1(4); }

Ответ:

 (1) ошибка периода компиляции в строке "A a(0);" 

 (2) 4 2 1 0 -1 

 (3) 1 0 -1 

 (4) 1 0 4 -1 


Номер 3

Могут ли блоки try-catch быть вложенными?


Ответ:

 (1) могут  

 (2) не могут 

 (3) зависит от компилятора 


Упражнение 10:
Номер 1

Имеются следующие обработчики ошибок:

try {} catch (a) {код 1} catch (b) {код 2} catch (с) {код 3} catch (d) {код 4} catch (d) {код 5} Если возникла особая ситуация типа d, какой обработчик будет вызван?

Ответ:

 (1) catch (d){код 4} 

 (2) catch (d){код 5} 

 (3) catch (d){код 4} и catch (d){код 5} 

 (4) все 


Номер 2

Имеются следующие обработчики ошибок:

try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типа d, какой обработчик будет вызван?

Ответ:

 (1) catch (d){код 4} 

 (2) catch (d){код 5} 

 (3) catch (d){код 4} и catch (...){код 5} 

 (4) все 


Номер 3

Имеются следующие обработчики ошибок:

try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типа b, какой обработчик будет вызван?

Ответ:

 (1) catch (b){код 2} 

 (2) catch (...){код 5} 

 (3) catch (b){код 2} и catch (...){код 5} 

 (4) ни один 


Упражнение 11:
Номер 1

Какая функция будет первой вызвана, если особая ситуация запущена и не перехвачена?


Ответ:

 (1) unexpected() 

 (2) terminate()  

 (3) abort()  


Номер 2

Какая функция будет первой вызвана, если функция запустила особую ситуацию, не указанную в ее описании


Ответ:

 (1) unexpected() 

 (2) terminate()  

 (3) abort()  


Номер 3

Какая функция вызывается для нормального завершения программы?


Ответ:

 (1) terminate() 

 (2) abort() 

 (3) exit() 


Упражнение 12:
Номер 1

Какой оператор отслеживает исключительную ситуацию?


Ответ:

 (1) catch 

 (2) try 

 (3) throw 


Номер 2

Какой оператор генерирует исключительную ситуацию?


Ответ:

 (1) catch 

 (2) try 

 (3) throw 


Номер 3

Какой оператор обрабатывает исключительную ситуацию?


Ответ:

 (1) catch 

 (2) try 

 (3) throw 




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