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

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

Правильные ответы выделены зелёным цветом.
Все ответы: Курс дает описание языка C++, его ключевых понятий и основных приемов программирования на нем. Это завершенное руководство, написанное создателем языка, которое содержит описание всех средств С++, в том числе управление исключительными ситуациями, шаблоны типа (параметризованные типы данных) и множественное наследование.

Каким языком является С++?

(1) модульным
(2) процедурным
(3) объектно-ориентированным

В каком файле определяются операторы ввода и вывода?

(1) iostream.h
(2) istream.h
(3) ostream.h

Что подразумевается под проектированием программного продукта?

(1) постановка задачи
(2) определение структуры и общих принципов
(3) программирование

Какой вид иерархии реализует наследование?

(1) "общее-частное"
(2) "целое-часть"
(3) "клиент-сервер"

Что такое конкретный тип?

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

Укажите неправильное описание переменной

(1) char ar[10];
(2) enum winter {december, january, february};
(3) const c;

Что является результатом программы

#include <stdio.h> int main(){ int x = 3, у = 3; printf("Значение префиксного выражения: %d\n", ++х); printf("Значение постфиксного выражения: %d\n", у++); printf("Значение х после приращения: %d\n", х); printf("Значение у после приращения: %d\n", у); return 0; }
(1) значение префиксного выражения: 3
(2) значение постфиксного выражения: 4
(3) значение х после приращения: 4
(4) значение у после приращения: 4

Укажите правильные объявления функций:

(1) void f(int, char*);
(2) void f(double, char*, int=0);
(3) void f(double, int* =0, int=1);
(4) void f(double=0, int*, int=1);
(5) void f(double=0 ...);

Какие принципы объектно-ориентированного программирования реализуются классами?

(1) полиморфизм
(2) инкапсуляция
(3) абстракция
(4) модульность

К каким методам и атрибутам базового класса имеет доступ производный класс?

(1) public
(2) private
(3) protected

Как можно определить бинарную операцию?

(1) как функцию, принимающую два параметра
(2) как функцию, принимающую один параметр
(3) обоими способами
Выберите правильное (синтаксически верное) объявление функции-шаблона func, принимающей два параметра параметризующего типа template <class T>
(1) template <class T> void func(T a, T b);
(2) template <T> void func(T a, T b);
(3) template <struct T> void func(T a, T b);а

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

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

Могут ли быть в классе несколько конструкторов и деструкторов?

(1) может быть только один конструктор и один деструктор
(2) могут быть несколько конструкторов, но только один деструктор
(3) могут быть несколько деструкторов, но только один конструктор
(4) могут быть несколько деструкторов и несколько конструкторов

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

(1) width(n);
(2) precision(n);
(3) setw(n);

Как называются операторы, изменяющие состояние объекта?

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

Какое отношение между классами реализовано в данном случае?

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() { } }
(1) наследование
(2) принадлежность
(3) использование

Что может представлять собой интерфейс?

(1) абстрактный базовый класс
(2) класс обобщающий понятия, реализованные в других классах
(3) класс, связывающий программы на С++, с программами на других языках

Чему будет равна переменная x?

void f() { int x = 1; int &y = x; int &z = y; z = -1; }
(1) 1
(2) -1
(3) 0
(4) Неизвестно

Что будет напечатано в результате работы следующей программы?

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; }
(1) 2 4
(2) 4 2
(3) 5 2
(4) ошибка выполнения

Что можно делать с указателями на функции?

(1) передавать в функции
(2) возвращать из функций
(3) хранить в массивах
(4) присваивать другим указателям на функции
Укажите постфиксную операцию декремента?
(1) T* operator--();
(2) T* operator--(int);
(3) нет верного ответа

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

(1) ни одного
(2) только одно
(3) несколько

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

(1) программа сразу завершит работу
(2) поиск try будет продолжен в вызывающей функции и т.д. по стеку
(3) программа продолжит работу, не обработав ситуации
Отметьте основные свойства объектно-ориентированного языка:
(1) модульность
(2) абстракция
(3) иерархичность
(4) параллелизм
(5) инкапсуляция

Какая функция устанавливает текущую позицию для чтения из файла?

(1) seekg();
(2) put();
(3) get();

Укажите шаги для улучшения читаемости программы?

(1) создание корректных комментариев
(2) использование осмысленных имен переменных
(3) уход от вложенных конструкций

Какое отношение между классами реализовано в данном случае?

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; } };
(1) наследование
(2) использование
(3) принадлежность

Что делает оператор new?

(1) проверяет, достаточно ли памяти для создания объекта
(2) выделяет пямять под объект
(3) освобождает память

Что возвращает функция, прототип которой объявлен следующим образом:

struct A {char *x; int y;}; A fun(void);
(1) структуру как результат
(2) указатель на структуру
(3) ссылку на структуру

Что будет напечатано в результате работы следующей программы?

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; }
(1) 2 4
(2) 5 3
(3) 5 2
(4) ошибка выполнения

Если в качестве параметра функции указан массив, то передается:

(1) значение первого элемента массива
(2) указатель на последний элемент массива
(3) указатель на его первый элемент

Выберите правильный вариант обращения к элементам и использования класса A:

class A { int x; };
(1) A *\a* = [120];
(2) A a[100];
(3) A int [20];
(4) A /a*/ = [11];

Имеется программный код:

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; }
(1) 1
(2) 2
(3) 3

Будет ли работать этот оператор?

MyClass operator+(MyClass x1, MyClass x2) { int sum= x1.a + x2.a; return *new MyClass(sum); }
(1) будет
(2) не будет
(3) будет, но с утечкой памяти
Синтаксис объявления шаблона функции имеет вид:
(1) template <список-параметров_шаблона> тип_возвращаемого_значения имя_функции (список параметров) {}
(2) template (список-параметров_шаблона) определение_функции
(3) <список-параметров_шаблона> template тип_возвращаемого_значения имя_функции (список параметров) {}

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

(1) в виде возвращаемого значения
(2) с помощью флага
(3) с помощью исключительных ситуаций
Базовый класс определен как class Base {…};. Какое из следующих объявлений правильно?
(1) class Derived inherits Base { ... };
(2) class Derived : public Derived { ... };
(3) class Derived : public Base { ... };

В чем заключается недостаток использования функции printf(...)

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

Какие из перечисленных ниже операций класса можно отнести к типу базовых?

(1) конструкторы
(2) деструкторы
(3) операции копирования
(4) операции, не изменяющие состояние объекта
(5) операции, порождающие объект другого типа

Что называется инкапсуляцией?

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

Можно ли перегружать операции new и delete?

(1) можно
(2) можно только для отдельного класса
(3) можно только глобально
(4) нельзя

Что будет напечатано в результате выполнения фрагмента программы:

char s1[]="a \0x23 b"; cout<<s1;
(1) a \0x23 b
(2) a # b
(3) a

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

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; }
(1) 4
(2) 5
(3) 0
(4) 1

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

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; }
(1) 7
(2) 0
(3) 6
(4) ошибка выполнения

Объявлен класс 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; Как обратиться к переменной с?
(1) d.c;
(2) d.get_c();
(3) d->get_c();
(4) d->c;

Какие операторы можно использовать для выделения и освобождения динамической памяти?

(1) new, delete
(2) malloc, delete
(3) new, free
(4) malloc, free

Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?

(1) int Point::operator[] (int i) {if ( i == 0) return x; if(i==1) return y; else return -1;}
(2) bool Point::operator==(Point a) { return (x==a.x && y==a.y);}
(3) double Point::operator()() {return sqrt(x*x+y*y);}
(4) Point& Point::operator++() {x++; y++; return this;}

Для списка с принудительной связью верно следующее:

(1) в каждом заносимом в список объекте есть поле связи
(2) объект может попасть в односвязный список с принудительной связью только в том случае, если он является производным от типа, определяющего поле связи
(3) в односвязный список с принудительной связью можно поместить объект любого типа

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

(1) контроль типов
(2) возможность перегрузки функций
(3) объявление имен до их использования
(4) обнуление неиспользуемых указателей

Объявлен класс: class A { public: int a,b,c;}; A *obj;. Как обратиться к переменной с?

(1) obj->a->b->c
(2) obj->c
(3) obj->a.c

Что будет выведено на экран в результате работы следующего фрагмента программы:

double x = 123.456789; printf("%e\n",x);
(1) 1.234568e+02
(2) 123.457
(3) 123.456789

Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?

(1) тестирование
(2) переносимость
(3) сопровождение
(4) расширение
(5) компиляция

Отметьте все верные высказывания об интерфейсе:

(1) должен быть строго типизированным
(2) должен иметь не более одного наследника
(3) должен скрывать специфику реализации от пользователя

Какая функция обеспечивает возможность использования имени в качестве уникального ключа объекта?

(1) const char* name()const;
(2) int has_base(const Type_info*, int direct=0) const;
(3) int same(const Type_info* p) const;
(4) int can_cast(const Type_info* p) const;

Отметьте верные высказывания для записи enum {two = 2, three, four, ten = 10, eleven, fifty = ten + 40};?

(1) константе three присваивается значение 3
(2) константе eleven присваивается значение 11
(3) константе four присваивается значение 3
(4) константе eleven присваивается значение, равное сумме значений констант three и four

Что производит следующий программный код:

sum = 0; for (n = 1; n <= 10; n++) sum = sum + n;
(1) сложение четных чисел от 1 до 10
(2) сложение нечетных чисел от 1 до 10
(3) сложение всех чисел от 1 до 10
(4) умножение всех четных чисел от 1 до 10

Что выводит данная программа, если она верна?

#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; }
(1) 0
(2) 00
(3) ошибку времени исполнения
(4) ошибку времени компиляции

Какое из следующих объявлений класса не вызовет ошибки при компиляции?

(1) class A { int x,y; public: A(int,int); int getX(); int getY(); };
(2) class A { int x = 1, y = 2; A(int,int); int getX(); int getY(); };
(3) class A { int x,y; int getX(); int getY(); }A1, A2;

Для чего нужны виртуальные базовые классы?

(1) чтобы все функции базового класса были виртуальными
(2) чтобы уменьшить размер объектов производного класса
(3) чтобы производный класс содержал не более одного экземпляра базового класса
(4) чтобы упростить вызов конструкторов базового класса

Выберете корректное объявление

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);
(1) 1
(2) 2
(3) 3

Имеется программный код:

template<class For> For adjacent_find(For first, For last); template<class For, class BinPred> For adjacent_find(For first, For last, BinPred pred); Для чего он предназначен?
(1) для нахождения пары соседних значений
(2) для вывода первого и последнего чисел в последовательности
(3) для формирования шаблонного полиморфизма

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

(1) выполнится
(2) не выполнится
(3) зависит от содержания кода

Определены классы:

class Base1 { public: void func(); }; class Base2 { public: void func(); }; class Derived: public Base1, public Base2 { … }; void main() { Derived a; … }; Какие из следующих операторов функции main() правильны?
(1) a.func();
(2) a.Base1.func();
(3) a.Base2.func();
(4) a.Base1::func();
(5) a.Base2::func();
Сколько операндов имеет оператор ввода-вывода <<?
(1) 1
(2) 2
(3) 3
(4) зависит от ситуации

В чем заключается недостаток модели «каскад»?

(1) отсутствие повторных проходов (от стадии анализа до стадии тестирования)
(2) неточная формулировка целей проектирования
(3) большой объем документации

Почему метод объектно-ориентированного программирования предпочтительнее метода функциональной декомпозиции?

(1) функциональная декомпозиция не дает достаточной абстракции данных
(2) меньший объем кода
(3) более простая структура программы

Интерфейсный базовый класс - это:

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

Оператором цикла с предусловием является оператор:

(1) for (инициализация цикла; выражение-условие; список_выражений) тело_цикла
(2) while (выражение-условие) тело_цикла
(3) do тело_цикла while (выражение-условие)

Что будет напечатано в результате работы следующей программы?

#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; }
(1) 5 13
(2) 0 0
(3) случайные числа
(4) ошибка компиляции

Выберите правильные объявления дружественного класса:

(1) class B{ ... }; class A { friend class B; };
(2) class B{ ... }; class A { friend class A::B; };
(3) class B{ ... }; class A { friend class B; }; class C { friend class A; };

Определены классы:

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; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
(1) cout << obj.getx() << endl;
(2) cout << obj->getx() << endl;
(3) cout << obj->gety() << endl;

Чему будет равняться значение переменной 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; }
(1) компилятор выдаст ошибку компиляции
(2) 1
(3) 5
(4) 9

Выберите верные прототипы шаблонов функций:

(1) template <class T> void f1(T, int);
(2) template <class T> void f3(const T&, long);
(3) template <class T > T f4(int);

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

#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

Член класса, объявленный с атрибутом доступа public:

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

Что выведет на экран фрагмент программы char z[10]; while(cin >> z) cout << z << '\n'; после ввода текста, состоящего из нескольких слов, разделенных пробелами?

(1) каждое слово на новой строке
(2) каждое слово на новой строке, слова длиной более 10 символов будут разделены
(3) каждый символ на новой строке

Почему использование моделей является не только допустимым, но и желательным?

(1) позволяет использовать опыт, накопленный в процессе разработки других проектов
(2) освобождает разработчика от решения некоторых вопросов
(3) позволяет использовать стандартные решения

Интерфейс определен следующим образом:

class X { Y a; Z b; void set(Y&); public: void f(const char*); void g(int[10], int); } Какая проблема может возникнуть при его использовании?
(1) типы Y и Z используются так, что их определения должны быть известны
(2) в функции X::f неизвестна длина строки
(3) функция X::g имеет низкий уровень абстракции

Что подразумевает термин "сборщик мусора"?

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

В каких случаях из перечисленных ниже описание является определением?

(1) описывает переменную
(2) полностью описывает функцию (включает тело функции)
(3) описывает класс
(4) описывает прототип функции
(5) описывает переменную, определенную в другом месте программы

Если int n=2, какой будет результат

switch(n) { case 2: cout << "YES"; break; case 3: cout << "NO"; break; default: cout << "MAYBE"; break; }
(1) YES
(2) NO
(3) MAYBE
(4) ошибка компиляции

Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?

(1) double func(int m, double g)
(2) int func(double x, int y)
(3) double func(int m, double h, int d = 0)
(4) void func(int m, double g = 3.14)

Какие типы конструкторов используются для инициализации объектов?

(1) конструкторы по умолчанию
(2) конструкторы с параметрами
(3) конструкторы копирования
(4) конструкторы виртуальные
(5) конструкторы статические

Произойдет ли ошибка при компиляции этого кода?

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

Какие из перечисленных ниже операторов не могут быть перегружены?

(1) ::
(2) ||
(3) ^=
(4) ?
(5) ~
Определена шаблонная функция template <class T> bool cmp(T a, T b){ return a>b? true : false;};

Как осуществить вызов функции cmp() для параметров int a1, double b1?

(1) bool c = cmp(a1, int(b1));
(2) b2 = int(b1); bool c = cmp(a1, b2);
(3) bool c = cmp(a1, b1);

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

#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) расширение области видимости
Перегружаемые унарные операции языка С++:
(1) !
(2) &
(3) *
(4) ~
(5) +
(6) +=
(7) -=
(8) =

Если имеется код char a[8]; cin >> a; и вводится текст "Hello world", то что будет в массиве a?

(1) Hello world
(2) wo
(3) Hello w
(4) Hello

Что понимается под сопровождением программного обеспечения?

(1) внесение изменений
(2) устранение ошибок
(3) установка и настройка

Как называется язык, если в нем реализованы классы, но не реализовано наследование?

(1) функциональный
(2) объектный
(3) объектно-ориентированный

Какие ограничения накладывает использование абстрактных классов?

(1) постоянная связь между интерфейсом, заданным абстрактным типом, и реализацией, представленной конкретным типом
(2) теряются преимущества виртуальных функций
(3) объект абстрактного класса всегда имеет один и тот же размер, а классы, отражающие реальные понятия, могут иметь память разных размеров
(4) невозможно разделить интерфейс класса и его реализацию
Что в данном коде обозначает третья строка? int kоl; int& pal = kol; const char& CR ='\n';
(1) ссылку на константу
(2) итератор
(3) создание потока вывода
(4) обнуление переменных

Каково назначение параметра argc программы main?

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

Какие из следующих прототипов функций содержат ошибки?

(1) void func();
(2) char error(int a, b);
(3) arr[10] sum(int *, int );
(4) float* func(float, float);

Какие утверждения являются правильными?

(1) конструкторы предназначены для инициализации объектов
(2) конструктор имеет возвращаемое значение – объект класса
(3) классу без конструктора предоставляется конструктор по умолчанию
(4) конструкторы нельзя перегружать
(5) конструкторы не наследуются
(6) можно определить указатель на конструктор
Что обозначает следующая запись? class Block<int, 100>{ public: Вlоск() {р = new int [100];} ~Block {delete [ ] p;} operator int * ( ); protected: int * p; }; Block<int, 100>:: operator int *(){ return р; }
(1) специализацию шаблона публичного класса для хранения 100 целых величин
(2) инициализацию целых переменных до 100
(3) обнуление сотого параметра класса
Сколько операндов может иметь операторная функция унарного оператора, объявленная как функция-член?
(1) 0
(2) 2
(3) 3
(4) любое количество

Какая строка данного кода производит специализацию шаблона?

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;
(1) последняя
(2) предпоследняя
(3) седьмая
(4) четвертая

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

class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?
(1) это неизвестно
(2) нужно определить длину строки ptr и тогда делать выводы
(3) будет, если создавалась автоматическая переменная класса A
(4) нет, не будет
Наследование - это:
(1) механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает то и другое от постороннего вмешательства
(2) процесс, посредством которого один объект может приобретать свойства другого
(3) способность объектов различных классов отвечать на запрос функции сообразно типу своего класса
(4) возможность определять новые типы данных, с которыми можно работать почти так же, как и с основными типами данных

В каком классе находится функция seekg(streampos) ?

(1) iostream
(2) ostream
(3) istream
(4) ios

Чем объект отличается от класса?

(1) объект - это экземпляр класса
(2) класс не может быть объектом
(3) объект не может быть классом

Есть ли в С++ специальные средства для описания интерфейсов?

(1) нет
(2) есть

Что такое библиотека?

(1) предоставляет решение конкретной задачи для конкретной области приложения
(2) предоставляет решение для множества задач
(3) может использоваться в разнообразных окружениях

Что обозначает данный код?

int someFunc(double, int); int main(int argc, char* pArgs[]) { someFunc(1, 2); } int someFunc(double argl, int arg2) { //...выполнение каких-то действий }
(1) определение функции someFunc ()
(2) создание итератора с указателем на someFunc
(3) обнуление someFunc

Каким будет результат работы следующей программы?

int a = 5 & 3; float b = 4.f; b += a++ / 2; cout << b;
(1) 5
(2) 4.5
(3) 4
(4) 3.5

В программе имеется функция с прототипом 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) первое
(2) второе
(3) оба ошибочны
(4) оба верны

Какие служебные слова могут быть использованы в качестве типа класса?

(1) class
(2) struct
(3) operator
(4) friend
(5) enum

Что будет выведено на экран в результате выполнения приведенной ниже программы:

#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; }
(1) 7,1
(2) 6 11
(3) 1,3 5,8

Можно ли создать шаблон сразу по нескольким типам?

(1) можно
(2) нельзя
(3) зависит от типа

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

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) все

Абстракция данных - это:

(1) механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает то и другое от постороннего вмешательства
(2) процесс, посредством которого один объект может приобретать свойства другого
(3) способность объектов различных классов отвечать на запрос функции сообразно типу своего класса
(4) возможность определять новые типы данных, с которыми можно работать почти так же, как и с основными типами данных

Отметьте истинные высказывания в отношении потоков, представленные классом strstream:

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

Как называется процесс отделения друг от друга элементов объекта, определяющих его устройство и поведение?

(1) абстракция
(2) инкапсуляция
(3) полиморфизм

Если метод в базовом классе не объявлен как виртуальный, а в производном он переопределен, когда определяется, какой из методов вызывается?

(1) во время компиляции
(2) во время выполнения

Выберите правильные записи целых констант:

(1) 0x16
(2) 2147483645
(3) 40000L
(4) a136

Выберите корректные части кода

1. char* str ="a"; switch(str) { case "a": ;break; default:; } 2. enum day{sun,mon,thus}; day d = mon; switch(d) { case sun: ;break; }
(1) первая
(2) вторая
(3) обе верны
(4) обе ошибочны
Выберите корректный (компилируемый) код:
(1) void func (int x =0);
(2) void func (int x +=0);
(3) void func (int x = 0, int y);

Какими по умолчанию являются элементы структуры?

(1) protected
(2) public
(3) private

Можно ли осуществить явное преобразование типа объекта к типу абстрактного класса?

(1) можно
(2) можно при определенных условиях
(3) нельзя
Какие приёмы следует использовать для того, чтобы перегруженные операторы были пригодны для операндов разных типов?
(1) надо перегрузить оператор для всех возможных сочетаний типов операндов
(2) надо создать конструкторы, параметрами которых являются все типы данных, которые могут встретиться в списке операндов перегружаемого оператора
(3) надо перегружать операторы с помощью дружественных функций

Чем механизм шаблонов отличается от механизма перегрузки

(1) шаблон создается для функций, различающихся типами данных
(2) перегрузка не требует единообразия алгоритмов перегружаемых функций
(3) ничем не отличается, это просто разные наименования одного и того же

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

(1) unexpected()
(2) terminate()
(3) abort()

Парадигма программирования, поддерживающего абстракцию данных, заключается в следующем:

(1) определите, какие процедуры вам нужны, используйте лучшие из известных алгоритмов
(2) определите, какие модули вам нужны. Поделите программу так, чтобы данные были скрыты в этих модулях
(3) определите, какие типы вам нужны. Предоставьте полный набор операторов для каждого типа
(4) определите, какой класс вам нужен, предоставьте полный набор операций для каждого класса. Общность классов выразите явно, с помощью наследования

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

#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(); }
(1) будет создан текстовый файл "C:\test.txt" с содержимым "1 25 2.5e+07 Test"
(2) будет выведено сообщение "Ошибка создания файла"
(3) будет создан текстовый файл "C:\Test" с содержимым "1 25 2.5e+07 Test"
(4) будет создан двоичный файл
(5) в ходе выполнения возникнет исключение

Что должно стать результатом проектирования создаваемой системы?

(1) описание архитектуры
(2) прототипы системы
(3) выработка общих тактических приемов
(4) описание назначения системы
Можно ли определить реализацию чисто виртуального метода, определённого в классе-родителе?
(1) можно
(2) нельзя

В каком случае подкласс абстрактного класса сам не является абстрактным?

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

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

main() { char s2[] = "Hi"; cout << sizeof("Hello") + sizeof(s2); }
(1) 8
(2) 9
(3) 10

Что значит операция:<<?

(1) операция вывода
(2) сдвиг влево
(3) меньше или равно

С какого символа начинаются директивы препроцессору?

(1) *
(2) <
(3) #

Какой будет результат следующей программы?

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; }
(1) 11
(2) 10
(3) 12
(4) ошибка выполнения

Можно ли создать виртуальную функцию, имитирующую виртуальный конструктор?

(1) можно
(2) можно при определенных условиях
(3) нельзя

Выберите верное утверждение:

(1) оператор индексирования должен быть объявлен как дружественная функция, которая принимает два аргумента
(2) оператор индексирования должен быть объявлен как функция-член класса, которая принимает один аргумент
(3) аргумент оператора индексирования, трактуемый как индекс в массиве объектов класса, может иметь любой тип
(4) функция operator[] возвращает объект
(5) функция operator[] возвращает ссылку на объект

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

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); }
(1) 10
(2) 14
(3) 11
(4) ошибка компиляции

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

(1) catch
(2) try
(3) throw

Что делает манипулятор flush?

(1) устанавливает ширину поля вывода
(2) выводит нулевой байт
(3) выводит и опустошает буфер
(4) удаляет пробелы при выводе

Какими качествами должен обладать программный продукт?

(1) переносимостью
(2) гибкостью
(3) абстрактностью
(4) расширяемостью
(5) полиморфизмом

Какие существуют виды наследования?

(1) использование
(2) расширение
(3) ограничение

Что произойдет, если чисто виртуальный метод не определить в производном классе?

(1) ошибка компиляции
(2) не удастся создать объект данного класса
(3) будет вызываться метод базового абстрактного класса
(4) зависит от реализации С++

Задан массив:

int m[3][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} }; Какое значение содержится в элементе m[2][3]?
(1) 7
(2) 3
(3) 12
(4) 10

Перечислите побитовые логические операторы:

(1) |
(2) &
(3) ^
(4) +
(5) *

Что называется фактическими параметрами функции?

(1) параметры, указанные при описании функции
(2) параметры, передаваемые при вызове функции
(3) параметры по умолчанию
Верно ли объявлен следующий класс? class MyClass { int n; MyClass (int); ~MyClass (); };
(1) нет, ошибочна четвертая строка
(2) неизвестен тип элементов класса, и потому такое объявление ошибочно
(3) ссылка на класс задана неявно, такая запись ошибочна
(4) класс объявлен верно

Определите результат работы данной программы для A a; B b; b.f();

class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
(1) 2
(2) 5
(3) 6
(4) 11

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

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); }
(1) 5 6.2
(2) 6.2 7
(3) 7 6.2
(4) ошибка компиляции

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

try { ... } catch (...) { }
(1) ошибочная запись
(2) будет перехватывать все особые ситуации
(3) будет перехватывать только первую особую ситуацию

Обязательно ли задавать в программе тип переменной?

(1) обязательно
(2) необязательно
(3) зависит от назначения переменной

Правильно ли написан нижеприведенный программный код?

#include "iostream.h" #include "conio.h" int main() { int x=17,y=46; cout<<x<<"+"<<y<<"="<<x+y; getch(); return 0; }
(1) да, правильно
(2) нет, компилятор выдаст ошибку в пятой строке
(3) нет, компилятор выдаст ошибку в шестой строке
(4) нет, компилятор выдаст ошибку в седьмой строке

Расставьте шаги проектирования классов в наиболее правильном порядке:

  • Определить классы
  • Определить интерфейсы
  • Определить операции для классов
  • Определить связи между классами
  • Определить зависимость от других классов
  • (1) 1, 2, 3, 4, 5
    (2) 1, 2, 4, 5, 3
    (3) 1, 4, 3, 5, 2
    (4) 1, 5, 2, 4, 3

    Какой вид иерархии реализует использование?

    (1) "общее-частное"
    (2) "целое-часть"
    (3) "клиент-сервер"

    Перечислите свойства абстрактного типа?

    (1) нельзя создать объект этого типа
    (2) реализуется некоторым конкретным типом
    (3) любой базовый класс должен быть абстрактным
    (4) обязательно объявляется с ключевым словом abstract
    (5) обычно не требует конструктора

    Что произойдет при выполнении данного оператора switch, если val = 1?

    switch (val) { case 1: a(); case 2: b(); break; default: c(); break; }
    (1) будет выполнена функция а()
    (2) будут выполнены функции a(), b()
    (3) будут выполнены функции a(), b(), c()

    Когда функция вызывает саму себя она называется:

    (1) конструктором
    (2) деструктором
    (3) подставляемой
    (4) рекурсивной

    Чем класс отличается от структуры?

    (1) в структуре все элементы по умолчанию открытые
    (2) в структуре не может быть конструктора
    (3) класс занимает больше памяти

    Объявлены классы:

    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; Какие из следующих операторов приведут к ошибкам компиляции?
    (1) A* p;
    (2) b->a = 7;
    (3) A* p = b;
    (4) c->a = 7;
    (5) A* p = (A*)c;
    (6) d->a = 7;
    (7) A* p = d;

    Что будет выведено на экран после выполнения программы?

    int main() { int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; return 0; }
    (1) 0
    (2) 5
    (3) 10
    (4) 11

    Какое объявление функции-шаблона func верно?

    (1) void func<T>(T a, T b);
    (2) template <T> void func( a, b);
    (3) template <class T> void func(T a, T b);

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

    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) данная программа зацикленная и приведет к ошибке времени исполнения

    Какая директива включает стандартные возможности ввода и вывода?

    (1) #include <fstream.h>
    (2) #include <iostream.h>
    (3) #include <math.h>

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

    cout.precision(3); cout << 12.509;
    (1) 12.509
    (2) 12.5
    (3) .509
    (4) 12.

    Как называются операторы, порождающие объект другого типа?

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

    Если объект класса А может содержать несколько объектов класса В, какое должно быть между ними отношение?

    (1) принадлежности
    (2) использования
    (3) наследования

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

    (1) компилятор выдаст ошибку
    (2) сбой в системе распределения памяти
    (3) операция будет проигнорирована компилятором

    В программе имеется функция с прототипом 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) первое
    (2) второе
    (3) оба ошибочны
    (4) оба верны

    Можно ли переопределить операторы new и delete?

    (1) да
    (2) нет
    (3) только new
    (4) только delete

    Отметьте все допустимые способы перегрузки данной функции:

    void func(double a, int b);
    (1) void func(int a, int b);
    (2) int func(double a, char c);
    (3) void func(int a, double b);
    (4) void func(int a=1, double b);

    Что обозначает запись class A { virtual f() = 0; };?

    (1) запись структурного класса
    (2) запись абстрактного класса
    (3) запись контекстного класса
    (4) запись обобщенного класса

    Какой из этих операторов сложения возвращает сумму по значению?

  • operator+();
  • operator++();
  • (1) 1
    (2) 2
    (3) 1 и 2
    (4) никакой

    Шаблоны каких функций можно определить в программе?

    (1) только глобальных функций
    (2) только функций членов класса
    (3) глобальных функций и функций членов класса

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

    try { } catch (a) { } catch (b) { } catch (...) { } catch (c) { } catch (d){ }
    (1) ошибки нет
    (2) операторов catch не может быть несколько
    (3) оператор catch(...) ошибочен
    (4) оператор catch(...) должен стоять последним
    Какое из свойств объектно-ориентированного языка не содержит С++
    (1) абстракция
    (2) иерархичность
    (3) модульность
    (4) параллелизм
    (5) инкапсуляция

    Если имеется код double x; cin >> x; и вводится "12-3", то что будет в переменной x?

    (1) 9.0
    (2) 9
    (3) 12.0
    (4) 12
    (5) 3.0
    (6) другое
    (7) произойдет ошибка

    Какой наиболее правильный порядок создания проекта:

  • Создать общее описание проекта.
  • Составить уточненное описание проекта.
  • Создать новые стандартные компоненты.
  • Выделить стандартные компоненты.
  • (1) 1, 2, 3, 4
    (2) 1, 2, 4 ,3
    (3) 1, 4, 3, 2

    Какими способами класс Х может использовать класс Y?

    (1) X вызывает функцию-член Y
    (2) X читает член Y
    (3) X пишет в член Y
    (4) X разрушает Y

    Когда освобождается память, выделенная для объекта?

    (1) когда вызывается оператор delete
    (2) когда объект больше не используется
    (3) если реализован сборщик мусора

    Как обратиться к элементу x переменной v, объявленной следующим образом:

    struct A {char *x; int y;} v;
    (1) v.x
    (2) x
    (3) v->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";
    (1) Вариант 1
    (2) Вариант 2
    (3) Вариант 3
    (4) ничего не будет напечатано

    Отметьте правильные прототипы функций, использующих в качестве параметра массив:

    (1) void F(int Ar[]);
    (2) int F(const int array[], int sz);
    (3) int strlen(const char*);

    В каком из вариантов объявление класса ошибочно?

    1.class A { void F(); public: int Func(int x){ F();} }; 2.class A { char* name; public: void Func(){ printf("Hello");} };
    (1) в первом
    (2) во втором
    (3) в обоих неверно
    (4) в обоих верно
    Дано частичное определение класса 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; }
    (1) будет
    (2) не будет, потому что result - локальный объект
    (3) не будет, потому что произойдет ошибка компиляции
    (4) будет, но с утечкой памяти

    Выберите верные прототипы шаблонов функций:

    (1) template <class T> void f1(T);
    (2) template <class T, class U> char f2(T*, U);
    (3) template <class T> *T f3(long);
    (4) template <class T, class U> U f4(&T);

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

    (1) exit();
    (2) terminate();
    (3) close();

    Отличия функций-членов от обычных функций:

    (1) функция-член объявляется в области видимости своего класса. К функции-члену можно обратиться с помощью одного из операторов доступа к членам – точки (.) или стрелки (->);
    (2) функции-члены имеют право доступа как к открытым, так и к закрытым членам класса, тогда как обычным функциям доступны лишь открытые.
    (3) функция-член может быть перегруженной

    Объектом какого класса является оператор cout?

    (1) ostream
    (2) istream
    (3) conbuf
    (4) filebuf

    Какие из перечисленных ниже операций класса можно отнести к типу преобразований?

    (1) конструкторы
    (2) операции, изменяющие состояние объекта
    (3) операции, порождающие объект другого типа
    (4) операции, открывающие доступ к свойствам объектов

    Что называется иерархичностью?

    (1) возможность наследования
    (2) ограничение доступа ко внутренней структуре объекта
    (3) возможность описания классов в отдельных модулях
    Узловой класс:
    (1) пользуется сервисом, предоставляемым базовым классом
    (2) предоставляет виртуальные функции и защищенный интерфейс для базовых классов
    (3) не зависит от своих базовых классов

    В каких из следующих операторов есть синтаксические ошибки?

    (1) char *s2[]="mnbvcx";
    (2) char s3[5]="qwerty";
    (3) char *s4="mnbvcx";

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

    (1) while(1);
    (2) for(; ;);
    (3) for(;1;);
    (4) while(0);

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

    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; }
    (1) 7
    (2) 10
    (3) 6
    (4) ошибка выполнения

    Объявлен класс class A { public: int a,b,c;}; A *obj; Как обратиться к переменной с?

    (1) obj.c
    (2) obj->a->b->c
    (3) obj->c
    (4) obj->a.c

    Какие библиотечные функции можно использовать для выделения и освобождения динамической памяти?

    (1) new, delete
    (2) malloc, delete
    (3) new, free
    (4) malloc, free

    Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?

    (1) Point& Point::operator++() {x++; y++; return *this;}
    (2) Point& Point::operator--(Point &a) { a.x--;a.y--;return a;}
    (3) Point operator--(Point& a,int n) { Point temp=a; if(n!=0) {for(int i=0;i<n;i++) --a;} else --a; return temp; }

    Для списка без принудительной связи верно следующее:

    (1) связь предусмотрена в реализации специального шаблонного класса
    (2) объект можно включить только в один список без принудительной связи
    (3) список без принудительной связи позволяет создавать более эффективные программы
    (4) если нужно создавать список из каких-либо сложных объектов, вместо списка объектов выгоднее создать список указателей на них

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

    (1) только в функции main
    (2) только вне функции main
    (3) в любом месте

    Объявлен класс: class A { public: int a,b,c;}; A obj;. Как обратиться к переменной с?

    (1) obj.c
    (2) obj->c
    (3) obj->a.c

    Что будет выведено на экран в результате работы следующего фрагмента программы:

    double x = 123.456789; printf("%g\n",x);
    (1) 1.234568e+02
    (2) 123.457
    (3) 123.456789

    Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?

    (1) реорганизация
    (2) понимание
    (3) сопровождение
    (4) расширение
    (5) использование

    Основные типы классов:

    (1) классы, которые отражают понятия области приложения
    (2) классы, являющиеся продуктами самой реализации
    (3) классы, являющиеся деталями реализации

    Какое определение наиболее точно соответствует понятию "каркас области приложения"?

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

    Чему будет равняться значение переменной "ii" после выполнения приведенного ниже кода?

    int ii = 0; int& rr = ii; rr++;
    (1) 0
    (2) 1
    (3) 2
    (4) невозможно определить

    В каком выражении произойдет зацикливание программы?

    (1) for (int iCount = 0; iCount <= 4;);
    (2) while (true);
    (3) while (false);

    Что описывает оператор typedef float (*ptr)(char);

    (1) тип указателя на функцию, каждая из которых имеет параметр типа char и возвращает значение типа float
    (2) тип указателя на функцию, каждая из которых имеет параметр типа float и возвращает значение типа char
    (3) оператор не имеет смысла

    Отметьте правильное создание объекта вложенного класса cls2, если имеется следующее объявление:

    class cls1 { public : int yy; class cls2 { public : int zz; }; };
    (1) cls1::cls2 c2;
    (2) cls2 c2;
    (3) cls2::cls1 c2;

    Объявлены классы:

    class base { int x, y; public: int fun(); }; class derived: protected base { int z; public: int fun1(); }; Определите тип доступа из класса derived к членам x, y, fun класса base.
    (1) x,y – недоступны, fun – protected
    (2) x,y – private, fun - protected
    (3) x,y, fun – protected

    Чему будет равняться переменная "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; }
    (1) 0
    (2) 1
    (3) 4
    (4) компилятор выдаст ошибку компиляции

    Имеется программный код:

    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); Для чего он предназначен?
    (1) для попарного сравнения элементов двух последовательностей
    (2) для нахождения среднего арифметического чисел задаваемой последовательности
    (3) для суммирования чисел задаваемой последовательности
    (4) этот программный код содержит синтаксическую ошибку в предпоследней строке

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

    (1) происходит исключительная ситуация memoryexception
    (2) функция возвращает ноль
    (3) программа аварийно завершается

    Верно ли объявлены следующие классы:

    class MyClass1 { int n; MyClass1(int); ~MyClass1(); }; class MyClass2 { float s; MyClass2(int); ~MyClass2(); };
    (1) верно объявлен только MyClass1
    (2) верно объявлен только MyClass2
    (3) верны оба объявления
    (4) неверны оба объявления

    Что возвращает функция-оператор <<?

    (1) значение выводимого данного
    (2) ссылку на класс ostream
    (3) ссылку на выводимое данное

    Какие качества являются необходимыми для успешного развития системы?

    (1) гибкость
    (2) расширяемость
    (3) переносимость
    (4) универсальность
    (5) оптимальность

    В чем состоит преимущество строго типизированных интерфейсов?

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

    В каких случаях использование интерфейсных классов обеспечивает более эффективный интерфейс?

    (1) если при слиянии двух иерархий с помощью множественного наследования в каждом из них используются виртуальные функции с одним именем, производящие разные операции
    (2) если нужно организовать интерфейс между программой на С++ и программой на другом языке
    (3) если нужно приспособить к запросам пользователя интерфейсные функции, разбросанные по всей программе

    Что будет напечатано в результате выполнения фрагмента программы?

    char s[] = "abcd yuio"; char *str = s; cout << str;
    (1) abcd
    (2) синтаксическая ошибка
    (3) abcd yuio
    (4) ошибка выполнения

    Оператором итерационного цикла является оператор:

    (1) for (инициализация цикла; выражение-условие; список_выражений) тело_цикла
    (2) while (выражение-условие) тело_цикла
    (3) do тело_цикла while (выражение-условие)

    Что будет напечатано в результате работы следующей программы?

    #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; }
    (1) 5 2
    (2) 5 4
    (3) 2 1
    (4) ошибка компиляции

    Выберите правильное объявление дружественной функции:

    (1) class A { public: friend bool fun(A & obj1, A & obj2); };
    (2) class A { public: bool friend fun(A & obj1, A & obj2); };
    (3) class A { public: bool fun(A & obj1, A & obj2) friend; };

    Определены классы:

    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; /* ??????????? */ } Какие из следующих операторов приведут к ошибкам компиляции?
    (1) cout << (*obj).gety() << endl;
    (2) cout << obj->getx() << endl;
    (3) cout << obj.getz() << endl;

    К операторам языка С++, которые нельзя перегружать, относят

    (1) #
    (2) []
    (3) *

    Определен шаблон и описаны объекты класса:

    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; Какой из следующих операторов не содержит ошибки:
    (1) y2=y4
    (2) y1=y2
    (3) y1=y3
    (4) y1=y4

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

    #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

    Член класса, объявленный с атрибутом доступа protected:

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

    Что выведет на экран фрагмент программы int a = 12; cout << '(' << setw(0) << a << ')';?

    (1) (12)
    (2) ()
    (3) (12.0)

    При проектировании компонент полезно:

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

    Интерфейс определен следующим образом:

    class X { Y* a; Z & b; public: void f(const char*); void h(int, ...); void g(int[10], int); } Какая проблема из перечисленных ниже может возникнуть при его использовании?
    (1) в функции X::f неизвестна длина строки
    (2) в функции X::h может быть произвольное число параметров
    (3) типы Y и Z используются так, что их определения должны быть известны

    Для чего предназначен сервер заявок?

    (1) для обслуживания заявок на уничтожение объектов
    (2) для хранения адресов объектов и указателей на соответствующие им функции очистки памяти
    (3) для удаления объектов, не удаленных с помощью явных операций

    Какие из нижеприведенных описаний являются определениями?

    (1) extern int g;
    (2) float fun(int,double);
    (3) float x = 10.0;
    (4) const float pi = 3.14159;
    (5) enum{zero,one,two};

    Нужно выделить память для одномерного массива А, состоящего из 10 элементов и затем освободить эту память. Какие из приведенных операторов пригодны для этой цели?

    (1) int *A; A = new int(10); … delete [] A;
    (2) int *A; A = new int[10]; … delete [] A;
    (3) int A = new int[10]; … delete [] A;;
    В программе имеется функция с прототипом int func(int k, double f). Какое из следующих объявлений не приведет к ошибке компиляции?
    (1) char func(int m, void(double g))
    (2) int func(double x, int y)
    (3) func(int m, void(double g = 3.14))

    Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором по умолчанию?

    (1) T();
    (2) T(int, int);
    (3) T(const A&);

    Определены классы:

    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();
    (1) функция класса С
    (2) функция класса А
    (3) функция класса В

    Какой из перечисленных ниже операторов не может быть перегружен?

    (1) .
    (2) |
    (3) >>

    Выберите вариант правильного объявления шаблона класса 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(){};
    (1) первый
    (2) второй
    (3) оба верны

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

    #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) программа ошибочна

    Операции отношения языка С++:

    (1) ==
    (2) !=
    (3) <
    (4) >
    (5) =
    (6) <=
    (7) >=
    (8) <>

    Что будет выведено в результате

    double x = 12.4; cout << setw(5) << x << setw(3) << setfill('*')<< "" << endl;
    (1) "12.40***"
    (2) " 12.4***"
    (3) "12.4 * *"
    (4) "12.40"

    Что понимается под эволюцией программного обеспечения?

    (1) внесение изменений
    (2) устранение ошибок

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

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

    Определены классы:

    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?
    (1) конкретный тип
    (2) абстрактный тип
    (3) узловой класс
    (4) интерфейсный класс
    (5) управляющий класс

    Верен ли нижеприведенный код? Каков результат его работы?

    #include <iostream> #include "conio.h" int main() { enum {t, x, y, z ,w}; cout<<t+x+y+z+w; getch(); return 0; }
    (1) данный код неверен
    (2) код верен, его результат 5
    (3) код верен, его результат 10
    (4) код верен, его результат 6

    Каково назначение параметра argv программы main?

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

    Какие из следующих прототипов функций содержат ошибки?

    (1) void display(int x=1, char *s);
    (2) void * func();
    (3) void write(void);
    (4) int[10] sum( int *, int );
    (5) int ff( int a, int b = 0, int с = 0 );

    Какие утверждения являются правильными?

    (1) имя деструктора совпадает с именем класса, но предваряется символом ~
    (2) деструктор может иметь возвращаемое значение
    (3) классу без деструктора предоставляется деструктор по умолчанию
    (4) деструкторы можно перегружать
    (5) деструкторы не наследуются
    (6) можно определить указатель на деструктор

    Какие функции называются чисто виртуальными?

    (1) виртуальные функции, объявленные в разделе private
    (2) виртуальные деструкторы
    (3) виртуальные функции, не возвращающие никакого значения
    (4) виртуальные функции без параметров
    (5) виртуальные функции, к описанию которых добавлен инициализатор =0

    Сколько операндов должна иметь операторная функция бинарного оператора, объявленная как глобальная функция?

    (1) 0
    (2) 1
    (3) 2
    (4) 3

    Заголовок обобщенного метода print шаблона List имеет вид template <class Data> void List <Data>::print();. Что для данной записи обозначает следующее:

    void List <char>::print(){ ... }
    (1) специализированный метод для вывода списка символов
    (2) специализацию итераторов
    (3) ничего, так как эта запись ошибочна
    (4) вывод указателей на массив макросов

    Класс 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

    Какая функция должна присутствовать в каждой программе С++?

    (1) cout
    (2) main;
    (3) begin

    Какой заголовочный файл нужно подключить, чтобы использовать объекты классов ofstream, ifstream, fstream?

    (1) iostream.h
    (2) stdio.h
    (3) fstream.h
    (4) iomanip.h

    Какие выделяются абстракции?

    (1) сущности
    (2) развития
    (3) абстрактной машины
    (4) поведения
    (5) организации

    Перечислите верные ответы:

    (1) полиморфизм позволяет именам обозначать объекты разных классов
    (2) полиморфизм реализуется с помощью наследования и виртуальных методов
    (3) полиморфизм позволяет воздействовать на разнотипные объекты одинаковым образом

    Какая из функций является чисто виртуальной?

    (1) virtual void f();
    (2) virtual void f(int x)=0;
    (3) virtual void f(){};

    Что будет выведено на экран в результате выполнения приведенной ниже программы:

    #include "iostream.h" #include "conio.h" const int a=144; int main() { a=12; cout<<a; getch(); return 0; }
    (1) 0
    (2) 144
    (3) 12
    (4) компилятор выдаст ошибку компиляции

    Каким будет результат работы следующей программы?

    int a=5 >> 3; float b = 5.5f; b+= ++a * 2; cout << b;
    (1) 8
    (2) 7.5
    (3) 7
    (4) 6.5

    Выберите корректные (компилируемые) части кода:

    1. void func (int i , int x = 0); 2. void func (int i , int x = 0, int y);
    (1) первая
    (2) вторая
    (3) обе верны
    (4) обе ошибочны

    Дано определение классов:

    class MyClass0 { public: int x; //... }; class MyClass1 : MyClass0 { //... }; Какой статус доступа будет иметь компонент "x" класса "MyClass0" в производном классе "MyClass1"?
    (1) public
    (2) protected
    (3) private
    (4) ни один из представленных

    Объявлен некоторый класс A. Функция объявляется внутри класса A. Выберите корректные варианты объявления функции перегрузки оператора.

    (1) A operator+(A&a, A&b);
    (2) A operator+(const A&a);
    (3) A operator+(A a);

    Можно ли создать шаблон c несколькими параметрами?

    (1) можно
    (2) нельзя
    (3) зависит от параметров

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

    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) все

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

    (1) определите, какие процедуры вам нужны, используйте лучшие из известных алгоритмов
    (2) определите, какие модули вам нужны. Поделите программу так, чтобы данные были скрыты в этих модулях
    (3) определите, какие типы вам нужны. Предоставьте полный набор операторов для каждого типа
    (4) определите, какой класс вам нужен, предоставьте полный набор операций для каждого класса. Общность классов выразите явно, с помощью наследования

    В файлы 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;
    (1) 1433
    (2) 1234
    (3) 1334

    Какими свойствами обладают объекты?

    (1) состоянием
    (2) поведением
    (3) идентичностью

    Может ли деструктор быть виртуальным?

    (1) может
    (2) не может

    Выберите правильные записи констант с плавающей точкой:

    (1) 3.32
    (2) .892
    (3) 3.2e10

    Что определяет операция sizeof(str);?

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

    Какие команды используются для создания библиотеки?

    (1) $ CC -c список_ файлов
    (2) $ ar cr имя_библиотеки список_ файлов с расширением о
    (3) $ ranlib имя_библиотеки
    (4) $ CC имя_библиотеки

    Какими по умолчанию являются элементы класса?

    (1) protected
    (2) public
    (3) private

    Каков будет результат , если конструктор абстрактного класса вызовет чисто виртуальную функцию?

    (1) ошибка на этапе компиляции
    (2) ошибка на этапе связывания
    (3) результат непредсказуем

    Каков синтаксис функций (или операторов) преобразования объекта одного типа в объект другого типа?

    (1) operator <имя нового типа>();
    (2) <имя нового типа> operator ();
    (3) operator <имя нового типа>(<имя старого типа>);

    Чем отличается шаблон функции от обычной функции?

    (1) ничем, это обычная функция
    (2) типом возвращаемого значения
    (3) типом параметров
    (4) тем, что в шаблоне типы параметров не определены

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

    (1) unexpected()
    (2) terminate()
    (3) abort()
    Для чего используется шаблон?
    (1) для описания функции или класса с явным указанием типа
    (2) для описания функции или класса без явного указания типа
    (3) для описания функции или класса c применением только пользовательских типов данных

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

    #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(); }
    (1) будет создан текстовый файл "C:\tst.txt" с содержимым "5 10 25 Test"
    (2) будет выведено сообщение "Ошибка создания файла"
    (3) будет создан текстовый файл "C:\Tst" с содержимым "5 10 25 Test"
    (4) будет создан двоичный файл
    (5) в ходе выполнения возникнет исключение

    Что должно стать результатом анализа создаваемой системы?

    (1) описание архитектуры
    (2) прототипы системы
    (3) выработка общих тактических приемов
    (4) описание назначения системы

    Выберите верные утверждения для операторов new и delete, перегруженных в базовом классе:

    (1) они будут унаследованы в производных классах
    (2) они не могут быть переопределены в производных классах
    (3) в одном классе можно определить по несколько этих операторов с разным описанием

    Укажите тернарные операции:

    (1) &
    (2) <<
    (3) &&
    (4) ||
    (5) ? :

    Какая директива препроцессору служит для включения в текст файла текста, содержащегося в другом файле?

    (1) define
    (2) ifndef
    (3) include
    (4) extern

    Какой будет результат следующей программы?

    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; }
    (1) 15
    (2) 12
    (3) 16
    (4) ошибка выполнения
    Можно ли использовать виртуальную функцию, имитирующую виртуальный конструктор, для размножения объектов?
    (1) можно
    (2) можно при определенных условиях
    (3) нельзя

    Выберите верное утверждение:

    (1) оператор вызова функции должен быть объявлен как дружественная функция, которая принимает два аргумента
    (2) оператор вызова функции должен быть объявлен как функция-член класса
    (3) вызов функции представляет собой конструкцию операнд_1(операнд_2)
    (4) первый операнд оператора вызова функции – это объект класса, в котором описан operator
    (5) операция вызова функции позволяет пользователю определять число операндов

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

    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); }
    (1) 8.3
    (2) 7.2
    (3) 10.2
    (4) ошибка компиляции

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

    (1) catch
    (2) try
    (3) throw

    Что выведет следующий код?

    сout.width(2); cout << '(' << "abcdef" << ')';
    (1) ()
    (2) (abcdef)
    (3) (ab)
    (4) (a

    Что понимается под компонентом?

    (1) отдельный класс или структура
    (2) множество связанных между собой классов
    (3) функция или процедура
    (4) переменная или константа

    Какое свойство объекта называется инвариантом?

    (1) полностью определяющее состояние объекта
    (2) позволяющее изменить состояние объекта
    (3) проверяющее состояние объекта

    Что представляет собой обширный интерфейс?

    (1) объединение объектов различных классов
    (2) объединение базовых классов представляющих какое-либо понятие
    (3) объединение интерфейсов классов, представляющих множество понятий

    Что будет выведено на экран после выполнения программы?

    void main() { int i, j; j = 0; for( i = 0; i < 10; i++) { j++; if (j == 5) continue; } cout << j; }
    (1) 0
    (2) 5
    (3) 10
    (4) 11
    Изменяются ли параметры, передаваемые в функцию?
    (1) никогда не изменяются
    (2) всегда изменяются
    (3) изменяются, если они переданы по значению
    (4) изменяются, если они переданы по ссылке

    Выберите корректное определение класса Name

    (1) Name class{}
    (2) Name{}
    (3) class Name(){}
    (4) class Name{};

    Верен ли данный код:

    class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };
    (1) да, верен
    (2) нет, он содержит ошибку компиляции во второй строке
    (3) такой код вызовет зацикливание
    (4) код содержит синтаксическую ошибку в последней строке

    Какая ошибка в таком определении шаблона: template <class T, T def_val> class My {};

    (1) ошибки нет
    (2) ошибка во втором параметре типа шаблона
    (3) ошибка в первом параметре типа шаблона

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

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

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

    (1) наличие в программе функций с одним именем и разными возвращаемыми значениями
    (2) наличие в программе функций с одним именем и разными аргументами
    (3) многократный вызов функции в программе

    Какие стандартные потоки имеются в С++?

    (1) ввод cin
    (2) вывод cout
    (3) поток ошибок

    Какие существуют виды иерархии классов?

    (1) наследование
    (2) ассоциация
    (3) использование
    (4) принадлежность

    Какой вид иерархии реализует принадлежность?

    (1) "общее-частное"
    (2) "целое-часть"
    (3) "клиент-сервер"

    Приведите примеры конкретного типа:

    (1) списки
    (2) целые числа
    (3) строки
    (4) символы

    Укажите правильно заданные идентификаторы

    (1) struct
    (2) 2cars
    (3) money$sum
    (4) this_is_a_variable

    Расставьте операторы согласно их приоритета (по восходящей):

  • <<
  • ==
  • sizeof
  • ++
  • (1) 1, 2, 3, 4
    (2) 2, 1, 3, 4
    (3) 1, 4, 3, 2
    (4) 4, 2, 3, 1
    В каких строках программного кода происходит объявления функций? #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); }
    (1) во второй
    (2) в третьей
    (3) в пятой
    (4) в десятой

    Как получить доступ к закрытым членам класса из других объектов?

    (1) через функции-члены класса
    (2) через конструктор класса
    (3) через дружественные функции

    Если записано

    class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано? B b; b.f();
    (1) 2
    (2) 2 1
    (3) 1 2
    (4) 1

    Как можно определить унарную операцию?

    (1) только как функцию, без параметров
    (2) только как функцию, принимающую один параметр
    (3) как функцию, без параметров или как функцию, принимающую один параметр

    Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();

    (1) template <class TT> TT zero() { return 0;}
    (2) template TT zero() { return 0;}
    (3) template <class TT> TT zero { return 0;}

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

    (1) описание типа функции обработки ошибок, использующегося при аварийном завершении программы
    (2) завершение блока программы
    (3) создание списка итераторов типа void
    (4) организация стека с параметрами typedef
    Укажите отличия С++ от С
    (1) обобщенное программирование через шаблоны
    (2) возможность перегрузки операторов
    (3) поддержка пользовательских типов данных
    (4) поддержка указателей на функции
    (5) поддержка обработки исключений

    Какой класс содержит средства управления вводом и выводом?:

    (1) iostream
    (2) ios
    (3) fstream

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

    (1) унаследовать один класс от другого
    (2) создать для них общий базовый класс
    (3) объединить эти два класса в один

    Как правильно задать неизменяемый указатель?

    (1) const int* x=10;
    (2) int *const x =10;
    (3) const int const x = 10;

    Перечислите, что характерно для оператора return?

    (1) возвращает значение типа, указанное в описании функции
    (2) может встречаться только один раз в теле функции
    (3) завершает выполнение функции
    (4) может не содержать возвращаемого значения

    Верно ли такое объявление класса Name?

    class Name { public: int Age; char* name; };
    (1) да, верно
    (2) нет, неправильно заданы указатели
    (3) нет, существует несоответствие в типах
    (4) нет, такое объявление вызовет ошибку компиляции в пятой строке

    Если записано

    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 1
    (2) 1 2
    (3) 1
    (4) ошибка

    Чему будет равна переменная x перед выходом из данной функции?

    void f() { int x = 2; x = x++; }
    (1) 1
    (2) 2
    (3) 3

    Какие шаблоны функций записаны неправильно?

    (1) template <class T> void f(T);
    (2) template <class T> void f(T*);
    (3) <template class T> T f(int);
    (4) template<int i void> f(int = i);

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

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

    Какой тип не определен в стандарте языка С++?

    (1) double
    (2) string
    (3) char
    (4) float
    (5) long double

    Какие манипуляторы указывают, в какой системе счисления должны выводиться числа?

    (1) ends
    (2) dec
    (3) oct
    (4) setw
    (5) hex

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

    (1) селекторы
    (2) модификаторы
    (3) итераторы

    Может ли класс, которому принадлежит другой класс, переопределить виртуальные функции этого класса?

    (1) не может
    (2) может
    (3) может, если принадлежащий класс - абстрактный

    Перечислите принципы управления памятью

    (1) вся память, выделенная в конструкторе, должна освобождаться в деструкторе
    (2) глобальные операторы new и delete должны быть обязательно перегружены в классе
    (3) область, передаваемая оператору new должна быть достаточной для создания объекта

    Укажите неправильное объявление перечислимого типа?

    (1) enum avto {Lada, Ford, Toyota};
    (2) enum avto {Lada=1, Ford=2, Toyota=3};
    (3) enum avto {1, 2, 3};

    Перечислите операторы выбора:

    (1) if
    (2) while
    (3) for
    (4) switch

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

    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; }
    (1) z=[16] x=[0]
    (2) ошибка компиляции в строке "return x*factorial(x-1);" функции "int factorial(int x)": вызов функции самой себя
    (3) z=[16] x=[6]
    (4) ошибка компиляции в строке "y = factorial(3);" функции "int Func(int y)" : попытка присвоить значение входному параметру

    Верно ли такое объявление класса?

    class A { int x; };
    (1) да, верно
    (2) нет, отсутствуют указатели
    (3) нет, существует несоответствие в типах
    (4) нет, такое объявление не формирует ссылок, и потому неверно

    В каком порядке вызываются конструкторы и деструкторы?

  • Конструктор базового класса
  • Деструктор базового класса
  • Конструктор производного класса
  • Деструктор производного класса
  • (1) 1, 2, 3, 4
    (2) 1, 3, 2, 4
    (3) 3, 1, 2, 4
    (4) 1, 3, 4, 2
    (5) 3, 1, 4, 2

    Какой из этих операторов сложения возвращает сумму по ссылке?

  • operator+();
  • operator++();
  • (1) 1
    (2) 2
    (3) 1 и 2
    (4) никакой

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

    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); }
    (1) 6 7
    (2) 5 10
    (3) ошибка компиляции

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

    (1) ни одного
    (2) один
    (3) несколько
    Отметьте истинное высказывание:
    (1) нельзя создать объект абстрактного класса
    (2) нельзя определить указатель на тип абстрактного класса
    (3) деструктор абстрактного класса всегда должен быть виртуальным

    Если имеется код int x; cin >> x; и вводится "1.2", то что будет в переменной x?

    (1) 1
    (2) 2
    (3) 1.2
    (4) другое
    (5) произойдет ошибка

    Что верно по отношению к тестированию?

    (1) следует начинать, как только появляется работающая система
    (2) следует начинать только после полного создания программы
    (3) средства тестирования желательно прямо встраивать в систему

    Каким образом можно избежать неоднозначности при делегировании?

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

    Реализован ли в стандарте С++ "сборщик мусора"?

    (1) да
    (2) нет

    Как обратиться к элементу x переменной v, объявленной следующим образом:

    struct A {char *x; int y;} *v;
    (1) v.x
    (2) x
    (3) v->x

    Что будет напечатано в результате работы следующей программы?

    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; }
    (1) 1 2
    (2) 1 3
    (3) 2 3
    (4) ошибка выполнения

    Отметьте правильный прототип функции, использующий в качестве параметра многомерный массив int m[10][2]:

    (1) void F(int m[][2]);
    (2) int F(int m[]);
    (3) void F(int Ar[][], int sz);

    Что будет выведено на экран?

    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;
    (1) 1
    (2) 2
    (3) ошибка компиляции

    Какие из перечисленных операторов не следует реализовывать как внешние функции, а только как функции-члены класса:

    (1) =
    (2) ()
    (3) ==
    (4) +
    (5) ->

    Синтаксис объявления шаблона класса имеет вид:

    (1) template <список-параметров_шаблона> определение_класса
    (2) template (список-параметров_шаблона) определение_класса
    (3) <список-параметров_шаблона> template определение_класса

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

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

    Основные типы данных, наиболее приближенные к «аппаратной реализации»:

    (1) boolean
    (2) char
    (3) int
    (4) short
    (5) long
    (6) real

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

    (1) iostream.h
    (2) stream.h
    (3) fstream.h
    (4) constream.h

    В чем заключается самая типичная перестройка иерархии классов?

    (1) выделение общей части двух классов в новый класс
    (2) создание нового класса, производного от существующих
    (3) разбиение класса на части

    Что следует использовать для представления понятий?

    (1) встроенные типы
    (2) классы
    (3) функции

    К какому виду относится класс, объявленный так:

    class dim { public: virtual void add(X*) = 0; virtual void sub(X*) = 0; virtual int sum() = 0; virtual ~dim(){}; }
    (1) конкретный тип
    (2) абстрактный тип
    (3) узловой класс
    (4) интерфейсный класс
    (5) управляющий класс

    Что выведет на экран следующий код:

    int x = 2; while (x != 12) { cout << x << endl; x = x + 2; }
    (1) число 12
    (2) все четные числа до 12
    (3) все числа от 1 до 12
    (4) синтаксическую ошибку

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

    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; }
    (1) 18
    (2) 15
    (3) 21
    (4) ошибка выполнения

    Объявлен класс class A { public: int a,b,c;}; A obj; Как обратиться к переменной с?

    (1) obj.c
    (2) obj->a->b->c
    (3) obj->c
    (4) obj->a.c
    Имеется запись (monstr - базовый класс, daemon - производный): // Описывается указатель на базовый класс: monstr *р: // Указатель ссылается на объект производного класса: р = new daemon: При выполнении виртуального метода p->draw(1, 1, 1, 1); будет вызван
    (1) метод класса monstr
    (2) метод класса daemon
    (3) идентификатор класса monstr

    Класс Point имеет данные-члены int x,y. Какая из следующих операторных функций содержит ошибку?

    (1) Point& operator--(Point& a) { a.x--;a.y--; return a;}
    (2) Point Point::operator+(Point& a) { Point b; b.x=x+a.x; b.y=y+a.y; return b;};
    (3) double Point::operator() {return sqrt(x*x+y*y);}

    Какие два основных вида шаблонов существуют в языке С++?

    (1) шаблоны функций и классов
    (2) шаблоны конструкторов и деструкторов
    (3) шаблоны классов и структур

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

    (1) cout
    (2) cerr
    (3) throw

    Объявлен класс 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(); Как обратиться к переменной с?
    (1) d.c;
    (2) d.get_c();
    (3) d->get_c();
    (4) d->c;

    Что будет выведено на экран в результате работы следующего фрагмента программы:

    double x = 123.456789; printf("%f\n",x);
    (1) 1.234568e+02
    (2) 123.457
    (3) 123.456789

    Что из перечисленного ниже облегчается, если программа имеет ясную внутреннюю структуру?

    (1) тестирование
    (2) переносимость
    (3) компиляция
    (4) понимание
    (5) использование

    Перечислите верные высказывания:

    (1) интерфейс представляет собой абстрактный класс
    (2) все методы интерфейса являются закрытыми
    (3) можно наследовать класс от нескольких интерфейсов

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

    (1) const char* name()const;
    (2) int has_base(const Type_info*, int direct=0) const;
    (3) int same(const Type_info* p) const;
    (4) int can_cast(const Type_info* p) const;

    Можно ли определить длину строки с помощью функции?

    int len(char *s) { int n=0; while (*s++)n++; return n;}
    (1) можно
    (2) нельзя
    (3) бесконечный цикл
    (4) синтаксическая ошибка

    Что произойдет при выполнении кода:

    for (i = 0; i < 5;) { continue; i--; func(); }
    (1) функция func выполнится 5 раз
    (2) функция func не выполнится ни разу
    (3) функция func будет выполняться бесконечно
    (4) функция func выполнится 1 раз

    Что описывает оператор typedef void (*ptr)(char *);

    (1) тип указателя на функции, каждая из которых имеет параметр типа char * и не возвращает значения
    (2) тип указателя на функции, каждая из которых не имеет параметров и возвращает строку символов
    (3) оператор не имеет смысла

    Определены классы:

    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; Какой из следующих операторов приведет к ошибкам компиляции?
    (1) cout << obj.getx() << endl
    (2) cout << obj.gety() << endl
    (3) cout << obj.getz() << endl

    Выберите верное утверждение:

    (1) операцию косвенного обращения к члену -> можно определить как унарную постфиксную операцию
    (2) объявление функции косвенного обращения имеет вид Имя_класса* operator->()
    (3) объявление функции косвенного обращения имеет вид Имя_класса* operator->
    (4) в случае перегрузки оператора доступа к членам класса доступ к этим членам осуществляется путем указания объекта перед стрелкой
    (5) в случае перегрузки оператора доступа к членам класса доступ к этим членам осуществляется путем указания перед стрелкой указателя на объект

    Отметьте все неверные утверждения:

    (1) генерация класса из шаблона создает объект этого класса
    (2) память, занимаемая объектом класса, сгенерированного из шаблона, освобождается автоматически
    (3) шаблон не является классом
    (4) все классы-шаблоны наследуют класс Template
    (5) объекты классов, сгенерированных из шаблонов, занимают в памяти меньше места, чем объекты других классов

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

    (1) приводит к аварийной остановке программы
    (2) не может быть обработана в блоке try catch
    (3) вызывает остановку, если происходит при откате стека

    В каком случае определение класса приведет к ошибке компиляции:

    А) class MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); }; В) struct MyClass { int n; // некий код ... int ADD(int n); MyClass(int); ~MyClass(); };
    (1) только в "А"
    (2) только в "В"
    (3) в обоих определениях
    (4) оба определения верны

    Какой из следующих прототипов следует использовать для доопределения оператора << для вывода пользовательских типов?

    (1) имя_пользовательского_типа operator << (ostream&)
    (2) ostream& operator<< (ostream&, имя_пользовательского_типа)
    (3) ostream& operator<< (имя_пользовательского_типа)

    Какие действия предполагают определения интерфейсов классов?

    (1) определить, какие из функций следует сделать общими, какие - защищенными
    (2) определить точный тип операций класса
    (3) определить, какие из данных класса следует сделать доступными другим классам

    Какое преимущество дает статическая типизация?

    (1) позволяет переместить контроль ошибок с этапа выполнения на этап компиляции
    (2) позволяет создать более эффективную программу
    (3) позволяет обнаружить все ошибки

    Каково назначение управляющих классов?

    (1) управляющий класс предназначен для управления атрибутами объекта
    (2) управляющий класс предназначен для управления памятью, выделяемой объектам
    (3) управляющий класс определяет интерфейс объекта и содержит ссылку на содержательную часть объекта

    Что будет напечатано в результате выполнения фрагмента программы?

    char s[]="abcd1234"; char *str = s + 4; cout << str;
    (1) abcd1234
    (2) d1234
    (3) 1234
    (4) abcd

    Оператором цикла с постусловием является оператор:

    (1) for (инициализация цикла; выражение-условие; список_выражений) тело_цикла
    (2) while (выражение-условие) тело_цикла;
    (3) do тело_цикла while (выражение-условие)

    Что будет напечатано в результате работы следующей программы?

    #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; }
    (1) 4 8 16
    (2) 2 3 4
    (3) 4 8 4
    (4) ошибка компиляции
    Выберите варианты правильного объявления классов?
    (1) class A { A* pNext; };
    (2) class A { int Age; void Func(int x){ Age = x;} };
    (3) class A { void F(); public: int Func(int x){ void* F();} };

    Выберите правильную синтаксическую конструкцию наследования:

    (1) class имя_класса : список_базовых_классов { список_элементов класса}
    (2) class имя_класса : : список_базовых_классов { список_элементов класса}
    (3) class имя_класса ( список_базовых_классов ){ список_элементов класса}
    (4) class имя_класса [ список_базовых_классов] { список_элементов класса}

    В чем ошибка при таком определении бинарного оператора: String operator+()?

    (1) ошибки нет
    (2) оператор сложения нельзя переопределять
    (3) для бинарного оператора должен быть задан параметр

    Определен шаблон и описаны объекты класса:

    template <class A> class Array { /*…*/}; Array <int> x1; Array <int> x2; Array <char> x3; Array <short> x4; Какие из следующих операторов не содержат ошибки:
    (1) x1=x2
    (2) x2=x3
    (3) x1=x3
    (4) x2=x4

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

    #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

    Член класса, объявленный с атрибутом доступа private:

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

    Что выведет на экран фрагмент программы double a = 17.135; cout << '(' << setw(8) << setfill('#') << a <<')'; ?

    (1) (##17.135)
    (2) (17.135##)
    (3) ((##17.135#######))

    Какие из перечисленных ниже приемов могут служить способами экспериментирования?

    (1) использование прототипов
    (2) математическое моделирование
    (3) тестирование

    Интерфейс определен следующим образом:

    class X { Y* a; Z & b; public: void f(const char*); X& get(int); void g(int[], int); } Какая проблема может возникнуть при его использовании?
    (1) в функции X::f неизвестна длина строки
    (2) типы Y и Z используются так, что их определения должны быть известны
    (3) функция X::g имеет низкий уровень абстракции

    Может ли быть освобождена память, выделенная объектам класса Х с помощью класса Рool?

    (1) может при вызове оператора delete
    (2) не может до окончания работы программы
    (3) может, при уничтожении объекта Pool
    Какие из нижеприведенных описаний являются определениями?
    (1) extern float pi;
    (2) struct st;
    (3) float x2(float x) { return x*x; }
    (4) struct{char a; int b;} my_str;

    Выберите корректные части кода

    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:; }
    (1) 1 и 2
    (2) 2 и 3
    (3) 1 и 3
    (4) все верны

    В каких случаях произойдет ошибка компиляции?

    (1) void f(int i) { return i++;}
    (2) int ZZ(float i, int w = 2) { i += w; return; }
    (3) int x(int w) { int x = w; return w; return x++; }

    Объявляется класс T. Какой из следующих прототипов конструкторов является конструктором копирования?

    (1) T();
    (2) T(int, int);
    (3) T(const T&);

    Определены классы:

    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();
    (1) функция класса С
    (2) функция класса А
    (3) функция класса В

    Какие операторы языка С++ нельзя перегружать?

    (1) /
    (2) ::
    (3) +

    Выберите вариант правильного объявления шаблона класса 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(){};
    (1) первый
    (2) второй
    (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) девятая

    Арифметические операции языка С++:

    (1) +
    (2) -
    (3) ^
    (4) /
    (5) %

    Какой файл необходимо включить, если предполагается использование манипуляторов с параметрами?

    (1) iostream.h
    (2) stdio.h
    (3) iomanip.h

    Какие бывают иерархии?

    (1) классов
    (2) объектов
    (3) функций
    (4) шаблонов

    Может ли конструктор быть статическим?

    (1) не может
    (2) может

    К какому виду относится класс, объявленный так:

    class vector_handler { vector* p; public: vector* operator->() { return p; } vector_handler(vector* pp) : p(pp) { } };
    (1) конкретный тип
    (2) абстрактный тип
    (3) узловой класс
    (4) интерфейсный класс
    (5) управляющий класс

    Отметьте правильное определение константы:

    (1) const int DOZEN = 12;
    (2) const double;
    (3) double COFF = (const)1.2e10;
    (4) все неверны

    Какое значение может иметь параметр argc функции main?

    (1) всегда больше 1
    (2) 0
    (3) всегда не меньше 1

    Какие из следующих прототипов функций содержат ошибки?

    (1) void display(int x=1, char *s=”Hello!”);
    (2) void func(...);
    (3) void write(int a, b, c);
    (4) double[2] sum( int *, int );
    (5) float func(float, int ...);
    (6) int ff1(int x* =3);

    Какие служебные слова предназначены для указания видимости членов класса?

    (1) public
    (2) private
    (3) protected
    (4) void
    (5) const
    (6) static

    Что обозначает следующая запись?

    class В{ / * ... * / }; class С: public В{ /* ... */ }; С* с = new С; В* b = dynamic_cast<B*>(c);
    (1) детерминацию базового класса
    (2) понижающее преобразование
    (3) повышающее преобразование
    (4) инициализацию класса

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

    (1) 0
    (2) 1
    (3) 2
    (4) 3

    Что обозначает запись typedef basic_filebuf<char> filebuf;?

    (1) специализацию шаблона класса basic_filebuf для типа данных char
    (2) специализированный вывод итераторов типа char
    (3) специализацию массива вывода идентификаторов типа char
    (4) ничего, эта запись ошибочна

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

    (1) могут
    (2) не могут
    (3) зависит от компилятора

    Инкапсуляция - это:

    (1) механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает то и другое от постороннего вмешательства
    (2) процесс, посредством которого один объект может приобретать свойства другого
    (3) способность объектов различных классов отвечать на запрос функции сообразно типу своего класса
    (4) возможность определять новые типы данных, с которыми можно работать почти так же, как и с основными типами данных

    Где содержатся операции ввода из файла и вывода в файл?

    (1) iostream.h
    (2) stdio.h
    (3) fstream.h
    (4) iomanip.h

    Как называется выделение существенных характеристик объекта, отличающих его от других видов объектов?

    (1) абстракция
    (2) инкапсуляция
    (3) полиморфизм
    Когда предпочтительно использовать представления объекта класса Х описанием Х* вместо Х&?
    (1) если нужно передавать объекты в качестве параметров
    (2) если приходится перестраивать указатель на объект–элемент в течение жизни объекта-владельца
    (3) если известно, что значение указателя не будет изменяться

    Может ли виртуальная функция быть встроенной?

    (1) может
    (2) не может
    (3) может, только если ее объявить как inline

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

    (1) -0х3C
    (2) -022
    (3) -4.8
    (4) -0.1е4

    Каким будет результат работы следующей программы?

    int a = 3 << 1; double b = 5; b += ++a * 2; cout << b;
    (1) 10
    (2) 19
    (3) 18
    (4) 23

    Выберите верные утверждения:

    (1) если функция объявлена встроенной (inline), то компилятор подставляет в точку вызова ее тело
    (2) если функция не является встроенной, то в точке вызова происходит передача управления функции, выполнение вызывающей функции приостанавливается
    (3) внутри определения функции можно размещать определения других функций
    (4) в каждой функции обязательно должен быть оператор возврата return
    (5) функция должна быть описана до первой ссылки на нее
    Выберите наиболее правильное определение функций-членов класса:
    (1) функции, объявляемые внутри описания класса
    (2) функции, имеющие доступ к данным-членам класса
    (3) функции, которые могут манипулировать объектами класса
    (4) функции, определяющие интерфейс класса
    Выберите правильные утверждения относительно следующего кода: class hero{ friend class mistress; } class mistress{ void f1 (); void f2(); }
    (1) функция f1 является дружественной по отношению к классу hero
    (2) функция f2 является дружественной по отношению к классу hero
    (3) функция f1 не является дружественной по отношению к классу hero
    (4) функция f2 не является дружественной по отношению к классу hero

    Выберете корректные объявления

    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);
    (1) первое
    (2) второе
    (3) оба верны

    Есть ли ошибка в таком объявлении класса:

    class A { public: template <class Type> void f1( Type ) {}; template <class Type> int f2( Type ) {}; };
    (1) ошибки нет
    (2) класс следует объявить со словом template
    (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) ни один

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

    (1) определите, какие процедуры вам нужны, используйте лучшие из известных алгоритмов
    (2) определите, какие модули вам нужны. Поделите программу так, чтобы данные были скрыты в этих модулях
    (3) определите, какие типы вам нужны. Предоставьте полный набор операторов для каждого типа
    (4) определите, какой класс вам нужен, предоставьте полный набор операций для каждого класса. Общность классов выразите явно, с помощью наследования

    В файлы 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;
    (1) 3412
    (2) 1232
    (3) 1233

    Какая функция должна быть в классе обязательно?

    (1) конструктор
    (2) деструктор
    (3) может не быть никаких

    Каким может быть наследование?

    (1) внешним
    (2) внутренним
    (3) защищенным

    Может ли статическая функция-член быть виртуальной?

    (1) может
    (2) не может

    Выберите правильные записи символьных констант:

    (1) '1'
    (2) 0xuf34
    (3) 'f'

    Перечислите операторы сравнения:

    (1) =
    (2) ==
    (3) <<
    (4) <
    (5) >>
    (6) &
    (7) !=

    Как использовать библиотеку math.a в своей программе myprog.c?

    (1) надо задать режим трансляции командой $ CC myprog.c math.a
    (2) надо включить библиотеку как заголовочный файл директивой include
    (3) надо поместить библиотеку в текущий каталог

    Объявлены классы:

    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; Какие из следующих операторов приведут к ошибкам компиляции?
    (1) c->a = 7;
    (2) A* p = (A*)c;
    (3) d->a = 7;
    (4) A* p = d;

    Может ли конструктор быть виртуальным?

    (1) может
    (2) может при определенных условиях
    (3) не может

    Выберите верные утверждения:

    (1) функция преобразования не имеет параметров
    (2) в функции преобразования не задается тип возвращаемого значения
    (3) функция преобразования не наследуется

    Выберите правильный вариант программного кода:

    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(){} };
    (1) первый
    (2) второй
    (3) оба верны
    (4) оба ошибочны

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

    (1) terminate()
    (2) abort()
    (3) exit()

    Что дает использование обработки особых ситуации?

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

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

    #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(); }
    (1) будет создан текстовый файл "C:\tst.txt" с содержимым "1 11 2 file"
    (2) будет выведено сообщение "Ошибка создания файла"
    (3) будет создан текстовый файл "C:\Tst" с содержимым "1 11 2 file"
    (4) будет создан двоичный файл
    (5) в ходе выполнения возникнет исключение

    Что должно стать результатом концептуализации создаваемой системы?

    (1) описание архитектуры
    (2) прототипы системы
    (3) выработка общих тактических приемов
    (4) описание назначения системы

    Какой тип наследования употребляется чаще всего?

    (1) private
    (2) public
    (3) protected

    Можно ли определить оператор new, принимающим несколько параметров?

    (1) нельзя
    (2) можно
    Какой результат будет у следующего выражения? int main() { char *s1; char s2[] = "Hello"; *s1 = "Hi!"; s1[2] = s2[1]; cout << s1; }
    (1) Hi
    (2) Hie
    (3) He
    (4) ошибка выполнения

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

    int main() { int i = 5; int* pi = &i; void * v = pi; pi = v; cout << *pi; return 0; }
    (1) 5
    (2) 0
    (3) ошибка компиляции

    Какой синтаксис применяется для использования директивы include?

    (1) # include <header_name>
    (2) # include "header_name"
    (3) # include 'header_name'
    (4) # include header_name

    Какой будет результат следующей программы?

    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; }
    (1) 15
    (2) 10
    (3) 25
    (4) ошибка выполнения

    Что будет напечатано в результате работы программы:

    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); }
    (1) A A B A A B
    (2) A В B A В B
    (3) А А А В В В

    Объявлен класс:

    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];} Какие из следующих операторов приведут к ошибкам компиляции?
    (1) Point Pt(1,2,3,"MyPt");
    (2) cout<<Pt->GetX()<<'\t'<<Pt->GetY()<<'\t'<<Pt->GetZ()<<endl;
    (3) cout<<Pt->x<<'\t'<<Pt->y<<'\t'<<Pt->z<<endl;
    (4) cout<<Pt->s<<endl;

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

    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); }
    (1) 13
    (2) 18
    (3) 17
    (4) ошибка компиляции

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

    (1) catch
    (2) try
    (3) throw

    Класс А определен следующим образом:

    class A { int x; }; Отметьте корректный вариант обращения и использования класса A:
    (1) A a[100];
    (2) A a = (A)12;
    (3) A a = new A();