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



Авторы специализируются на тестах по любым дисциплинам! Средний балл по тестам 4,6.
 
Любые вопросы по дистанционному обучению. Тесты, письменные работы, сессия под ключ.
 
Известный интернет сайт, помощь по любым учебным вопросам - от теста до дипломной работы. Личный менеджер.
 
Крупная биржа студенческих работ. Закажи напрямую у преподавателя. Низкие цены, стена заказов.
 
Биржа студенческих работ. Потребуется самостоятельная выгрузка работ.
 

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

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; } };

  • использование
  • принадлежность
  • (Правильный ответ) наследование

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

#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(); }

  • будет выведено сообщение «Ошибка создания файла«
  • (Правильный ответ) будет создан текстовый файл «C:\test.txt» с содержимым «1 25 2.5e+07 Test«
  • будет создан двоичный файл
  • будет создан текстовый файл «C:\Test» с содержимым «1 25 2.5e+07 Test«
  • в ходе выполнения возникнет исключение

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

 

  • Конструктор базового класса
  • Деструктор базового класса
  • Конструктор производного класса
  • Деструктор производного класса

 

  • 1, 3, 2, 4
  • 3, 1, 2, 4
  • (Правильный ответ) 1, 3, 4, 2
  • 3, 1, 4, 2
  • 1, 2, 3, 4

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

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

  • четвертая
  • пятая
  • (Правильный ответ) девятая
  • вторая

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

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

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

  • внесение изменений
  • (Правильный ответ) устранение ошибок
  • установка и настройка

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

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];}

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

  • (Правильный ответ) cout<<Pt->x<<‘\t'<<Pt->y<<‘\t'<<Pt->z<<endl;
  • (Правильный ответ) cout<<Pt->s<<endl;
  • Point Pt(1,2,3,»MyPt»);
  • cout<<Pt->GetX()<<‘\t'<<Pt->GetY()<<‘\t'<<Pt->GetZ()<<endl;

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

  • (Правильный ответ) абстракция
  • полиморфизм
  • инкапсуляция

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

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

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

class cls1 { public : int yy; class cls2 { public : int zz; }; };

  • cls2 c2;
  • (Правильный ответ) cls1::cls2 c2;
  • cls2::cls1 c2;

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

  • устранение ошибок
  • (Правильный ответ) внесение изменений

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

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

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

class A{ int x;};

  • A *\a* = [120];
  • (Правильный ответ) A a[100];
  • A /a*/ = [11];
  • A int [20];

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

  • (Правильный ответ) class B{ … }; class A { friend class B; }; class C { friend class A; };
  • (Правильный ответ) class B{ … }; class A { friend class B; };
  • class B{ … }; class A { friend class A::B; };

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

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

Когда предпочтительно использовать представления объекта класса Х описанием Х* или Х&?

  • если известно, что значение указателя не будет изменяться
  • (Правильный ответ) если приходится перестраивать указатель на объект–элемент в течение жизни объекта-владельца
  • (Правильный ответ) если нужно передавать объекты в качестве параметров

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

  • malloc, delete
  • (Правильный ответ) new, delete
  • new, free
  • malloc, free

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

int m[3][4] = { { 1, 2, 3, 4}, { 5, 6, 7, 8}, { 9, 10, 11, 12} };

Какое значение содержится в элементе m[2][3]?

  • 10
  • 3
  • 7
  • (Правильный ответ) 12

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

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

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

  • abort()
  • terminate()
  • (Правильный ответ) unexpected()

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

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

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

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

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

  • (Правильный ответ) Hello
  • Hello w
  • Hello world
  • wo

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

char s[] = «»abcd yuio»»; char *str = s; cout << str;

  • ошибка выполнения
  • abcd
  • (Правильный ответ) abcd yuio
  • синтаксическая ошибка

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

#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; }

  • (Правильный ответ) Exception 10 6
  • Exception
  • 10 6
  • Exception 9 6

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

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

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

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;}

  • ошибка компиляции в строке «return x*factorial(x-1);» функции «int factorial(int x)»: вызов функции самой себя
  • z=[16] x=[6]
  • (Правильный ответ) z=[16] x=[0]
  • ошибка компиляции в строке «y = factorial(3);» функции «int Func(int y)» : попытка присвоить значение входному параметру

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

class Name{ public: int Age; char* name;};

  • нет, существует несоответствие в типах
  • (Правильный ответ) да, верно
  • нет, такое объявление вызовет ошибку компиляции в пятой строке
  • нет, неправильно заданы указатели

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

  • (Правильный ответ) операция вывода
  • (Правильный ответ) сдвиг влево
  • меньше или равно

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

  • может
  • (Правильный ответ) не может
  • может, только если ее объявить как inline

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

  • class имя_класса [ список_базовых_классов] { список_элементов класса}
  • (Правильный ответ) class имя_класса : список_базовых_классов { список_элементов класса}
  • class имя_класса ( список_базовых_классов ){ список_элементов класса}
  • class имя_класса : : список_базовых_классов { список_элементов класса}

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

  • (Правильный ответ) 1
  • произойдет ошибка
  • 1.2
  • другое
  • 2

Укажите отличия С++ от С

  • (Правильный ответ) возможность перегрузки операторов
  • (Правильный ответ) поддержка обработки исключений
  • поддержка пользовательских типов данных
  • поддержка указателей на функции
  • (Правильный ответ) обобщенное программирование через шаблоны

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

  • close();
  • (Правильный ответ) terminate();
  • exit();

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

  • (Правильный ответ) obj->c
  • obj->a->b->c
  • obj->a.c

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

  • ни одного
  • несколько
  • (Правильный ответ) один

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

#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;}

  • (Правильный ответ) 00
  • ошибку времени исполнения
  • 0
  • ошибку времени компиляции

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

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 и 3
  • (Правильный ответ) 1 и 2
  • 2 и 3
  • все верны

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

  • (Правильный ответ) int func(double x, int y)
  • char func(int m, void(double g))
  • func(int m, void(double g = 3.14))

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

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

Определена шаблонная функция

template <class T> bool cmp(T a, T b){ return a>b? true : false;};

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

  • b2 = int(b1); bool c = cmp(a1, b2);
  • bool c = cmp(a1, b1);
  • (Правильный ответ) bool c = cmp(a1, int(b1));

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

  • template <class T> void func(T a, T b);
  • template <T> void func( a, b);
  • (Правильный ответ) void func<T>(T a, T b);

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

  • (Правильный ответ) не может
  • может

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

  • (Правильный ответ) (12)
  • ()
  • (12.0)

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

  • (Правильный ответ) описание назначения системы
  • выработка общих тактических приемов
  • описание архитектуры
  • прототипы системы

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

try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (…){код 5}

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

  • catch (b){код 2} и catch (…){код 5}
  • catch (…){код 5}
  • (Правильный ответ) catch (b){код 2}
  • ни один

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

 

  • operator+();
  • operator++();

 

  • 1
  • 1 и 2
  • никакой
  • (Правильный ответ) 2

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

int main(){ char *s1; char s2[] = «»Hello»»; *s1 = «»Hi!»»; s1[2] = s2[1]; cout << s1;}

  • He
  • ошибка выполнения
  • (Правильный ответ) Hie
  • Hi

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

class X { Y a; Z b; void set(Y&); public: void f(const char*); void g(int[10], int); }

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

  • в функции X::f неизвестна длина строки
  • (Правильный ответ) типы Y и Z используются так, что их определения должны быть известны
  • функция X::g имеет низкий уровень абстракции

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

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

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

main() { char s2[] = «»Hi»»; cout << sizeof(«»Hello»») + sizeof(s2); }

  • (Правильный ответ) 9
  • 8
  • 10

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

  • (Правильный ответ) «клиент-сервер»
  • «общее-частное»
  • «целое-часть»

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

  • (Правильный ответ) int has_base(const Type_info*, int direct=0) const;
  • int same(const Type_info* p) const;
  • const char* name()const;
  • int can_cast(const Type_info* p) const;

Можно ли определить реализацию чисто виртуального метода, определённого в классе-родителе?

  • нельзя
  • (Правильный ответ) можно

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

  • <имя нового типа> operator ();
  • (Правильный ответ) operator <имя нового типа>();
  • operator <имя нового типа>(<имя старого типа>);

Класс А определен следующим образом:

class A{ int x;};

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

  • (Правильный ответ) A a[100];
  • A a = (A)12;
  • A a = new A();

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

  • константе eleven присваивается значение, равное сумме значений констант three и four
  • (Правильный ответ) константе eleven присваивается значение 11
  • константе four присваивается значение 3
  • (Правильный ответ) константе three присваивается значение 3

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

struct A {char *x; int y;};A fun(void);

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

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

double x = 123.456789; printf(«»%g\n»»,x);

  • 123.456789
  • 1.234568e+02
  • (Правильный ответ) 123.457

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

#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; }

  • (Правильный ответ) 5 2
  • ошибка компиляции
  • 2 1
  • 5 4

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

  • protected
  • (Правильный ответ) public
  • private

Чему будет равняться переменная «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
  • 4
  • 0
  • (Правильный ответ) компилятор выдаст ошибку компиляции

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

  • шаблоны конструкторов и деструкторов
  • (Правильный ответ) шаблоны функций и классов
  • шаблоны классов и структур

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

class Block<int, 100>{public:Вlоск() {р = new int [100];}~Block {delete [ ] p;}operator int * ( );protected:int * p;};Block<int, 100>:: operator int *(){return р;}

  • инициализацию целых переменных до 100
  • (Правильный ответ) специализацию шаблона публичного класса для хранения 100 целых величин
  • обнуление сотого параметра класса

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

  • «клиент-сервер»
  • «общее-частное»
  • (Правильный ответ) «целое-часть»

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

  • <<
  • (Правильный ответ) ? :
  • &
  • &&
  • ||

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

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); }

  • (Правильный ответ) A A B A A B
  • А А А В В В
  • A В B A В B

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

  • new, free
  • (Правильный ответ) malloc, free
  • new, delete
  • malloc, delete

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

  • 3
  • 0
  • 1
  • (Правильный ответ) 2

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

  • template <struct T> void func(T a, T b);а
  • template <T> void func(T a, T b);
  • (Правильный ответ) template <class T> void func(T a, T b);

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

  • (Правильный ответ) можно
  • нельзя
  • можно при определенных условиях

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

  • (Правильный ответ) тип указателя на функции, каждая из которых имеет параметр типа char и возвращает значение типа float
  • тип указателя на функции, каждая из которых имеет параметр типа float и возвращает значение типа char
  • оператор не имеет смысла

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

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

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

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);}

  • (Правильный ответ) да, произойдет, запись неверна
  • произойдет при обнулении n
  • произойдет при n=10
  • нет, не произойдет

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

  • >>
  • |
  • (Правильный ответ) .

Узловой класс:

  • предоставляет виртуальные функции и защищенный интерфейс для базовых классов
  • (Правильный ответ) пользуется сервисом, предоставляемым базовым классом
  • не зависит от своих базовых классов

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

class MyClass { int n; MyClass (int); ~MyClass (); };

  • (Правильный ответ) класс объявлен верно
  • нет, ошибочна четвертая строка
  • ссылка на класс задана неявно, такая запись ошибочна
  • неизвестен тип элементов класса, и потому такое объявление ошибочно

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

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
  • (Правильный ответ) ошибка компиляции
  • 2

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

  • iostream
  • (Правильный ответ) ios
  • istream
  • ostream

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

#include <iostream>#include «»conio.h»»int main(){ enum {t, x, y, z ,w}; cout<<t+x+y+z+w; getch(); return 0;}

  • данный код неверен
  • код верен, его результат 5
  • код верен, его результат 6
  • (Правильный ответ) код верен, его результат 10

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

class A { public: void f() { cout << 5; } }; class B : public A { public: void f() { cout << 6; } };

  • (Правильный ответ) да, верен
  • такой код вызовет зацикливание
  • код содержит синтаксическую ошибку в последней строке
  • нет, он содержит ошибку компиляции во второй строке

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

  • (Правильный ответ) int *A; A = new int[10]; … delete [] A;
  • int A = new int[10]; … delete [] A;;
  • int *A; A = new int(10); … delete [] A;

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

  • (Правильный ответ) во время компиляции
  • во время выполнения

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

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

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

  • возможность определять новые типы данных, с которыми можно работать почти так же, как и с основными типами данных