Главная /
Язык программирования C++ для профессионалов
Язык программирования C++ для профессионалов - ответы на тесты Интуит
Курс дает описание языка C++, его ключевых понятий и основных приемов программирования на нем. Это завершенное руководство, написанное создателем языка, которое содержит описание всех средств С++, в том числе управление исключительными ситуациями, шаблоны типа (параметризованные типы данных) и множественное наследование.
Список вопросов:
- # Каким языком является С++?
- # Обязательно ли задавать в программе тип переменной?
- # Что называется перегрузкой функций?
- # Укажите отличия С++ от С
- # Могут ли быть в классе несколько конструкторов и деструкторов?
- # Какая директива включает стандартные возможности ввода и вывода?
- # Какой тип не определен в стандарте языка С++?
- # Отметьте основные свойства объектно-ориентированного языка:
- # Какое из свойств объектно-ориентированного языка не содержит С++
- # Отметьте истинное высказывание:
- # Базовый класс определен как class Base {…};. Какое из следующих объявлений правильно?
- # Отличия функций-членов от обычных функций:
- # Основные типы данных, наиболее приближенные к «аппаратной реализации»:
- # Объявлен класс: class A { public: int a,b,c;}; A *obj;. Как обратиться к переменной с?
- # Объявлен класс: class A { public: int a,b,c;}; A obj;. Как обратиться к переменной с?
- # Объявлен класс A и объект d: class A { int a, b, c; public: A() {a = 1; b = 2; c = 3; }; int get_a() { return a; } int get_c() { return c; } int get_b() { return b; } }; A* d = new A(); Как обратиться к переменной с?
- # Определены классы: class Base1 { public: void func(); }; class Base2 { public: void func(); }; class Derived: public Base1, public Base2 { … }; void main() { Derived a; … }; Какие из следующих операторов функции main() правильны?
- # Верно ли объявлены следующие классы: class MyClass1 { int n; MyClass1(int); ~MyClass1(); }; class MyClass2 { float s; MyClass2(int); ~MyClass2(); };
- # В каком случае определение класса приведет к ошибке компиляции: А) class MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); }; В) struct MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); };
- # Член класса, объявленный с атрибутом доступа public:
- # Член класса, объявленный с атрибутом доступа protected:
- # Член класса, объявленный с атрибутом доступа private:
- # Перегружаемые унарные операции языка С++:
- # Операции отношения языка С++:
- # Арифметические операции языка С++:
- # Наследование - это:
- # Какая функция должна присутствовать в каждой программе С++?
- # Инкапсуляция - это:
- # Абстракция данных - это:
- # Парадигма процедурного программирования заключается в следующем:
- # Парадигма модульного программирования заключается в следующем:
- # Парадигма программирования, поддерживающего абстракцию данных, заключается в следующем:
- # Для чего используется шаблон?
- # Что дает использование обработки особых ситуации?
- # В каком файле определяются операторы ввода и вывода?
- # Правильно ли написан нижеприведенный программный код? #include "iostream.h" #include "conio.h" int main() { int x=17,y=46; cout<<x<<"+"<<y<<"="<<x+y; getch(); return 0; }
- # Какие стандартные потоки имеются в С++?
- # Что делает манипулятор flush?
- # Что выведет следующий код? сout.width(2); cout << '(' << "abcdef" << ')';
- # Какой класс содержит средства управления вводом и выводом?:
- # Какая функция задает точность при выводе вещественного числа?
- # Что будет выведено в результате исполнения следующего кода? cout.precision(3); cout << 12.509;
- # Какие манипуляторы указывают, в какой системе счисления должны выводиться числа?
- # Какая функция устанавливает текущую позицию для чтения из файла?
- # Если имеется код double x; cin >> x; и вводится "12-3", то что будет в переменной x?
- # Если имеется код int x; cin >> x; и вводится "1.2", то что будет в переменной x?
- # В чем заключается недостаток использования функции printf(...)
- # Объектом какого класса является оператор cout?
- # Какие файлы определяют интерфейс потоковой библиотеки?
- # Что будет выведено на экран в результате работы следующего фрагмента программы: double x = 123.456789; printf("%e\n",x);
- # Что будет выведено на экран в результате работы следующего фрагмента программы: double x = 123.456789; printf("%g\n",x);
- # Что будет выведено на экран в результате работы следующего фрагмента программы: double x = 123.456789; printf("%f\n",x);
- # Сколько операндов имеет оператор ввода-вывода <<?
- # Что возвращает функция-оператор <<?
- # Какой из следующих прототипов следует использовать для доопределения оператора << для вывода пользовательских типов?
- # Что выведет на экран фрагмент программы char z[10]; while(cin >> z) cout << z << '\n'; после ввода текста, состоящего из нескольких слов, разделенных пробелами?
- # Что выведет на экран фрагмент программы int a = 12; cout << '(' << setw(0) << a << ')';?
- # Что выведет на экран фрагмент программы double a = 17.135; cout << '(' << setw(8) << setfill('#') << a <<')'; ?
- # Если имеется код char a[8]; cin >> a; и вводится текст "Hello world", то что будет в массиве a?
- # Что будет выведено в результате double x = 12.4; cout << setw(5) << x << setw(3) << setfill('*')<< "" << endl;
- # Какой файл необходимо включить, если предполагается использование манипуляторов с параметрами?
- # В каком классе находится функция seekg(streampos) ?
- # Какой заголовочный файл нужно подключить, чтобы использовать объекты классов ofstream, ifstream, fstream?
- # Где содержатся операции ввода из файла и вывода в файл?
- # Отметьте истинные высказывания в отношении потоков, представленные классом strstream:
- # В файлы f1.txt и f2.txt записана строка символов 1234. Что будет выведено на экран в результате работы следующего фрагмента программы: char s1[] = "f1.txt"; char s2[] = "f2.txt"; ifstream from(s1); fstream to(s2, ios::in | ios::out); char ch; from.seekg(2); from.get(ch); to.seekp(1); to.put(ch); to.seekp(0); while(to.get(ch)) cout << ch; cout << endl;
- # В файлы f1.txt и f2.txt записана строка символов 1234. Что будет выведено на экран в результате работы следующего фрагмента программы: char s1[] = "f1.txt"; char s2[] = "f2.txt"; ifstream from(s1); fstream to(s2, ios::in | ios::out); char ch; from.seekg(1); from.get(ch); to.seekp(3); to.put(ch); to.seekp(0); while(to.get(ch)) cout << ch; cout << endl;
- # Какой результат будет у следующего выражения? #include <iostream.h> #include <fstream.h> int main( { int i = 1, j = 25; double a = 25e6; char s[40]; strcpy(s, "Test"); ofstream outfile("c:\\test.txt"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
- # Какой результат будет у следующего выражения? #include <iostream.h> #include <fstream.h> int main ( ) { int i = 5, j = 10; double a = 25; char s[40]; strcpy(s, "Test"); ofstream outfile("c:\\tst.txt"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
- # Какой результат будет у следующего выражения? #include <iostream.h> #include <fstream.h> int main( ) { int i = 1, j = 11; double a = 2; char s[40]; strcpy(s, "file"); ofstream outfile("c:\\tst.txt"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
- # Что подразумевается под проектированием программного продукта?
- # Расставьте шаги проектирования классов в наиболее правильном порядке: Определить классыОпределить интерфейсыОпределить операции для классов Определить связи между классами Определить зависимость от других классов
- # Какие существуют виды иерархии классов?
- # Какими качествами должен обладать программный продукт?
- # Что понимается под компонентом?
- # Если два класса имеют нечто общее, как лучше поступить?
- # Как называются операторы, изменяющие состояние объекта?
- # Как называются операторы, порождающие объект другого типа?
- # Как называются операторы,позволяющие организовать доступ ко всем частям объекта в строго определенной последовательности?
- # Укажите шаги для улучшения читаемости программы?
- # Какой наиболее правильный порядок создания проекта: Создать общее описание проекта.Составить уточненное описание проекта.Создать новые стандартные компоненты.Выделить стандартные компоненты.
- # Что верно по отношению к тестированию?
- # Какие из перечисленных ниже операций класса можно отнести к типу базовых?
- # Какие из перечисленных ниже операций класса можно отнести к типу преобразований?
- # В чем заключается самая типичная перестройка иерархии классов?
- # Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?
- # Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?
- # Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?
- # В чем заключается недостаток модели «каскад»?
- # Какие качества являются необходимыми для успешного развития системы?
- # Какие действия предполагают определения интерфейсов классов?
- # Почему использование моделей является не только допустимым, но и желательным?
- # При проектировании компонент полезно:
- # Какие из перечисленных ниже приемов могут служить способами экспериментирования?
- # Что понимается под сопровождением программного обеспечения?
- # Что понимается под эволюцией программного обеспечения?
- # Какие бывают иерархии?
- # Чем объект отличается от класса?
- # Какие выделяются абстракции?
- # Как называется выделение существенных характеристик объекта, отличающих его от других видов объектов?
- # Как называется процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение?
- # Какими свойствами обладают объекты?
- # Какая функция должна быть в классе обязательно?
- # Что должно стать результатом проектирования создаваемой системы?
- # Что должно стать результатом анализа создаваемой системы?
- # Что должно стать результатом концептуализации создаваемой системы?
- # Какой вид иерархии реализует наследование?
- # Какой вид иерархии реализует использование?
- # Какой вид иерархии реализует принадлежность?
- # Какие существуют виды наследования?
- # Какое свойство объекта называется инвариантом?
- # Какое отношение между классами реализовано в данном случае? class A { public: A(B &b) { this->b = &b; }; B* f() { return b;} B* b; }; class B { public: B() { b = 0; }; int b; void f1() { } }
- # Если объект класса А может содержать несколько объектов класса В, какое должно быть между ними отношение?
- # Может ли класс, которому принадлежит другой класс, переопределить виртуальные функции этого класса?
- # Какое отношение между классами реализовано в данном случае? class A { public: A() { a = 0; }; virtual int f() { return a; } int a; }; class B: public A { public: B() { a = 1; }; virtual int f() { return a; } };
- # Какими способами класс Х может использовать класс Y?
- # Каким образом можно избежать неоднозначности при делегировании?
- # Что называется инкапсуляцией?
- # Что называется иерархичностью?
- # Что следует использовать для представления понятий?
- # Отметьте все верные высказывания об интерфейсе:
- # Основные типы классов:
- # Перечислите верные высказывания:
- # Почему метод объектно-ориентированного программирования предпочтительнее метода функциональной декомпозиции?
- # В чем состоит преимущество строго типизированных интерфейсов?
- # Какое преимущество дает статическая типизация?
- # Интерфейс определен следующим образом: class X { Y a; Z b; void set(Y&); public: void f(const char*); void g(int[10], int); } Какая проблема может возникнуть при его использовании?
- # Интерфейс определен следующим образом: class X { Y* a; Z & b; public: void f(const char*); void h(int, ...); void g(int[10], int); } Какая проблема из перечисленных ниже может возникнуть при его использовании?
- # Интерфейс определен следующим образом: class X { Y* a; Z & b; public: void f(const char*); X& get(int); void g(int[], int); } Какая проблема может возникнуть при его использовании?
- # Как называется язык, если в нем реализованы классы, но не реализовано наследование?
- # Какой из способов описания функций и переменных, совместно используемых несколькими классами, наиболее безопасен?
- # Может ли конструктор быть статическим?
- # Есть ли в С++ специальные средства для описания интерфейсов?
- # Перечислите верные ответы:
- # Когда предпочтительно использовать представления объекта класса Х описанием Х* вместо Х&?
- # Если метод в базовом классе не объявлен как виртуальный, а в производном он переопределен, когда определяется, какой из методов вызывается?
- # Каким может быть наследование?
- # Можно ли определить реализацию чисто виртуального метода, определённого в классе-родителе?
- # Какой тип наследования употребляется чаще всего?
- # Что такое конкретный тип?
- # Перечислите свойства абстрактного типа?
- # Приведите примеры конкретного типа:
- # Что произойдет, если чисто виртуальный метод не определить в производном классе?
- # Что представляет собой обширный интерфейс?
- # Что может представлять собой интерфейс?
- # Что произойдет если вызвать delete для несуществующего указателя?
- # Перечислите принципы управления памятью
- # Что делает оператор new?
- # Когда освобождается память, выделенная для объекта?
- # Реализован ли в стандарте С++ "сборщик мусора"?
- # Можно ли перегружать операции new и delete?
- # Узловой класс:
- # К какому виду относится класс, объявленный так: class dim { public: virtual void add(X*) = 0; virtual void sub(X*) = 0; virtual int sum() = 0; virtual ~dim(){}; }
- # Какая функция обеспечивает возможность использования имени в качестве уникального ключа объекта?
- # Какое определение наиболее точно соответствует понятию "каркас области приложения"?
- # Какую функцию можно использовать для определения, является ли заданный класс базовым для другого класса?
- # Интерфейсный базовый класс - это:
- # В каких случаях использование интерфейсных классов обеспечивает более эффективный интерфейс?
- # Каково назначение управляющих классов?
- # Что подразумевает термин "сборщик мусора"?
- # Для чего предназначен сервер заявок?
- # Может ли быть освобождена память, выделенная объектам класса Х с помощью класса Рool?
- # Какие ограничения накладывает использование абстрактных классов?
- # Определены классы: class window { virtual void move(); }; class figure { virtual void move(); }; class cwindow : public window { virtual int wmove(int) = 0; void move() { wmove(); } }; class cfigure { virtual int fmove(int) = 0; void move() { fmove(); } }; class wind_fig : public cwindow, public cfigure { void wmove(); void fmove(); }; К какому виду относится класс wind_fig?
- # К какому виду относится класс, объявленный так: class vector_handler { vector* p; public: vector* operator->() { return p; } vector_handler(vector* pp) : p(pp) { } };
- # Что такое библиотека?
- # Какая из функций является чисто виртуальной?
- # Может ли виртуальная функция быть встроенной?
- # Может ли деструктор быть виртуальным?
- # Может ли статическая функция-член быть виртуальной?
- # В каком случае подкласс абстрактного класса сам не является абстрактным?
- # Выберите верные утверждения для операторов new и delete, перегруженных в базовом классе:
- # Можно ли определить оператор new, принимающим несколько параметров?
- # Укажите неправильное описание переменной
- # Укажите правильно заданные идентификаторы
- # Задан массив: int m[3][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} }; Какое значение содержится в элементе m[2][3]?
- # Как правильно задать неизменяемый указатель?
- # Чему будет равна переменная x? void f() { int x = 1; int &y = x; int &z = y; z = -1; }
- # В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений приведет к ошибке компиляции? 1.void func(int m, double g = 3.14) 2.double func(int m, double h, int d = 0)
- # Укажите неправильное объявление перечислимого типа?
- # Что возвращает функция, прототип которой объявлен следующим образом: struct A {char *x; int y;}; A fun(void);
- # Как обратиться к элементу x переменной v, объявленной следующим образом: struct A {char *x; int y;} v;
- # Как обратиться к элементу x переменной v, объявленной следующим образом: struct A {char *x; int y;} *v;
- # Что будет напечатано в результате выполнения фрагмента программы: char s1[]="a \0x23 b"; cout<<s1;
- # В каких из следующих операторов есть синтаксические ошибки?
- # Отметьте верные высказывания для записи enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};?
- # Чему будет равняться значение переменной "ii" после выполнения приведенного ниже кода? int ii = 0; int& rr = ii; rr++;
- # Можно ли определить длину строки с помощью функции? int len(char *s) { int n=0; while (*s++)n++; return n;}
- # Что будет напечатано в результате выполнения фрагмента программы? char s[] = "abcd yuio"; char *str = s; cout << str;
- # Что будет напечатано в результате выполнения фрагмента программы? char s[]="abcd1234"; char *str = s + 4; cout << str;
- # В каких случаях из перечисленных ниже описание является определением?
- # Какие из нижеприведенных описаний являются определениями?
- # Какие из нижеприведенных описаний являются определениями?
- # Что в данном коде обозначает третья строка? int kоl; int& pal = kol; const char& CR ='\n';
- # Верен ли нижеприведенный код? Каков результат его работы? #include <iostream> #include "conio.h" int main() { enum {t, x, y, z ,w}; cout<<t+x+y+z+w; getch(); return 0; }
- # Отметьте правильное определение константы:
- # Что обозначает данный код? int someFunc(double, int); int main(int argc, char* pArgs[]) { someFunc(1, 2); } int someFunc(double argl, int arg2) { //...выполнение каких-то действий }
- # Что будет выведено на экран в результате выполнения приведенной ниже программы: #include "iostream.h" #include "conio.h" const int a=144; int main() { a=12; cout<<a; getch(); return 0; }
- # Какие из записей соответствуют правильным обозначениям отрицательных констант?
- # Выберите правильные записи целых констант:
- # Выберите правильные записи констант с плавающей точкой:
- # Выберите правильные записи символьных констант:
- # Какой результат будет у следующего выражения? main() { char s2[] = "Hi"; cout << sizeof("Hello") + sizeof(s2); }
- # Какой результат будет у следующего выражения? int main() { char *s1; char s2[] = "Hello"; *s1 = "Hi!"; s1[2] = s2[1]; cout << s1; }
- # Что является результатом программы #include <stdio.h> int main(){ int x = 3, у = 3; printf("Значение префиксного выражения: %d\n", ++х); printf("Значение постфиксного выражения: %d\n", у++); printf("Значение х после приращения: %d\n", х); printf("Значение у после приращения: %d\n", у); return 0; }
- # Что произойдет при выполнении данного оператора switch, если val = 1? switch (val) { case 1: a(); case 2: b(); break; default: c(); break; }
- # Расставьте операторы согласно их приоритета (по восходящей): <<==sizeof++
- # Перечислите побитовые логические операторы:
- # Что будет выведено на экран после выполнения программы? void main() { int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; }
- # Что будет напечатано в результате работы следующей программы? main() { int a = 0, x = 2; for (int i = 0; i < 4; i++) { a++; if (i == 1) goto B; // x++; } if (a < x) goto C; x = 5; C: a -= x; B: a += x; cout << a << " " << x; }
- # Можно ли переопределить операторы new и delete?
- # Перечислите операторы выбора:
- # Что будет напечатано в результате работы следующей программы? main() { int a = 0, x = 0; for (int i = 0; i < 4; i++) { a++; if (i == 2) goto B; x++; } if (a > x) goto C; x = 10; C: a -= x; B: a += x; cout << a << " " << x; }
- # Что будет напечатано при выполнении фрагмента кода: int x = 3, y = 2, z = 1; if(x >= y) if(y <= z) cout << "Вариант 1"; else if(x >= z) cout << "Вариант 2"; else cout << "Вариант 3";
- # Что будет напечатано в результате работы следующей программы? int main() { int a = 0, x = 2; for (int i = 0; i < 1; i++) { a++; if (i == 1) goto B; x++; } if (a > x) goto C; /* x = 5; */ C: a -= x; B: a += x; cout << a << " " << x; return 0; }
- # Какой результат будет после выполнения следующей программы? main() { int x = 0; for (int i = 0; i < 5; i++) for (int j = 0; j < 3; j++) { x++; if (j) continue; else break; } cout << x; }
- # Какие из следующих операторов обеспечивают бесконечный цикл?
- # Что выведет на экран следующий код: int x = 2; while (x != 12) { cout << x << endl; x = x + 2; }
- # Что производит следующий программный код: sum = 0; for (n = 1; n <= 10; n++) sum = sum + n;
- # В каком выражении произойдет зацикливание программы?
- # Что произойдет при выполнении кода: for (i = 0; i < 5;) { continue; i--; func(); }
- # Оператором цикла с предусловием является оператор:
- # Оператором итерационного цикла является оператор:
- # Оператором цикла с постусловием является оператор:
- # Если int n=2, какой будет результат switch(n) { case 2: cout << "YES"; break; case 3: cout << "NO"; break; default: cout << "MAYBE"; break; }
- # Нужно выделить память для одномерного массива А, состоящего из 10 элементов и затем освободить эту память. Какие из приведенных операторов пригодны для этой цели?
- # Выберите корректные части кода 1. int i =5; switch(i) { case 2: ;break; default:; } 2. char c ='a'; switch(c) { case 'a': ;break; default:; } 3. char* str ="a"; switch(str) { case "a": ;break; default:; }
- # Каково назначение параметра argc программы main?
- # Каково назначение параметра argv программы main?
- # Какое значение может иметь параметр argc функции main?
- # Каким будет результат работы следующей программы? int a = 5 & 3; float b = 4.f; b += a++ / 2; cout << b;
- # Каким будет результат работы следующей программы? int a=5 >> 3; float b = 5.5f; b+= ++a * 2; cout << b;
- # Каким будет результат работы следующей программы? int a = 3 << 1; double b = 5; b += ++a * 2; cout << b;
- # Выберите корректные части кода 1. char* str ="a"; switch(str) { case "a": ;break; default:; } 2. enum day{sun,mon,thus}; day d = mon; switch(d) { case sun: ;break; }
- # Что определяет операция sizeof(str);?
- # Перечислите операторы сравнения:
- # Что значит операция:<<?
- # Укажите тернарные операции:
- # Какой будет результат выполнения следующей программы? int main() { int i = 5; int* pi = &i; void * v = pi; pi = v; cout << *pi; return 0; }
- # Укажите правильные объявления функций:
- # Когда функция вызывает саму себя она называется:
- # В каких строках программного кода происходит объявления функций? #include <iostream.h> int sum(int a, int b); int main(){ int a = 2, b - 3, c, d; с = sum(a, b); cin >> d; cout << sum(c, d); return 0; } int sum(int а, int b){ return (а + b); }
- # Что называется фактическими параметрами функции?
- # Изменяются ли параметры, передаваемые в функцию?
- # Перечислите, что характерно для оператора return?
- # Что можно делать с указателями на функции?
- # Отметьте все допустимые способы перегрузки данной функции: void func(double a, int b);
- # Укажите результат выполнения следующего кода: int factorial(int x) { if(x==1) return 1; else return x*factorial(x-1); } int Func(int y) { y = factorial(3); return y+10; } int _tmain(int argc, _TCHAR* argv[]) { int x = 0; int z = 0; z = Func(x); printf("z=[%d] x=[%d]",z,x); int i; scanf("%d",&i); return 0; }
- # Если в качестве параметра функции указан массив, то передается:
- # Отметьте правильные прототипы функций, использующих в качестве параметра массив:
- # Отметьте правильный прототип функции, использующий в качестве параметра многомерный массив int m[10][2]:
- # Какой будет результат выполнения следующей программы? int SM(const int A[], int N) { int S = A[0]; for (int i = 1; i < N; i++) S += A[i]; return S; } int main() { #define Bmax 3 int B[5] = {1, 2, 3}; cout << SM(B, Bmax) << endl; }
- # Какой будет результат выполнения следующей программы? int SM(const int A[], int N) { int S = A[0]; for (int i = 1; i < N; i++) S += A[i]; return S; } int main() { #define Bmax 4 int B[] = {4, 3, 2, 1}; cout << SM(B, Bmax) << endl; }
- # Какой будет результат выполнения следующей программы? int SM(const int A[], int N) { int S = A[0]; for (int i = 1; i < N; i++) S += A[i]; return S; } int main() { #define Bmax 6 int B[6] = {1, 2, 3, 4, 5, 6}; cout << SM(B + 3, Bmax - 3) << endl; return 1; }
- # Что выводит данная программа, если она верна? #include <iostream.h> class Х{ public: virtual void fun(int a = 0){cout << a;} }; class Y: public X{ public: virtual void fun(int a = 1) {cout << a ; } }; int main(){ X *px = new X; px->fun(); X *py = new Y; py->fun(); return 0; }
- # Что описывает оператор typedef float (*ptr)(char);
- # Что описывает оператор typedef void (*ptr)(char *);
- # Что будет напечатано в результате работы следующей программы? #include <iostream> int f1(int x, int y) { return x + y; } int f2(int x, int y) { return x * x + y * y; } int (*pf1)(int, int); int (*pf2)(int, int); main() { pf1 = &f1; pf2 = &f2; int x = 2, y = 3; cout << (*pf1)(x, y) << ' ' << (*pf2)(x, y) << endl; }
- # Что будет напечатано в результате работы следующей программы? #include <iostream> #include <math> double s2(double x) { return sqrt(x); } double s3(double x) { return sqrt(s2(x)); } double (*pf1)(double); double (*pf2)(double); main() { pf1 = &s2; pf2 = &s3; cout << (*pf1)(25) << ' ' << (*pf2)(16) << endl; }
- # Что будет напечатано в результате работы следующей программы? #include <iostream> double s2(double x) { return x*x; } double s3(double x) { return x*s2(x); } double s4(double x) { return s2(x)*s2(x); } int main() { typedef double (*PTF)(double); PTF pf[3] = {&s2, &s3, &s4}; double x = 2; for(int i = 0; i < 3; i++) cout << (*pf[i])(x) << endl; return 0; }
- # Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?
- # В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений не приведет к ошибке компиляции?
- # В каких случаях произойдет ошибка компиляции?
- # Какие из следующих прототипов функций содержат ошибки?
- # Какие из следующих прототипов функций содержат ошибки?
- # Какие из следующих прототипов функций содержат ошибки?
- # В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений приведет к ошибке компиляции? 1.void func(int m, double g = 3.14) 2.double func(int m, double h, int d = 0)
- # Выберите корректные (компилируемые) части кода: 1. void func (int i , int x = 0); 2. void func (int i , int x = 0, int y);
- # Выберите верные утверждения:
- # Выберите корректный (компилируемый) код:
- # Какие команды используются для создания библиотеки?
- # Как использовать библиотеку math.a в своей программе myprog.c?
- # С какого символа начинаются директивы препроцессору?
- # Какая директива препроцессору служит для включения в текст файла текста, содержащегося в другом файле?
- # Какой синтаксис применяется для использования директивы include?
- # Какие принципы объектно-ориентированного программирования реализуются классами?
- # Чем класс отличается от структуры?
- # Как получить доступ к закрытым членам класса из других объектов?
- # Верно ли объявлен следующий класс? class MyClass { int n; MyClass (int); ~MyClass (); };
- # Выберите корректное определение класса Name
- # Верно ли такое объявление класса Name? class Name { public: int Age; char* name; };
- # Верно ли такое объявление класса? class A { int x; };
- # Класс А определен следующим образом: class A { int x; }; Отметьте корректный вариант обращения и использования класса A:
- # Выберите правильный вариант обращения к элементам и использования класса A: class A { int x; };
- # В каком из вариантов объявление класса ошибочно? 1.class A { void F(); public: int Func(int x){ F();} }; 2.class A { char* name; public: void Func(){ printf("Hello");} };
- # Объявлен класс A и объект d: class A { int a, b, c; public: A() {a = 1; b = 2; c = 3; }; int get_a() { return a; } int get_c() { return c; } int get_b() { return b; } }; A* d = new A; Как обратиться к переменной с?
- # Объявлен класс class A { public: int a,b,c;}; A *obj; Как обратиться к переменной с?
- # Объявлен класс class A { public: int a,b,c;}; A obj; Как обратиться к переменной с?
- # Какое из следующих объявлений класса не вызовет ошибки при компиляции?
- # Отметьте правильное создание объекта вложенного класса cls2, если имеется следующее объявление: class cls1 { public : int yy; class cls2 { public : int zz; }; };
- # Выберите правильные объявления дружественного класса:
- # Выберите правильное объявление дружественной функции:
- # Выберите варианты правильного объявления классов?
- # Какие типы конструкторов используются для инициализации объектов?
- # Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором по умолчанию?
- # Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором копирования?
- # Какие утверждения являются правильными?
- # Какие утверждения являются правильными?
- # Какие служебные слова предназначены для указания видимости членов класса?
- # Какие служебные слова могут быть использованы в качестве типа класса?
- # Выберите наиболее правильное определение функций-членов класса:
- # Какими по умолчанию являются элементы структуры?
- # Какими по умолчанию являются элементы класса?
- # Объявлены классы: class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; }; Созданы объекты и ссылки: B* b = new B; C* c = new C; D* d = new D; Какие из следующих операторов приведут к ошибкам компиляции?
- # Какой будет результат следующей программы? class t { public: t() { s = 2; } ~t() {}; int s; int f(int a) { s++; return s * a; } class t2 { public : int i; }; }; main() { t obj_t; t::t2 obj_t2; obj_t2.i = 5; cout << (obj_t.f(2) + obj_t2.i) << endl; }
- # Какой будет результат следующей программы? class t { public: t() { s = 4; } ~t() {}; int s; int f(int a) { s--; return s * a; } class t2 { public : int i; }; }; int main() { t obj_t; t::t2 obj_t2; obj_t2.i = 10; cout << (obj_t.f(2) + obj_t2.i) << endl; }
- # Какой будет результат следующей программы? class t { public: t(int i, int j); ~t() {}; int s, m; class t2 { public : int i; }; }; t::t(int i, int j) { s = i; m = j; } int main() { t obj_t(5, 10); t::t2 obj_t2; obj_t2.i = 10; cout << (obj_t.s + obj_t.m + obj_t2.i) << endl; return 0; }
- # К каким методам и атрибутам базового класса имеет доступ производный класс?
- # Объявлены классы: class A { public: int a; A() { a = 0; }; }; class B : public A { public: B():A() {}; }; class C : protected A { public: C():A() {}; }; class D : private A { public: D():A(){}; }; Созданы объекты и ссылки: B* b = new B; C* c = new C; D* d = new D; Какие из следующих операторов приведут к ошибкам компиляции?
- # Если записано class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано? B b; b.f();
- # Определите результат работы данной программы для A a; B b; b.f(); class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
- # Верен ли данный код: class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
- # Если записано class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано? B b; A& a=b; a.f();
- # Что обозначает запись class A { virtual f() = 0; };?
- # В каком порядке вызываются конструкторы и деструкторы? Конструктор базового классаДеструктор базового классаКонструктор производного класса Деструктор производного класса
- # Имеется программный код: class A { public : int a, b; protected : int z; private : short i; } A1; class B : public A { private : int k; int func (float d); } B1; Выберите для него верные определения функции func: 1. int B::func(float d) { B1.i = b + a; return b; } 2. int B::func(float d) { k = this.b + a; return b; } 3. int B::func(float d) { B1.z = this->b + a; return b; }
- # Что будет выведено на экран? class A { public: A() { x = 1; }; int f() { return x; }; protected: int x; }; class B { public: B() { x = 2; }; int f() { return x; }; protected: int x; }; class C : public A, public B { }; C* c = new C; cout << c->f(); delete c;
- # Какие операторы можно использовать для выделения и освобождения динамической памяти?
- # Какие библиотечные функции можно использовать для выделения и освобождения динамической памяти?
- # Имеется запись (monstr - базовый класс, daemon - производный): // Описывается указатель на базовый класс: monstr *р: // Указатель ссылается на объект производного класса: р = new daemon: При выполнении виртуального метода p->draw(1, 1, 1, 1); будет вызван
- # Для чего нужны виртуальные базовые классы?
- # Объявлены классы: class base { int x, y; public: int fun(); }; class derived: protected base { int z; public: int fun1(); }; Определите тип доступа из класса derived к членам x, y, fun класса base.
- # Определены классы: class base { int x, y; public: int getx() { return x; } int gety() { return y; } }; class Derived : private base { int z; public: int getz() { return z; } base::getx; }obj; Какой из следующих операторов приведет к ошибкам компиляции?
- # Определены классы: class base { int x, y; public: base() { x = 0; y = 0; } int getx() { return x; } int gety() { return y; } }; class Derived : private base { int z; public: Derived() : base() { z = 0; } int getz() { return z; } base::getx; }; main() { Derived *obj = new Derived; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
- # Определены классы: class base { int x, y; public: base() { x = 0; y = 0; } int getx() { return x; } int gety() { return y; } }; class Derived : protected base { int z; public: Derived() : base() { z = 0; } int getz() { return z; } base::gety; }; main() { Derived *obj = new Derived; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
- # Выберите правильную синтаксическую конструкцию наследования:
- # Произойдет ли ошибка при компиляции этого кода? 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);}
- # Определены классы: class A { void fun() { cout << "функция класса A\n"; } }; class B : private A { public: void fun() { cout << "функция класса B\n";} }; class C : private B { public: void fun() { cout << "функция класса C\n";} }; Что будет напечатано в результате выполнения операторов: C *obj; obj = new C; obj->fun();
- # Определены классы: class A { public: void fun() { cout << "функция класса A\n"; } }; class B: public A { public: void fun() { cout << "функция класса B\n"; } }; class C: public B { public: void fun() { cout << "функция класса C\n"; } }; Что будет напечатано в результате выполнения операторов: C obj; obj.A::fun();
- # Что обозначает следующая запись? class Block<int, 100>{ public: Вlоск() {р = new int [100];} ~Block {delete [ ] p;} operator int * ( ); protected: int * p; }; Block<int, 100>:: operator int *(){ return р; }
- # Какие функции называются чисто виртуальными?
- # Что обозначает следующая запись? class В{ / * ... * / }; class С: public В{ /* ... */ }; С* с = new С; В* b = dynamic_cast<B*>(c);
- # Дано определение классов: class MyClass0 { public: int x; //... }; class MyClass1 : MyClass0 { //... }; Какой статус доступа будет иметь компонент "x" класса "MyClass0" в производном классе "MyClass1"?
- # Выберите правильные утверждения относительно следующего кода: class hero{ friend class mistress; } class mistress{ void f1 (); void f2(); }
- # Можно ли осуществить явное преобразование типа объекта к типу абстрактного класса?
- # Каков будет результат , если конструктор абстрактного класса вызовет чисто виртуальную функцию?
- # Может ли конструктор быть виртуальным?
- # Можно ли создать виртуальную функцию, имитирующую виртуальный конструктор?
- # Можно ли использовать виртуальную функцию, имитирующую виртуальный конструктор, для размножения объектов?
- # Что будет напечатано в результате работы программы: class A { public: A() { cout << "A "; }; virtual A* new_A() { return new A(); } }; class B : public A { public: B(){ cout << "B " ;}; A* new_A() { return new B(); } }; void fun(A* p1, A* p2) { A* p3 = p1->new_A(); A* p4 = p2->new_A(); } void main() { A* p1 = new A; B* p2 = new B; fun(p1,p2); }
- # Как можно определить бинарную операцию?
- # Что будет выведено на экран после выполнения программы? int main() { int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; return 0; }
- # Как можно определить унарную операцию?
- # Чему будет равна переменная x перед выходом из данной функции? void f() { int x = 2; x = x++; }
- # Укажите постфиксную операцию декремента?
- # Какой из этих операторов сложения возвращает сумму по значению? operator+(); operator++();
- # Какой из этих операторов сложения возвращает сумму по ссылке? operator+(); operator++();
- # Будет ли работать этот оператор? MyClass operator+(MyClass x1, MyClass x2) { int sum= x1.a + x2.a; return *new MyClass(sum); }
- # Дано частичное определение класса MyClass: class MyClass { int a; //... public: MyClass(int); MyClass(const MyClass&); //... }; Будет ли работать этот оператор: MyClass operator+(MyClass x1, MyClass x2) { int sum= x1.a + x2.a; MyClass result(sum); return result; }
- # Какие из перечисленных операторов не следует реализовывать как внешние функции, а только как функции-члены класса:
- # Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?
- # Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?
- # Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?
- # Выберете корректное объявление 1.class A{ friend A&operator+(A&a, A&b); }; A&operator+(A&a, A&b); 2.class A{ friend A&operator+(A&b); }; A&A::operator+(A&a, A&b); 3.class A{ A&operator+(A&b); }; friend A&A::operator+(A&a, A&b);
- # Чему будет равняться переменная "z" после выполнения следующего кода: int SUMM(int x, int y) { return (x+y); } int main() { int z=0; { int x=1; int y=3; } z=SUMM(x,y); return 0; }
- # Выберите верное утверждение:
- # Чему будет равняться значение переменной x после выполнения следующего кода: #include "iostream.h" #include "conio.h" int main() { int x=1; M2:; for(int i=1;i<5;i++,x++); if(x>5) goto M1; else goto M2; M1: cout<<x; getch(); return 0; }
- # К операторам языка С++, которые нельзя перегружать, относят
- # В чем ошибка при таком определении бинарного оператора: String operator+()?
- # Какие из перечисленных ниже операторов не могут быть перегружены?
- # Какой из перечисленных ниже операторов не может быть перегружен?
- # Какие операторы языка С++ нельзя перегружать?
- # Сколько операндов может иметь операторная функция унарного оператора, объявленная как функция-член?
- # Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как глобальная функция?
- # Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как дружественная функция?
- # Что будет выведено на экран в результате выполнения приведенной ниже программы: #include "iostream.h" #include "conio.h" class NewClass { int x; int y; public: NewClass(int x0,int y0) { x=x0; y=y0; } void DISPLAY(void) { cout<<x<<" "<<y; } NewClass operator+(NewClass obj) { NewClass tmp(0,0); tmp.x=x+obj.x; tmp.y=y+obj.y; return tmp; } }; int main() { NewClass obj1(1,3),obj2(5,8); obj1=obj1+obj2; obj1.DISPLAY(); getch(); return 0; }
- # Объявлен некоторый класс A. Функция объявляется внутри класса A. Выберите корректные варианты объявления функции перегрузки оператора.
- # Выберете корректные объявления 1.class A{ friend A&operator+(A&a, A&b); }; A&operator+(A&a, A&b); 2.class A{ friend A&operator+(A&a, A&b); }; A&A::operator+(A&a, A&b);
- # Какие приёмы следует использовать для того, чтобы перегруженные операторы были пригодны для операндов разных типов?
- # Каков синтаксис функций (или операторов) преобразования объекта одного типа в объект другого типа?
- # Выберите верные утверждения:
- # Выберите верное утверждение:
- # Выберите верное утверждение:
- # Объявлен класс: class Point { int x,y,z; char *s; public: Point(int,int,int, char*); int GetX() { return x;} int GetY() { return y;} int GetZ() { return z;} Point* operator->() { return this;} }; Point::Point(int x1,int y1,int z1, char * s1) { x=x1; y=y1; z=z1; int n=strlen(s1); s=new char[n+1]; for(int i=0;i<=n;i++) s[i]=s1[i];} Какие из следующих операторов приведут к ошибкам компиляции?
- # Выберите правильное (синтаксически верное) объявление функции-шаблона func, принимающей два параметра параметризующего типа template <class T>
- # Какое объявление функции-шаблона func верно?
- # Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();
- # Какой будет результат следующего выражения? template <class T> T sum(T *a, T *b) { T f = 5; return (*a + *b) - f; } int main() { int i = 10, j = 2; double x = 10.1, y = 1.1; cout << sum(&i, &j) << " " << sum(&x, &y); }
- # Какая ошибка в таком определении шаблона: template <class T, T def_val> class My {};
- # Какие шаблоны функций записаны неправильно?
- # Сколько в программе может быть определений шаблона типа для функции-члена шаблонного класса?
- # Шаблоны каких функций можно определить в программе?
- # Какой будет результат следующего выражения? template <class T> T sum(T *a, T *b) { T f = 1; return (*a + *b) - f; } int main() { int i = 5, j = 1; double x = 5., y = 6.; cout << sum(&i, &j) << " " << sum(&x, &y); }
- # Синтаксис объявления шаблона функции имеет вид:
- # Выберите верные прототипы шаблонов функций:
- # Синтаксис объявления шаблона класса имеет вид:
- # Для списка с принудительной связью верно следующее:
- # Для списка без принудительной связи верно следующее:
- # Какие два основных вида шаблонов существуют в языке С++?
- # Имеется программный код: template<class For> For adjacent_find(For first, For last); template<class For, class BinPred> For adjacent_find(For first, For last, BinPred pred); Для чего он предназначен?
- # Имеется программный код: template <class In1, class In2> bool equal(In1 first1, In1 last1, In2 first2); template <class In1, class In2, class BinPred> bool equal(In1 first1, In1 last1, In2 first2, BinPred pred); Для чего он предназначен?
- # Отметьте все неверные утверждения:
- # Выберите верные прототипы шаблонов функций:
- # Определен шаблон и описаны объекты класса: template <class A, int n> class my_template {A x[n]; /*…*/}; my_template <char, 20> y1; my_template <int, 20> y2; my_template <char, 30> y3; my_template <int, 20> y4; Какой из следующих операторов не содержит ошибки:
- # Определен шаблон и описаны объекты класса: template <class A> class Array { /*…*/}; Array <int> x1; Array <int> x2; Array <char> x3; Array <short> x4; Какие из следующих операторов не содержат ошибки:
- # Определена шаблонная функция template <class T> bool cmp(T a, T b){ return a>b? true : false;}; Как осуществить вызов функции cmp() для параметров int a1, double b1?
- # Выберите вариант правильного объявления шаблона класса A: 1.template<class T> class A { public: void f(); }; template<class T> void A<T>::f(){}; 2.template<class T> class A { public: void f(); }; void A<T>::f(){};
- # Выберите вариант правильного объявления шаблона класса A: 1.class A<T> { public: void f(); }; void A<T>::f(){}; 2.template<class T> class A { public: void f(){} }; template<class T> void A::f(){};
- # Какая строка данного кода производит специализацию шаблона? template<class Т> class А{ int х; }; template<class Т> class А<Т*> { long х; }; template<template<class U> class V> class C{ V<int> y; V<int*> z; }; C<A> c;
- # Заголовок обобщенного метода print шаблона List имеет вид template <class Data> void List <Data>::print();. Что для данной записи обозначает следующее: void List <char>::print(){ ... }
- # Что обозначает запись typedef basic_filebuf<char> filebuf;?
- # Можно ли создать шаблон сразу по нескольким типам?
- # Можно ли создать шаблон c несколькими параметрами?
- # Есть ли ошибка в таком объявлении класса: class A { public: template <class Type> void f1( Type ) {}; template <class Type> int f2( Type ) {}; };
- # Чем механизм шаблонов отличается от механизма перегрузки
- # Чем отличается шаблон функции от обычной функции?
- # Выберите правильный вариант программного кода: 1.template<typename T> class A { public: void f(){} }; class A<int> { public: void f(){} }; 2.template<typename T> class A { public: void f(){} }; template<> class A<int> { public: void f(){} };
- # Какой будет результат следующего выражения? template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <int> A1; A1.x1 = 3; A1.x2 = 10; cout << A1.func(1); }
- # Какой будет результат следующего выражения? template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <float> A1; A1.x1 = 5.5; A1.x2 = 0.6; cout << A1.func(1.1); }
- # Какой будет результат следующего выражения? template <class T> class A { public : T x1; T x2; T func(T x3) { x3 += x1 + x2; return x3; } }; int main() { A <int> A1; A1.x1 = 5; A1.x2 = 12; cout << A1.func(1); }
- # Если существует несколько обработчиков особой ситуации, какой будет вызван?
- # Верна ли следующая программа? 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; }
- # Что обозначает запись typedef void (*terminate_handler)();?
- # Как будет работать такой блок: try { ... } catch (...) { }
- # Что собой представляет исключительная ситуация?
- # В чем смысл механизма исключительных ситуаций?
- # Что произойдет, если при возникновении особой ситуации блок try не будет обнаружен в данной функции?
- # Есть ли ошибка в следующем коде? try { } catch (a) { } catch (b) { } catch (...) { } catch (c) { } catch (d){ }
- # Cколько параметров может принимать catch
- # Каким способом функция может вернуть ошибку?
- # Какая функция вызывается при аварийном завершении программы?
- # Что произойдет, если особая ситуация возникнет в конструкторе объекта?
- # Перечислите средства С++, позволяющие избежать ошибок:
- # Где может встречаться блок try-catch?
- # Укажите поток вывода сообщений об ошибках:
- # Выполнится ли код, содержащийся в блоке try { }, если никакой ошибки не произошло?
- # Если происходит ошибка при выполнении функции new, то
- # Исключительная ситуация в деструкторе
- # Какой результат будет у следующего выражения? #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;
- # Какой результат будет у следующего выражения? #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; }
- # Какой результат будет у следующего выражения? #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; }
- # Что производит эта программа? #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; } }
- # Для чего предназначена следующая программа и верна ли она: #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(); } }
- # Какая строка данного кода производит возврат элемента по указателю? #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--]); }
- # В конструкторе класса class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?
- # Класс 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); }
- # Могут ли блоки try-catch быть вложенными?
- # Имеются следующие обработчики ошибок: try {} catch (a) {код 1} catch (b) {код 2} catch (с) {код 3} catch (d) {код 4} catch (d) {код 5} Если возникла особая ситуация типа d, какой обработчик будет вызван?
- # Имеются следующие обработчики ошибок: try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типа d, какой обработчик будет вызван?
- # Имеются следующие обработчики ошибок: try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типа b, какой обработчик будет вызван?
- # Какая функция будет первой вызвана, если особая ситуация запущена и не перехвачена?
- # Какая функция будет первой вызвана, если функция запустила особую ситуацию, не указанную в ее описании
- # Какая функция вызывается для нормального завершения программы?
- # Какой оператор отслеживает исключительную ситуацию?
- # Какой оператор генерирует исключительную ситуацию?
- # Какой оператор обрабатывает исключительную ситуацию?