Главная /
Язык программирования C++
Язык программирования C++ - ответы на тесты Интуит
В систематизированном виде излагаются основные понятия и описываются возможности языка C++. При этом основное внимание уделяется объяснению того, как теми или иными возможностями пользоваться.
Список вопросов:
- # Какие основные области применения языка Си++?
- # Какой статус международного стандарта языка Си++?
- # Выберите правильное утверждение:
- # Программа на языке Си++ начинает выполняться с:
- # Что такое cout?
- # Для того чтобы вывести символ новой строки, надо:
- # Компилятор языка Си++:
- # После компиляции программы
- # Текст программы можно набирать:
- # Процесс компиляции программы
- # Комментарий в программе на Си++
- # В программе на языке Си++ обязательно имеется функция
- # При выходе из функции main
- # Отметьте истинные высказывания
- # Ключевое слово void обозначает что функция
- # В каком случае программа выведет строку на консоль
- # В каком файле заголовков определён объект cout:
- # Какие компоненты могут входить в интегрированную среду программирования
- # Файл имеющий имя "test_file.cpp" это:
- # Для создания исполняемого файла в системе Unix необходимо
- # Укажите какие компиляторы языка Си++ могут быть использованы в системе Unix.
- # Если в процессе компиляции программы возникла ошибка то:
- # Какие виды наследования бывают (выберите наиболее полный ответ)?
- # Что будет в результате выполнения следующей программы? class Base{ … public: void f(); private: int *baseID; }; class Derived : public Base{ … public: void foo(); private: int derivedID; }; Derived my1; int x; my1.baseID=&x;
- # Если записано class A { public: void f() { cout << 1; } }; class B : public A { public: void f() { cout << 2; } }; то что будет напечатано в результате выполнения кода? B b; A& a=b; a.f();
- # Если имеется абстрактный класс А и производный от этого класса класс А1 то какая из записей заведомо неверна?
- # Какая из записей является правильной записью абстрактного класса?
- # Абстрактный класс – это класс, в котором
- # Имеется запись: monster - базовый класс, demon - производный: // Описываются указатели: monster *p; demon *d; При выполнении какого выражения всегда можно говорить,что потери информации не будет?
- # Какой будет результат выполнения следующего кода? class A { public: int inc(int x) { return ++x; }; int inc(short x) { return x + 2; }; }; A obj; int y = 5; cout << obj.inc(y);
- # Произойдет ли ошибка при компиляции этого кода? class Channel { public: void SetNumber (int n) { number = n;}; int GetNumber() const { return number;}; int number;}; int main() { private : int n;} Channel ch; {Channel ch; ch.number = 9; ch.SetNumber(10); Channel ch2(2);}
- # Что содержится в записи минимального по своим возможностям класса?
- # Укажите какое из выражений будет правильным? class A { public : int a, b; protected : int func (float d) {}; private : short i; } A1; class B : public A { private : int k; } B1; class C : public B { protected : int l, m; } C1;
- # Укажите какое из выражений будет правильным? class A { public : int a, b; protected : int z; private : short i; } A1; class B : public A { public : int c, d; private : int k;} B1;
- # Укажите какое из выражений будет правильным? class A { public : int a, b; protected : int z; private : short i; } A1; class B : protected A { public : int c, d; private : int k; } B1;
- # Сколько производных классов можно получить из базового класса?
- # В чем заключается принцип полиморфизма?
- # Отметьте истинное утверждение для абстрактного класса.
- # Какой результат будет у следующего выражения? class A { public : int a, b; protected : int z; private : short i; } A1; class B : private A { private : int k;} B1; int main() { B1.a = 10; cout << B1.a; }
- # Какой результат будет у следующего выражения? class A { public : int a, b; protected : int z; private : short i; } A1; class B : protected A { private : int k;} B1; int main() { B1.z = 20; cout << B1.z; }
- # Что выведет программа в стандартный поток вывода? class A { public : int a, b; protected : int z; private : short id; } A1; class B : protected A { public : short t; void ff(short a) { id = ++a; } } B1; int main() { B1.ff(20); cout << B1.id; }
- # Какими по умолчанию объявляются методы класса?
- # Какими по умолчанию объявляются элементы структуры?
- # Какими по умолчанию объявляются элементы объединения?
- # Что целесообразно определять в public разделе класса?
- # Можно ли перегружать оператор разрешения области видимости -"::"
- # Какие из следующих объявлений метода func синтаксически правильны?
- # Произойдет ли ошибка при использовании следующей конструкции: class A { const int f() { . . .}; }; g(const& A a) { a.f(); . . . }?
- # Допустима ли следующая конструкция? class A { int x; int f(const A& a) { x = 0; x += a.x; return x; } };
- # Отметьте правильные объявления переменных
- # Какое из следующих объявлений является объявлением неизменяемого указателя?
- # Если указатель объявлен как char sss = 't'; char ddd; const char* ptr = &sss; какое из следующих выражений верно:
- # Какая функция класса, не являясь его компонентом, имеет доступ к его защищенным и внутренним компонентам?
- # Какой правильный вызов функции базового класса из объекта производного класса, если в производном классе эта функция была замещена?
- # Какой правильный вызов функции базового класса из объекта производного класса, если в производном классе эта функция не была замещена?
- # Какое правильное объявление виртуальной функции, которая принимает одно целочисленное значение и возвращает void:
- # С помощью механизма friend можно разрешить обращение к внутренним элементам класса:
- # Укажите правильное использование оператора friend
- # Какой результат будет у следующего выражения? class A { CountPass(); private: short i; }A1; friend A::CountPass() { A1.i = 23;}
- # Какой результат будет у следующего выражения? class A { friend int Freund(); friend class B; public : int x, y; private: short i; } A1; class B { public : void func_B(); }B1; int Freund() { A1.x = 1; A1.y = 2; A1.i += 3; return A1.x + A1.y + A1.i; } void B::func_B() { A1.i = 2; } int main() { B1.func_B(); cout << Freund(); }
- # На какой строке произойдет ошибка компиляции? 1:class A 2: { public: void f1(int &a){val+=a++;};//val инициализируется в конструкторе 3: int f2() {return val+1;}; 4: int val; 5: } A1; 6:int main() 7: { 8: A1.f1(); 9: A1.f2(); 10: }
- # В какой строке будет ошибка компиляции? 1:class A 2: { public: void f1(int &a){val+=a++;};//val инициализируется в конструкторе 3: int const f2() {return val+1;}; 4: int val; 5: void f3(int f, const char ch); 6: } A1; 7: void A::f3(int f, const char ch){ 8: int d=5; 9: f1(*d); 10: f2(); 11: }
- # Какие бывают конструкторы?
- # Имеется три объекта класса А: A a1,a2,a3 в каком выражении возможен неявный вызов конструктора копирования
- # Вызовет ли данный код ошибку компиляции? class Rectangle { public: int a,b; int sum(); int square(); ~rect(); };
- # Каким может быть аргумент деструктора?
- # Будет ли вызываться конструктор, если в программе встретится следующaя конструкция: monstr Super(200, 300), Vasia(50), Z; monstr X = monstr(1000); monstr Y = 500;
- # Если имеется класс с двумя атрибутами class Complex { double real; double img; . . . }; какой у него должен быть деструктор?
- # Отметьте все правильные варианты продолжения предложения: виртуальный деструктор
- # Если в классе операция new переопределена как void* operator new(size_t size, int a); то какой вызов этой операции правильный?
- # Если в классе операция delete переопределена как void operator delete(int x, void* addr) то при вызове A* ptr; . . . delete(10, ptr);
- # Если в классе определяется операция delete, то
- # Конструктор класса - это метод, который вызывается при создании объекта для ...(перечислить )
- # Какой класс может использоваться в качестве типа атрибута класса?
- # Какая из перечисленных функций не может быть конструктором?
- # В каких строках ошибка? new long[]; new long[][2][4]; new long[3][][4];
- # Отметьте правильный вариант освобождения всей памяти, выделенной для трехмерного массива для следующей программы long (*lp)[2][4]; lp = new long[3][2][4];
- # Сопоставьте: 1. Конструктор – 2. Деструктор – 3. Дружественная функция – 4. Переопределение операций - A - вызывается автоматически, как только объект класса уничтожается. B – имеет доступ к защищенным и собственным компонентам класса, не являясь его компонентом. C – возможность распространения действия стандартных операций на операнды, для которых эти операции первоначально в языке не предполагались. D – используется для инициализации объектов класса.
- # При использовании копирующего конструктора:
- # Известно, что в классе A определен один публичный конструктор A(int);. Выберите из предложенных выражений компилируемые:
- # В каком порядке происходит вызов деструкторов при уничтожении объекта производного класса?
- # Если в производном классе переопределена операция new то:
- # В какой строчке данного кода сработает заданный в нем копирующий конструктор? 1 monstr::monstr(const monstr &М){ 2 if (M.name){ 3 name = new char [strlen(M.name) + 1]; 4 strcpy(name, M.name);} 5 else name = 0; 6 health = M.health; ammo = M.ammo; skin = M.skin; 7 } … 8 monstr Vasia (blue); 9 monstr Super = Vasia; 10 monstr *m = new monstr ("Orc"); 11 monstr Green = *m;
- # Отметьте истинное высказывание для данного примера: Item::Item() : taken(false), invNumber(0) { }
- # Выберите наиболее правильный вариант объявления оператора присваивания в классе A:
- # : Выберите наиболее правильный вариант объявления оператора += двух объектов класса A:
- # Класс B наследован от класса A. Отметьте верное для класса B.
- # Для переопределенного оператора верно:
- # Функция объявлена как friend класса. Отметьте верное.
- # Какой тип будет у следующего выражения ? void* + reinterpret_cast<int*>1000
- # Если в классе A определены методы A(int x); operator int(); operator++(int); то какие из них будут вызваны в следующем выражении ? A b; static_cast <int> (b + 1);
- # Нужно ли учитывать при перегрузке бинарных операций порядок следования операндов?
- # Какие операции поддаются перегрузке?
- # Переопределение операции сложения приведет к(отметьте все правильные варианты)
- # Если определена операция умножения для двух объектов класса A и операция преобразования к int, что будет вызвано при A a; int x; int y = a * x;
- # Если определена операция вычитания для двух объектов класса A, а операция преобразования к int не определена, что будет вызвано при A a1,a2,a3=5; a3 = a1 – a2;
- # Какое из следующих определений представляет собой правильную запись операции сложения целого числа и объекта:
- # Какой тип преобразования типов используется в следующем выражении? int a = 0; float f = 3.4; a += f;
- # Какое приведение типов используется в следующем выражении? int a = 0; float f = 3.4; f += (int)a;
- # Какие операции используются для контроля за приведением типов?
- # Какой результат будет у следующего выражения? int m = 1, n=2; double A = (double)m/n; cout << A;
- # Какой результат будет у следующего выражения? int m = 1,n=2; int *p= &n; p=static_cast<int*> (m); cout << *p;
- # Какой результат будет у следующего выражения? int m = 10, n = 4; double A = static_cast <double> (m)/n; cout << A;
- # Если в арифметическом выражении участвуют целый и вещественный операнды, то:
- # Если в арифметическом выражении участвуют короткое целое и длинное целое, то:
- # Какой результат будет у следующего выражения? const char* str1 = "hello"; char* str2 = const_cast ( char* ) str1; cout << str2;
- # В чем заключается суть компоновки программы?
- # Что является результатом компоновки программы?
- # С какой целью производится вынесение функций в отдельный заголовочный файл?
- # Сколько вызовов системных функций всегда будет в программе, независимо от ее реализации?
- # Есть ли преимущество выноса определения функции в отдельный файл
- # Что произойдет, если определение класса будет находиться в файле в двух местах?
- # Что произойдет, если определение функции будет находиться в файле в двух местах?
- # Определение класса это
- # Для чего предназначен фрагмент текста из заголовочного файла: //Пример файла test.h #ifndef TEST #define TEST //прочие строки кода #endif
- # Что будет выведено на экран в результате выполнения приведенной ниже программы: #include "iostream.h" #include "conio.h" #define N=10 int main() { int x=N; cout<<x; getch(); return 0; }
- # Какова последовательность создания исполняемого файла: Создать файл с исходным текстом программы, который будет иметь расширение .cpp.Скомпоновать объектный файл с необходимыми библиотеками.Скомпилировать исходный код.
- # Каково преимущество использования ключевого слова const вместо директивы #define?
- # С помошью какой директивы происходит подключение других модулей программы?
- # В чем различие использования следующих выражений #include <...> и #include "..."
- # Возможно ли использование подобного выражения? #define myincl "D:\Project\Coding\CodingU.h" #include myincl
- # Если в программе объявлен макрос #define CIRC(x) (3.14159 * (x) * (x)), то как будет подставлен этот макрос в тексте программы при следующем вызове: S = CIRC(a + b);
- # Какой результат будет у следующего выражения? #define CIRC(x) (3 * (x) * (x)) #include <iostream.h> int main() { int a = 1, b = 2; std::cout << CIRC(a + b); }
- # Отметьте истинные высказывания в отношении использования макросов и функций:
- # Отметьте истинные высказывания в отношении использования макросов и функций:
- # Какой результат будет у следующего выражения? // файл File1.h #ifndef __File_h__ #define myconst 35 #else #define myconst 30 #endif // файл Test.cpp #include <iostream.h> #include "File1.h" int main() { cout << myconst + 10; }
- # Если задано #define f(x) x##4 то какой будет результат после препроцессора ? #if 4 int d4; f(d) = 5; #endif
- # Если задано #define foo(x,y) x##y то какой будет результат после препроцессора ? foo(a,c)
- # У какой переменой в данном коде самое короткое "время жизни"? char foo(char my_ch) { char ch= my_ch; static int flag = 1; if (flag){ char p; p=ch; ch=ch+1; } ..... return ch; }
- # У какой переменой в данном коде самое длинное "время жизни"? char foo(char my_ch) { char ch= my_ch; static int flag = 1; if (flag){ char p; p=ch; ch=ch+1; } ..... return ch; }
- # Если в функции main() выполняется ... int a=9; // в глобальном пространстве void f() { int a; a = 4; } ... cout << a; то что будет выведено?
- # Если имеется программа int a = 7; //в глобальном пространстве void f() { static int a; a += 5; } и в функции main() выполняется f(); cout << a; то какой будет результат?
- # Если имеется программа int a; //в глобальном пространстве void f() { extern int a; a = 8; } и в функции main() выполняется a = 3; f(); cout << a; то какой будет результат?
- # Отметьте все верные утверждения о статических атрибутах класса:
- # Отметьте все верные утверждения о статических методах класса:
- # Можно ли создать объект класса, у которого все атрибуты и методы – статические?
- # Объявление extern int f; означает:
- # Могут ли контексты быть вложенными?
- # Запись ::func(x) означает, что
- # Может ли статический метод класса быть объявлен как friend?
- # Может ли нестатический метод иметь доступ к статическим методам и атрибутам?
- # Какие из перечисленных операций не являются операциями доступа к атрибуту класса?
- # Что является минимальной областью видимости имен?
- # Для чего предназначен оператор namespace?
- # Контекст пространства имен может содержать:
- # Что будет выведено в стандартный поток в результате выполнения программы int main() { int x1 = 5; x1 = x2 - 2; int x2 = x1; cout << x2; return 0; }
- # Что будет на экране после выполнения программы func() { int a = 10; } int main() { int x2 = a + 1; cout << x2; return 0; }
- # Что будет на экране после выполнения программы namespace t { char * c = "Hi"; } int main() { char * x2 = c; cout << x2; return 0; }
- # namespace a { int a; void A() { static int a = 4; }; }; Какой будет результат выполнения cout << a::A::a; в функции main?
- # Что будет на экране после выполнения программы int m = 5; namespace space1 { int x1 = 3; namespace space2 { int x1 = 2 + ::m + space1::x1; } } int main() { int x3 = space1::space2::x1 * 2; { int x3 = 10; } cout << x3; return 0; }
- # Что будет на экране после выполнения программы int m = 5; namespace space1 { int x1 = 1; namespace space2 { int x1 = 3 + ::m + space1::x1; } } int main() { int x3 = space1::space2::x1 * 2; { int x3 = 20; } cout << x3; return 0; }
- # Какие ключевые слова используются для создания и обработки исключительных ситуаций?
- # Функция вычисляет произведение двух чисел. Исходные данные вводятся с клавиатуры. Какие проверки целесообразно ввести в программе?
- # Сколько блоков catch может быть после блока try?
- # Возможно ли использовать механизм исключительных ситуаций в деструкторах
- # На каком этапе обнаруживаются ошибки в алгоритме программы?
- # Если заданы классы class A {... } A1; class B : public A { ... } B1; class C : public A { ... } C1; то что будет выведено при выполнении оператора throw (C1); а обработка исключительной ситуации записана catch (B& b) { cout << 1; } catch (C& c) { cout << 2; } catch (A& a) { cout << 3; } catch (...) { cout << 4; }
- # Если заданы классы class A {... } A1; class B : public A { ... } B1; class C : public A { ... } C1; то что будет выведено при выполнении оператора throw (A1); а обработка исключительной ситуации записана catch (B& b) { cout << 1; } catch (C& c) { cout << 2; } catch (A& a) { cout << 3; } catch (...) { cout << 4; }
- # Если заданы классы class A {... } A1; class B : public A { ... } B1; class C : public B { ... } C1; то что будет выведено при выполнении оператора throw (C1); а обработка исключительной ситуации записана catch (B& b) { cout << 1; } catch (C& c) { cout << 2; } catch (A& a) { cout << 3; } catch (...) { cout << 4; }
- # Если в конструкторе класса class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произойдет исключительная ситуация, будет ли потеряна память при откате по стеку?
- # Оператор throw без аргументов
- # Блок try catch
- # Об ошибке в конструкторе класса может сигнализировать:
- # Отметьте, какие возможности языка Си++ помогают предупреждать ошибки:
- # Отметьте те средства языка Си++, которые относятся к диагностике ошибок
- # Что может быть аргументом оператора throw?
- # Какие требования предъявляются к классу исключительных ситуаций?
- # Что происходит при попытке выполнить оператор return внутри блока catch?
- # Что будет на экране после выполнения программы #include <iostream.h> short x = 4, i = 0; void fun1() { if (i == 0) throw 2; } int fun2() { --x; fun1(); x++; return x; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }
- # Что будет на экране после выполнения программы #include <iostream.h> short x = 4, i = 0; void fun1() { if (i == 5) throw 2; } void fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }
- # Что будет на экране после выполнения программы #include <iostream.h> short x = 4, i = 0; void fun1() { double p=2; if (!i) throw p; } void fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (double) { cout << "Exception "; } cout << x << " " << i; }
- # Какой результат будет у следующего выражения? int main() { try { try { try { throw 1; } catch (int) { cout << "Exception 1"; } } catch (int) { cout << "Exception 2"; } } catch (int){ cout << "Exception 3"; } return 0; }
- # Какой результат будет у следующего выражения? int main() { try { try { try{ throw 1; } catch (float) { cout << "Exception 1"; } } catch (int){ cout << "Exception 2"; } } catch (int){ cout << "Exception 3"; } return 0; }
- # Что будет выведено на экран после выполнения программы? int main() { try{ try { throw 3.14; } catch (int) { cout << "Exception 1"; } } catch (...) { cout << "Exception 2"; } return 0; }
- # Что понимается под потоком в языке C++
- # Какое из представленных выражений выводит на экран 0000 0 0 0000 Замечание:при написании собственных программ с использованием форматированного ввода/вывода подключите файл iomanip.h
- # Если имеется код int x; cin >> x; и вводится "1.2", то что будет в переменной x?
- # Если имеется код double x; cin >> x; и вводится "12-3", то что будет в переменной x?
- # Что будет выведено в результате double x = 12.4; cout << setw(5) << x << setw(3) << setfill('*')<< "" << endl;
- # Какой из стандартных классов используется для вывода строк на терминал:
- # Для того чтобы выполнить чтение из файла с произвольной позиции, надо использовать объект класса
- # Результат работы программы: #include <iostream.h> int main() { int ic; cout << "Введите любую десятичную цифру:"; cin >> ic; switch (ic) { case 0: case 1: cout << "один "; case 2: case 3: cout << "три "; case 4: case 5: cout << "пять "; case 6: case 7: cout << "семь "; case 8: case 9: cout << "девять "; break; default: cout << "ERROR!!!"; } return 1; }
- # Результат работы программы: #include <iostream.h> int main() { char A[] = "ABC "; char *U = &A[2]; cout << "\n" << *U--; cout << *U-- ; cout << *U; return 1; }
- # Правильный вариант программы, выводящей "Hello World":
- # Какой класс используется для вывода данных во внутреннюю область памяти?
- # С помощью какого метода можно изменить текущую позицию в файле?
- # Существует файл "test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода: ofstream outfile("c:\\test.dat"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << "!!!" << endl; outfile.close();
- # Что произойдет при выводе в файл, открытый с помощью ofstream("filename", ios::out|ios::app|ios::trunc)
- # Что означает cout << setw(3) ?
- # Что означает cout << flush ?
- # Для чего предназначены манипуляторы потоков ввода-вывода?
- # Укажите основные используемые манипуляторы потоков.
- # Что будет на экране после выполнения программы? #include <iostream.h> #include <fstream.h> #include <string.h> int main() { int i = 1, j = 25; double a = 25e6; char s[40]; strcpy(s, "Test"); ofstream outfile("c:\\test.dat"); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << i << ' ' << j << ' ' << a << ' ' << s << endl; outfile.close(); }
- # Существует файл "test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода: ofstream outfile("c:\\test.dat",ios::in); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << "!!!"; outfile.close();
- # Существует файл "c:\test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода: ofstream outfile("c:\\test.dat",ios::in); if (!outfile) { cout << "Ошибка создания файла"; return 1; } outfile << "!!!"; outfile.close();
- # Отметьте все утверждения, которые считаете верными:
- # Какой правильный заголовок шаблона
- # Отметьте правильный вариант описания функции шаблона:
- # Имеется функция шаблон template <class T> T func1(T a,T b) { if(a) a=a%b; return a; } Верен ли код float a=5,b=6,c; c=func1(a,b);
- # Существует ли в С++ готовый набор шаблонов:
- # Можно ли в шаблоне класса определить статический метод?
- # Исходя только из назначения шаблонов имеет ли смысл делать из данного кода функцию-шаблон if(a){ a=a%b; } else cout << error; (Желательно ответить на этот вопрос не глядя на варианты ответов)
- # Отметьте все утверждения, которые считаете верными:
- # Какой правильный заголовок шаблона
- # Отметьте правильный вариант описания функции шаблона:
- # Шаблон A и его специализации объявлены следующим образом: template <class T> class A { public: A(){ printf("1 ");} }; template <> class A<int> { public: A(){ printf("2 ");} }; template <> class A<char*> { public: A(){ printf("3 ");} }; Какой будет результат после выполнения кода A<int> a; A<char> a1; A<long> a2;
- # Отметьте все неверные утверждения:
- # Что будет делать функция find(arr+2,arr+ARR_SIZE,5)?
- # Сколько параметров может быть у шаблона при определении шаблона функции ?
- # При определении класса-шаблона
- # Отметьте правильный заголовок шаблона функции:
- # Какой правильный вариант описания шаблона семейства классов?
- # Какой правильный вариант создания экземпляра объекта? template <class T> class Matrix { public : Matrix(int, int); ~Matrix() { } }
- # Какая строка данного кода производит специализацию шаблона? 1:template<class Т> class А{ 2:int х; 3:}; 4:template<class Т> class А<Т*> { 5:long х; 6:}; 7:template<template<class U> class V> class C{ 8:V<int> y; 9:V<int*> z; 10:}; 11:C<A> c;
- # В каких случаях код будет работать правильно ... vector <int> IntVector;//объект класса вектор /*запись значений в IntVector*/ int d=IntVector[0]; ... }
- # Укажите правильное объявление шаблона функции, если в программе производится вызов double х = zero<double>();
- # Какой будет результат следующего выражения? template <class T> T sum(T *a, T *b) { T f = 5; return (*a + *b) - f; } int main() { int i = 10, j = 20; double x = 5.1, y = 2.2; cout << sum(&i, &j) << " " << sum(&x, &y); }
- # Что будет выведено на экран? 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); .... }
- # Отметьте верное утверждение:
- # Укажите неправильный идентификатор:
- # Укажите правильный идентификатор для имени переменной:
- # Укажите все ключевые слова в приведенном примере? int calc(int a, int b, bool f) { if (f==1) return a+b; else return a*b; }
- # Какой длины может быть идентификатор
- # Если есть два объявления int qwerty; int QWERTY; какое из утверждений верно
- # Исходя из данного кода какое высказывание верно? int main() { int a,b,c,d; a=1; b=2; c=a+b+p; cout << p; ... }
- # Какое слово из списка не относится к зарезервированным словам Си++?
- # Какое из приведенных имен является недопустимым в Си++?
- # Отметьте ложные высказывания:
- # Выберите правильное объявление константы pi:
- # Является ли x переменной или константой? y = 12 + x;
- # Отметьте константу в следующем фрагменте кода: int k = 3; const int a = 2; int m = k + a – 3;
- # Отметьте правильное определение константы:
- # Отметьте все неправильные определения констант:
- # Отметьте правильное определение константы:
- # Отметьте правильные объявления переменных:
- # Отметьте верное утверждение:
- # Укажите правильные присваивания значений переменным и константам
- # Укажите, где происходит объявление констант или переменных
- # В каком случае компилятор выдаст ошибку:
- # Укажите в каких выражениях используются ключевые слова?
- # Отметьте истинные высказывания:
- # Укажите в каких выражениях переменная или константа объявляется и ей присваивается значение:
- # Отметьте фрагменты кода, которые можно назвать выражениями:
- # Операции в выражениях могут быть
- # Если после выражения стоит точка с запятой, то
- # Чему равен результат вычисления выражения x + 3 * b + x при x = 12 и b = 8 ?
- # Чему равен результат вычисления выражения x + 3 * b / 2 при x = 12 и b = 8 ?
- # Чему равен результат вычисления выражения b – x * 3 + b при x = 12 и b = 8 ?
- # Каково будет значение переменной k после выполнения следующего оператора k = ++k; если до его выполнения k равнялось 6?
- # Операция ++
- # Нелогической операцией является
- # Битовой операцией является
- # Чему равно значение выражения !((1 || 0) && 0) ?
- # Чему равно значение целой переменной при вычислении выражения 21/5*3?
- # Чему равно значение выражения 54 << 3 ?
- # В каких выражениях используются бинарные арифметические операции?
- # В каких выражениях используются унарные арифметические операции?
- # В сложных выражениях последовательность выполнения операций определяется:
- # Укажите в каком выражении используется операция с наивысшим приоритетом?
- # В каких выражениях возвращаемое значение будет логическим?
- # В каком случае выражение вычислится быстрее:
- # Чему будет равен результат вычисления: int i, k = 2, m = 10; i = (m)/(m/k - 5);
- # Чему будет равен результат вычисления выражения: int d=5; bool b = true, c; c = (!b||(d>3));
- # Чему будет равен результат вычисления выражения: float A = 2, B = 20, C; C = (B = A = 5) + 1;
- # Укажите правильное объявление?
- # При выполнении фрагмента кода int x = 3, y = 2, z = 1; if(x >= y) if(y <= z) std::cout << "Вариант 1"; else if(x >= z) std::cout << "Вариант 2"; else std::cout<<"Вариант 3"; будет напечатано:
- # При выполнении фрагмента кода int x = 3, y = 2, z = 1; if(x >= y) if(y <= z) cout << "Вариант 1"; else if(x <= z) cout << "Вариант 2"; else cout << "Вариант 3"; будет напечатано:
- # Если int n=3, какой будет результат ? switch(n) { case 2: cout << "ааа"; break; case 3: cout << "ббб"; break; default: cout << "ввв"; break; }
- # Если i=3, какой будет результат ? if (i == 4) cout << "aaa"; else if (i == 3) cout << "bbb"; else if (i != 3) cout << "ccc";
- # Если i = 5, какой будет результат вывода do { cout << (++i)++ << " "; } while ( i>=5 && i < 8 ) ;
- # Если i = 5, какой будет результат? while (i <=5) { cout << (--i)-- << " "; if ( i < 2) break; }
- # Что означает запись for (;;);?
- # Что означает запись while (false);?
- # В каких выражениях произойдет зацикливание программы?
- # Что выведет следующая программа? #include <iostream> int main() { int i; for(i = 0; i < 9; i++) std::cout << i+1; return 0; }
- # Что выведет следующая программа ? #include <iostream.h> int main() { int 1_i ; for( 1_i = 0; 1_i < 9; 1_i++) cout << 1_i +1; return 1; }
- # Укажите каким будет результат вычисления k? int func() { int k = 10; for (int i = 0; i <= k; i++) { return 5; k = i; } }
- # Укажите каким будет результат вычисления цикла? int m = 2, n = 5; while (m <= 3) { while (m <= n) { n = m; break; } break; m++; }
- # Чему будет равна переменная k в результате вычисления цикла? int k = 0; do { k++; if (k == 1) continue; else break; ++k; } while (k < 5);
- # Какое определение функции является правильным?
- # В чем заключается назначение оператора перехода goto?
- # Что будет выведено на экран в результате выполнения кода? int a=3; if (a>1) cout << "1"; else if(a>2) cout << "2"; else if(a>3) cout << "3";
- # Что будет выведено на экран в результате выполнения кода? int a=3; if (a>1) cout << "а>1"; if (a>2) cout << "a>2"; if (a>3) cout << "a>3";
- # Прототип функции задает
- # Сколько функций может быть в программе С++?
- # Отметьте истинное высказывание, если вызываются подряд несколько функций:
- # Отметьте, какому определению функции может соответствовать вызов func(5.98):
- # Если в программе уже имеется функция с прототипом int func(int k, double f), то какое из следующих объявлений не вызовет ошибки компиляции?
- # Отметьте допустимые имена функций:
- # Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), запишите определение функции, используя рекурсию:
- # Если функция вычисления факториала n имеет прототип int fact(int n), отметьте код, использующий рекурсию и правильно вычисляющий значение факториала:
- # Если функция вычисления суммы целых чисел, находящихся между двумя заданными (начальное и конечное включительно), имеет прототип int sum(int start, int end), запишите определение функции, используя рекурсию:
- # Совокупность типов формальных параметров, их порядка и имени функции определяет:
- # Если функция имеет тип void, то неверно, что
- # Отметьте ошибочное утверждение:
- # Что вычисляет эта функция: double func(double x, int n) { if (n == 0) return 1; if (x == 0) return 0; if (n > 0) return x * func(x, n-1); if (n < 0) return func(x, n+1) / x; }
- # Как называется функция, которая вызывает саму себя?
- # В чем разница между фактическими и формальными параметрами?
- # Какое из следующих утверждений об операторе return является верным?
- # Укажите правильный вызов функции, объявленной следующим образом: void Iterat(int a, float b, short c);
- # Укажите правильное объявление функции
- # Если функция вычисления суммы целых чисел от 1 до n имеет прототип int sum(int n), то как будет выглядеть запись определения функции с использованием рекурсии? 1.{if (n == 1) return 1; else return n + sum (n - 1);} 2. {if (n == 1) return 1; else return sum(n);}
- # Если функция вычисления факториала n имеет прототип int fact(int n), то как будет выглядеть запись определения функции с использованием рекурсии? 1.{if (n == 1 || n == 0) return 1; else return n * fact (n -1);} 2.{if (n == 1 || n == 0) return 1; else return fact(n);}
- # В каких случаях произойдет ошибка компиляции?
- # Имеется функция int sum(int a,int a1=2,int a2,int a3,int a4) {return a+a1+a2+a3+a4;} что будет выведено на экран после выполнения кода cout<<sum(9,8,7,6);
- # Произойдет ли ошибка компиляции если функцию int sum(int a, int a1, int a2, int a3, int a4=2) {return a+a1+a2+a3+a4;} вызвать в функции main следующим образом int main() { int z=1,b=1,c=1,d=1,e=1; sum(z,b,c,d,e); .... }
- # В какой строке будет ошибка компиляции 1 int sum(int a,int b,int c,int d=4){ 2 int result; 3 result=128*a+b-c*d; 4 d=25; 5 a=d; 6 return res; 7 }
- # Какие из перечисленных типов являются встроенными типами языка С++?
- # Какие из следующих выражений являются константами типа double?
- # Что произойдет после следующего примера? cout << "\n\n\n" << "Hello World" << "\a";
- # Найдите недопустимую запись символьной константы:
- # Какой из ниже перечисленных вариантов не является формой записи вещественного числа?
- # Что произойдет после объявления в программе данного набора перечисляемых значений: enum{N=0, E=1, S=2, W=3};?
- # Какой из наборов перечисляемых значений записан правильно?
- # Найдите неправильную запись набора перечисляемых значений:
- # Какой результат вычисления следующего выражения? 0xFF & 5 >> 1 + 1
- # Каким будет результат следующей программы: int a = 5*3; float b = 1.5f; b += --a/2; cout << b;
- # Каким будет результат следующей программы: int a = 5/3; float b = 1.5f; b += --a/2; cout << b;
- # Укажите в каких выражениях правильно определены целочисленные переменные?
- # Укажите в каком выражении правильно определена переменная в шестнадцатеричной системе счисления?
- # Укажите в каком выражении правильно применяются операции к целочисленным типам
- # Представление и диапазоны значений вещественных чисел соответствуют стандарту:
- # Укажите в каком выражении произойдет потеря точности
- # Укажите в каких выражениях неправильно применяются операции к вещественным типам
- # Если имеется объявление char ch1='a',ch2='b',ch3='c'; допустима ли запись ch1=ch2+ch3;
- # Если имеется объявление float f=4;double d=4; что будет выведено на экран в результате выполнения кода if(f>d) cout << "f>d"; if (f==d) cout << "f=d"; if(f<d) cout <<"f<d";
- # Для чего нужны классы?
- # В каком случае описание класса верно? 1. class A { public: int x; int summ(int a){return x+a;} }; 2. class my_cl { public: int f; int summ(int a){return x+a;} }; 3. class B { public: int F; void Ch_F(int x) { F=x; return F; } };
- # Какая из записей соответствует обращению к атрибуту m_arg класса AC в определении метода этого же класса?
- # Если имеется код class A { public: int a; }; A obj; как обратиться к переменной a?
- # Если имеется код class A { public: int a, b, c; }; A obj; как обратиться к члену класса c?
- # Какой из приведенных ниже прототипов операции сложения для класса class A {int x; double y; ... } является наиболее правильным?
- # Какой будет результат выполнения следующего кода? class A { public: int inc(int x) { return ++x; }; int inc(short x) { return x + 2; }; }; A obj; int y = 5; cout << obj.inc(y);
- # Какой будет результат выполнения следующего кода? class A { public: int y; int inc(int x) { return ++y; }; int inc(short x) { return x + y; }; }; A obj; int y = 5; obj.y = 6; cout << obj.inc(y);
- # Укажите в какой строке кода произойдет ошибка компиляции? 1: class Channel 2: { public: 3: void SetNumber (int n) { number = n;}; 4: int GetNumber() const { return number;}; 5: int number;}; 6: int main() 7: { Channel ch; 8: ch.number = 9; 9: ch.SetNumber(10); 10: Channel ch2(2); 11: return 1; 12: }
- # Укажите в каких строках кода произойдет ошибка компиляции? 1: class A 2: { public: 3: int x; 4: int GetX() { return x; };}; 5: int main() 6: { A b; 7: b.SetX(2); 8: b.GetX(); 9: A b1(2); 10:}
- # В каких выражениях правильно определен метод класса Ping? class Ping { public: float f, d; int a; void MathFunc(double D); };
- # Верен ли код Team::Player p; p.GoGoGo(); для класса Team, описанного следующим образом: class Team { public: int score; class Player { public: void GoGoGo(){ printf("Player is going to a goal.\n"); } }; void SetScore(int x){ score = x;} void ShowScore(){printf("%d\n",score);} };
- # При определении метода запись this-> говорит о том, что:
- # Имеется класс: class Team { public: int score; class Player { public: void GoGoGo(){ printf("Player is going to a goal.\n"); } }; void SetScore(int x){ score = x;} void ShowScore(){printf("%d\n",score);} }; Выберите из нижеприведенных записей корректные коды для этого класса: 1. Team::Player p; p.GoGoGo(); 2. Team t; t.Player p; p.GoGoGo();
- # Укажите правильный доступ к членам класса: class my { public: double Z; int f(int c, int d) {return c+d;} char s; } T1, T2;
- # Укажите какому классу принадлежит атрибут Z1 class t { public: double sum::Z1;} C; class sum { public: double t::Z1;} D;
- # Какой будет результат следующей программы? class t { public: int sum; float f(int a) { sum++; return sum * a; } } cl; int main() { cl.sum = 10; cout << cl.sum << " " << cl.f(4); }
- # Что будет выведено в стандартный поток вывода в результате исполнения следущей программы? class Add { public: short S1; int f(int x) { return S1 + ++x;} int A(short a, short b); } K1; int Add::A(short a, short b) { this->S1 += a*b; return this->S1; }; int main() { K1.S1 = 2; K1.f(2); K1.A(0, 1); cout << K1.S1; return 0; }
- # Какое второе число будет выведено в результате выполнения следующего кода? class t { public: int sum; float f(int a, short m) { sum++; return sum * a - m; } } v; int main() { v.sum = 5; cout << v.sum << " " << v.f(5, 2); }
- # Какие операторы не могут быть переопределены пользователем:
- # Вызовет ли следующее объявление ошибку компиляции class A{ public: void sum(double s1,double s2); int sum (int s1,int s2); };
- # Вызовет ли следующее объявление ошибку компиляции class A{ public: double sum(int double,double s2); int sum (int s1,int s2); }
- # Если в массиве A 132 элемента, каким будет правильное обращение к последнему элементу массива?
- # Если имеется объявление int a[15], какой фрагмент кода выводит все элементы массива?
- # Что будет на экране после выполнения данного кода { int ar[4]; ar[0]=1; ar[1]=2; ar[2]=3; ar[3]=4; for (int i = 0; i<=4; i++) cout << ar[i]; }
- # Двумерный массив Ar представленный в виде матрицы имеет вид _ _ | 1 2 3 | | 5 6 7 | |_ 9 1 2 _| Что будет на экране в результате выполнения кода int flag=7; for (int i = 0; i<3; i++) { if (flag) cout << Ar[1][i]; else cout << "Error"; }
- # Что описывает данный программный код? struct { char fio[30]; int date, code; double salary; }staff[100], *ps;
- # Определите размер структуры struct { char fio[30]; unsigned char date:4; unsigned char code:4; };
- # Если объявлен тип struct Value { double tt; //Размер переменной типа double 64 бита union number { short sx; // Размер переменной типа short 16 битов long lx; // Размер переменной типа long 32 бита double dx; // Размер переменной типа double 64 бита } val; }; сколько байтов занимает один объект такого типа?
- # Какой результат следующего выражения ? int* a; int b; a = &b; b = 7; *a++; cout << b;
- # Какой результат следующего выражения ? int *a; int b[2]; a = b; b[0] = 7; b[1] = 10; *a++; cout << *a;
- # Какой результат следующего выражения ? int *a; int b; a = &b; b = 7; (*a)++; cout << b;
- # Для получения адреса переменной используется операция
- # Какая операция позволяет получить значение, записанное по адресу, который содержится в указателе?
- # Что будет выведено на экран в результате выполнения приведенной ниже программы? #include "iostream.h" #include "conio.h" int main() { int *a; int b=7; a = &b; b+= 7; (*a)++; cout << a; getch(); return 0; }
- # Укажите какой результат будет у следующего примера? int array[10]; array[1] = 2; array[10] = 3; cout << array[10];
- # Укажите какой результат будет у следующего примера? float array[5]; array[1] = 10; array[2] = 3; float array2[5]; array2 = array; cout << array2[1];
- # Укажите какой результат будет у следующего примера? float arr[3] = {10, 20, 30}; float *a = arr; cout << a[1];
- # Какой результат у следующего выражения? struct str { int a = 2; float b = 10; } m1, m2; cout << m1.a * m2.b;
- # Какое значение будет выведено в стандартный поток в результате выполнения следующего фрагмента программы? ... // Необходимые библиотеки подключены struct my { int a, b; } m1; int func(my *f) { return f->a + f->b++; } int main() { m1.a = 2; m1.b = 5; cout << func(&m1); return 1; }
- # Что будет выведено на экран в результате следующего выражения? struct my { int a, b; } m1; int func(my f) { return f.a + f.b++; } int main() { m1.a = 5; m1.b = 10; cout << func(m1); return 0; }
- # Какой массив имеет самый большой размер? char *s1= "QWERTY"; char s2[7]= "qwerty"; char *s3= "127*27";
- # Вернет ли фукция strcmp("qwerty","QWERTY"); 0?
- # Что из себя представляет динамическое выделение памяти?
- # Какое из приведенных выражений верно?
- # Что нужно сделать для освобождения памяти после выполнения такого кода ? char *a; a = new char[20];
- # Какое выражение верно с точки зрения целесообразности использования динамического распределения памяти?
- # Какой будет результат ? int f(int& x) { static int a = 0; if (!a) a = ++x; return a;} int y = 6; f(y); cout << f(y) << y;
- # Какой будет результат вывода? static int a; a = 9; { static int a = 8; } cout << a;
- # Что будет напечатано в результате выполнения следующего кода? int x=39, *p = &x; cout << p << "__" << *p ;
- # Что будет напечатано в результате выполнения следующего кода? char x[] = "Hello, world"; char* p = x; p += 4; cout << *p;
- # Что будет выведено в результате выполнения следующего кода? int a[4] = { 1,2,3,4}; int* p = a; cout << (*p+2) + *p;
- # Что выполняет операция "delete [] v;" в данном ниже коде: class MyClass { int sz; // число элементов int * v; // указатель на целые public: MyClass ( int ); ~MyClass (); int&operator [] ( int index ); // операция индексации }; … MyClass::~ MyClass() { delete [] v; }
- # Что произойдёт при использовании неправильного адреса в операции delete?
- # Что произойдёт если операция выделения памяти new завершится неудачно?
- # Какой будет результат у данного выражения? int *i = new int; ... i = new int; ... delete i;
- # Какой будет результат у данного выражения? long *L = new long; *L = 4; delete L; cout << *L;
- # Что описывает данная строка программы: float mas=new int[3][2]?
- # Определите результат выполнения следующего кода: float *thingPtr = new float (3.14159)
- # В чём заключаются недостатки при использовании передачи аргумента в функцию по значению?
- # Какой будет результат у данного выражения? int f1(int & x1, int *x2) { return ++x1 + ++(*x2); } int main() { int a = 7, k = 1; k = f1(a, &k); cout << a << " " << k; }
- # Что будет выведено в результате выполнения данного кода? int f1(int x1, int &x2) { return ++x1 + (++x2); } int main() { int a = 7, k = 1; k = f1(a, k); cout << a << " " << k; }
- # Что будет выведено на экран в результате выполнения данного кода? int main() { ...... float a1 = 7, a2 = 8; { float p=4; float p1=5; p1+=5; } if (a2) a1+=a2+p1++; cout << a1; ..... }
- # В какой строке(строках) ошибка? 1 int f1() { 2 char ch, ch1='a', ch2='b', ch3='c'; 3 ch=ch1+ch2+ch3; 4 f1=int(ch); 5 return f1; 6 }
- # Что будет выведено на экран, если вызвать данную функцию последовательно три раза? void f1() { static int flag=0; if (!flag) { cout << "false "; flag=5; } else { cout <<"true "; flag=0; } }