Главная /
Программирование /
Язык программирования C++
Язык программирования C++ - ответы на тесты Интуит
Правильные ответы выделены зелёным цветом.
Все ответы: В систематизированном виде излагаются основные понятия и описываются возможности языка C++. При этом основное внимание уделяется объяснению того, как теми или иными возможностями пользоваться.
Все ответы: В систематизированном виде излагаются основные понятия и описываются возможности языка C++. При этом основное внимание уделяется объяснению того, как теми или иными возможностями пользоваться.
Какие основные области применения языка Си++?
(1) системное программирование
(2) прикладное программирование
(3) программирование дизайна сайтов
Какие виды наследования бывают (выберите наиболее полный ответ)?
(1) внешнее,внутреннее,защищающее
(2) общее,внешнее,внутреннее,защищающее
(3) внешнее,внутреннее,защищенное
Какими по умолчанию объявляются методы класса?
(1)
private
(2)
public
(3)
protected
(4) по умолчанию не объявляются
Какие бывают конструкторы?
(1) по умолчанию
(2) с параметрами
(3) инициализирующий
(4) копирующий
Выберите наиболее правильный вариант объявления оператора присваивания в классе
A
:
(1)
A& operator=(const A& a);
(2)
const A& operator=(const A& a);
(3)
A& operator=(A a);
(4)
A& operator=(const A a);
В чем заключается суть компоновки программы?
(1) в переводе текстового файла в объектный модуль
(2) в подготовке программы к выполнению
(3) в объединении нескольких фрагментов программы в один
У какой переменой в данном коде самое короткое "время жизни"?
char foo(char my_ch)
{
char ch= my_ch;
static int flag = 1;
if (flag){
char p;
p=ch;
ch=ch+1;
}
.....
return ch;
}
(1)
p
(2)
flag
(3)
ch
Какие ключевые слова используются для создания и обработки исключительных ситуаций?
(1)
try
(2)
delete
(3)
catch
(4)
return
(5)
throw
Что понимается под потоком в языке C++
(1) обмен данными между программами
(2) обмен данными между компилятором и функцией main
(3) механизм ввода-вывода
Отметьте все утверждения, которые считаете верными:
(1) нельзя с помощью шаблона создать функцию с таким же именем, как у явно определенной функции
(2) цель введения шаблонов – создание функций, которые могут обрабатывать разнотипные данные
(3) в качестве описания шаблона функции используется прототип шаблона:
template <список _параметров _шаблона >
Укажите неправильный идентификатор:
(1)
AB_D1
(2)
10xd
(3)
z1d8_14f3
Отметьте фрагменты кода, которые можно назвать выражениями:
(1)
f + r*12 – 14
(2)
int z;
(3)
x = y = 13
Укажите правильное объявление?
(1)
int 5;
(2)
float fl,int i
(3)
float F3v7G8t9F; int iCr3;
Прототип функции задает
(1) тип функции, включая количество и тип аргументов и тип результата
(2) возможность выполнения этой функции из программ на других языках программирования
(3) имя функции и минимальное количество параметров
Какие из перечисленных типов являются встроенными типами языка С++?
(1)
float
(2)
real
(3)
integer
(4)
bool
Для чего нужны классы?
(1) для определения новых типов в программе
(2) для упрощения работы со сложными структурами данных
(3) для упрощения работы с константами
(4) для соединения данных и операций над ними
Если в массиве
A
132 элемента, каким будет правильное обращение к последнему элементу массива?
(1)
A[132]
(2)
A[131]
(3)
A[133]
(4)
A[-1]
Что из себя представляет динамическое выделение памяти?
(1) память под объект (переменную) выделяется каждый раз при обращении к переменной
(2) память под объект (переменную) может выделяться не сразу, а в процессе работы программы, освобождение памяти производится автоматически после завершения программы
(3) память под объект (переменную) может выделяться не сразу, а в процессе работы программы, освобождение памяти производится вручную
Программа на языке Си++ начинает выполняться с:
(1) первой функции в программе
(2) функции
main
(3) той функции, которая указана как стартовая при компиляции программы
Если записано
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
(2)
2 1
(3)
1 2
(4)
1
(5) ошибка
Что целесообразно определять в
public
разделе класса?
(1) все,чтобы уберечь себя от ошибок
(2) все,что относится к интерфейсу класса
(3) все невиртуальные методы
Каким может быть аргумент деструктора?
(1) адрес объекта
(2) указатель
this
(3) аргумента не может быть
(4) уничтожаемый объект
Класс
B
наследован от класса A
. Отметьте верное для класса B
.
(1) объект класса
B
может использоваться как объект базового класса
(2) класс
B
должен быть определен с ключевым словом derived
(3) класс
B
может непосредственно обращаться к внутренним атрибутам базового класса Если в функции
...
int a=9; // в глобальном пространстве
void f() { int a; a = 4; }
...
cout << a;
то что будет выведено?
main()
выполняется
(1)
9
(2)
0
(3)
4
(4) другой
Возможно ли использовать механизм исключительных ситуаций в деструкторах
(1) можно, но обрабатывать их следует внутри деструктора
(2) да, никаких проблем возникнуть не может
(3) нет, компилятор выдаст ошибку
(4) да, но результат будет непредсказуем
Имеется функция шаблон
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);
(1) да, все верно
(2) нет, ошибка связана с типом операндов в операторе
if
(3) нет, ошибка связана с типом операндов в операторе
%
Какой длины может быть идентификатор
(1) не более 64 символов
(2) не более 128 символов
(3) в самом языке по длине нет ограничений
Чему равен результат вычисления выражения
x + 3 * b + x
при
x = 12
и b = 8
?
(1)
132
(2)
48
(3)
300
Если switch(n) {
case 2: cout << "ааа"; break;
case 3: cout << "ббб"; break;
default: cout << "ввв"; break; }
int n=3
, какой будет результат ?
(1) ошибка компилятора
(2)
ааа
(3)
ббб
(4)
ввв
(5) неопределенное поведение
Отметьте, какому определению функции может соответствовать вызов
func(5.98)
:
(1)
int func(double x = 0, double y);
(2)
void func(double x);
(3)
double func(double x, int y = 12, int z = 5);
(4)
void func(float arg1, float arg2 = 0);
(5)
float func(float g, float f);
Какая из записей соответствует обращению к атрибуту
m_arg
класса AC
в определении метода этого же класса?
(1)
this.m_arg.AC
(2)
m_arg
(3)
AC.this.m_arg
Что описывает данный программный код?
struct {
char fio[30];
int date, code;
double salary;
}staff[100], *ps;
(1) определение массива структур и указателя на структуру
(2) копирование строки
salary
в строку staff
(3) создание указателя на строку
date
(4) создание итератора с указателем на строку
date
Компилятор языка Си++:
(1) переводит текст программы в машинные инструкции
(2) выполняет программу
(3) форматирует текст программы так, чтобы его было удобно читать
Если имеется абстрактный класс
А
и производный от этого класса класс А1
то какая из записей заведомо неверна?
(1)
A a;
(2)
A1 a1;A& a=a1;
(3)
A* a= new A;
Можно ли перегружать оператор разрешения области видимости -"::"
(1)
да
(2)
нет
Что произойдет, если определение класса будет находиться в файле в двух местах?
(1) будет использоваться второе определение
(2) второе определение будет проигнорировано
(3) зависит от других факторов
(4) ошибка компиляции
(5) ошибка произойдет при сборке программы из нескольких файлов
Отметьте все верные утверждения о статических атрибутах класса:
(1) по умолчанию помещаются в
public
часть класса
(2) существуют в единственном экземпляре, независимо от количества объектов
(3) инициализируются при создании первого объекта
(4) не могут изменяться
(5) инициализируются в начале выполнения программы
Если заданы классы
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; }
(1)
1
(2)
2
(3)
3
(4)
4
(5)
3 4
(6)
2 3 4
Что будет выведено в результате
double x = 12.4;
cout << setw(5) << x << setw(3)
<< setfill('*')<< "" << endl;
(1)
"12.40***"
(2)
" 12.4***"
(3)
"12.4 * *"
(4)
"12.40"
(5)
".124e2**"
Отметьте все утверждения, которые считаете верными:
(1) нельзя с помощью шаблона создать функцию с таким же именем, как у явно определенной функции
(2) цель введения шаблонов – создание функций, которые могут обрабатывать разнотипные данные
(3) в качестве описания шаблона функции используется прототип шаблона:
template <список _параметров _шаблона >
Какое слово из списка не относится к зарезервированным словам Си++?
(1)
try
(2)
union
(3)
cast
(4)
volatile
Если функция вычисления суммы целых чисел от
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);}
(3)
{if (n == 1) return 1;
else return sum(n) + (n – 1);}
(4)
{if (n == 1) return 1;
else return sum(n) + sum (n-1);}
Что произойдет после объявления в программе данного набора перечисляемых значений:
enum{N=0, E=1, S=2, W=3};
?
(1) программа будет работать с числовыми значениями
N
, Е
, S
и W
(2) программа будет работать с идентификаторами
N
, Е
, S
и W
(3) программа сформирует итераторы с указателями на
N
, Е
, S
и W
(4) программа будет игнорировать все указатели на
N
, Е
, S
и W
Какой из приведенных ниже прототипов операции сложения для класса
class A {int x; double y; ... }
является наиболее правильным?
(1)
void operator+ (const A& a) const
(2)
const A& operator+(A a)
(3)
A operator+(const A a) const
(4)
const A& operator(const A& a)
Какой результат следующего выражения ?
int* a; int b; a = &b; b = 7; *a++; cout << b;
(1)
7
(2)
8
(3) не определено
(4) ошибка компиляции
Что будет напечатано в результате выполнения следующего кода?
int x=39, *p = &x;
cout << p << "__" << *p ;
(1) ошибка компиляции
(2) не определено
(3) адрес в памяти__39
(4) 39_адрес в памяти
Процесс компиляции программы
(1) переводит исходный текст в исполняемый файл
(2) приводит программы к единообразному внешнему виду
(3) для языка Си++ необязателен
Какая из записей является правильной записью абстрактного класса?
(1)
abstract class A { virtual int f() = 0; };
(2)
class A { virtual int f() = 0; };
(3)
class A { virtual int f(); };
Какие из следующих объявлений метода
func
синтаксически правильны?
(1)
void func(const Foo& a);
(2)
void func(Foo& a) const;
(3)
void func(const Foo& a) const;
Если в классе операция void* operator new(size_t size, int a);
то какой вызов этой операции правильный?
new
переопределена как
(1)
Foo* ptr = new (20) Foo;
(2)
Foo* ptr = new Foo(20);
(3)
Foo* ptr = new [20] Foo;
Нужно ли учитывать при перегрузке бинарных операций порядок следования операндов?
(1) необходимо учитывать
(2) необходимо определять
(3) необязательно учитывать
(4) необязательно определять
Объявление
extern int f;
означает:
(1) переменная определена в другом исходном файле
(2) переменная определена в стандартной библиотеке
(3) переменная может быть использована только в этом файле
Если в конструкторе класса
class A {
public:
A() { ptr = new char[size];
Init(); }
~A() { if (ptr) delete[] ptr; }
char* ptr; };
произойдет исключительная ситуация, будет ли потеряна память при откате по стеку?
(1) да, будет, во всех случаях
(2) будет, только если объект класса создавался с помощью
new
(3) будет, если создавалась автоматическая переменная класса
a
(4) нет, не будет
(5) зависит от конкретного компилятора
Результат работы программы:
#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;
}
(1) компилятор найдет ошибку
(2) если введена нечетная цифра, выводится ее название
(3) в любом случае выводится "
ERROR!!!
"
(4) выводятся названия всех нечетных цифр больше или равных введенной
Шаблон
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;
A
и его специализации объявлены следующим образом:
(1)
2 3 1
(2)
2 1 1
(3)
1 1 1
(4) ошибка компиляции в строке
"template <> class A<int>"
Выберите правильное объявление константы
pi
:
(1)
const float pi = 3.14;
(2)
float pi = (const) 3.14;
(3)
const float pi 3.14;
Операция ++
(1) увеличивает значение переменной на единицу
(2) увеличивает значение переменной на два
(3) уменьшает значение переменной на единицу
(4) уменьшает значение переменной на два
(5) в языке Си++ не существует
Что означает запись
for (;;);
?
(1) бесконечный цикл
(2) цикл, который не выполняется ни разу
(3) ошибка компиляции
(4) аварийный выход из программы
Совокупность типов формальных параметров, их порядка и имени функции определяет:
(1) тип возвращаемого функцией значения
(2) сигнатуру (подпись) функции
(3) идентификатор функции
(4) последовательность описаний и определений функции
Укажите в какой строке кода произойдет ошибка компиляции?
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) в пятой
(2) в восьмой
(3) в десятой
Для получения адреса переменной используется операция
(1)
*
(2)
&
(3)
->
(4)
.
(5) нет правильного ответа
Что выполняет операция "delete [] v;" в данном ниже коде:
class MyClass
{
int sz; // число элементов
int * v; // указатель на целые
public:
MyClass ( int );
~MyClass ();
int&operator [] ( int index ); // операция индексации
};
…
MyClass::~ MyClass()
{
delete [] v;
}
(1) удаляет первый элемент из массива "v"
(2) удаляет последний элемент из массива "v"
(3) удаляет весь массив "v", освобождая память
(4) удаляет указатель на массив "v" из памяти
В программе на языке Си++ обязательно имеется функция
(1)
head
(2)
start
(3)
prime
(4)
main
(5)
finish
Какой будет результат выполнения следующего кода?
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);
(1)
6
(2)
5
(3)
4
(4)
3
Отметьте правильные объявления переменных
(1)
const int s = 10; int a[s];
(2)
int s = 10; const int a[s];
(3)
int s = 10; int a[] = new int[s+s];
Конструктор класса - это метод, который вызывается при создании объекта для ...(перечислить )
(1) выделения памяти под динамические атрибуты класса
(2) выделения памяти под статические атрибуты класса
(3) инициализации атрибутов объекта
(4) загрузки методов класса в память
Если определена операция умножения для двух объектов класса A a;
int x;
int y = a * x;
A
и операция преобразования к int
, что будет вызвано при
(1) операция умножения, а затем преобразование к целому
(2) преобразование к целому
(3) только операция умножения
Может ли статический метод класса быть объявлен как
friend
?
(1) не может
(2) может
Отметьте, какие возможности языка Си++ помогают предупреждать ошибки:
(1) наличие встроенных типов данных
(2) контроль типов при компиляции
(3) возможность использовать указатели вместо массивов
(4) обязательность объявления функций до их использования
Какой класс используется для вывода данных во внутреннюю область памяти?
(1)
iostream
(2)
strstream
(3)
cout
(4)
strout
(5)
fstream
Отметьте правильное определение константы:
(1)
const int DOZEN = 12;
(2)
const double;
(3)
double COFF = (const)1.2e10;
Чему равно значение выражения
!((1 || 0) && 0)
?
(1)
0
(2)
1
(3) ошибка компиляции
В каких выражениях произойдет зацикливание программы?
(1)
for (int iCount = 0; iCount <= 4;);
(2)
while (true);
(3)
while (false);
Что вычисляет эта функция:
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;
}
(1) дробную степень вещественного ненулевого числа
(2) целую степень любого числа
(3) факториал
(4) любую степень любого числа
Укажите в каких выражениях правильно определены целочисленные переменные?
(1)
short x = 23;
(2)
unsigned int a = 2, b = 3;
(3)
const unsigned char c;
(4)
unsigned short g = 0x2;
Верен ли код
Team::Player p;
p.GoGoGo(); для класса
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);}
};
Team
, описанного следующим образом:
(1) да, верен
(2) нет, неверен
(3) верен, если сформировать контекстные указатели
(4) верен, если увеличить его приоритет
Укажите какой результат будет у следующего примера?
int array[10]; array[1] = 2; array[10] = 3;
cout << array[10];
(1) ошибка компиляции
(2) непредсказуемый результат из-за выхода за границы массива
(3) 3
(4) 0
Какой будет результат у данного выражения?
int *i = new int;
...
i = new int;
...
delete i;
(1) ошибка компиляции
(2) утечка памяти
(3) выделение памяти под переменную не произойдёт
Ключевое слово
void
обозначает что функция
(1) возвращает число с плавающей запятой
(2) возвращает целое число
(3) ничего не возвращает
(4) является главной
Укажите какое из выражений будет правильным?
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;
(1)
B1.k = 3;
(2)
C1.a = C1.b;
(3)
C1.a = C1.i;
(4)
C1->a = C1->b;
Какая функция класса, не являясь его компонентом, имеет доступ к его защищенным и внутренним компонентам?
(1) дружественная
(2) шаблонная
(3) макрофункция
(4) статическая
В каких строках ошибка?
new long[];
new long[][2][4];
new long[3][][4];
(1) во всех строках ошибка – неизвестен размер
(2) в строках нет ошибки
(3) в первой строке ошибка – неизвестен размер
(4) в последней строке ошибка – неправильный синтаксис
(5) во всех строках ошибка – неправильный синтаксис
Какой тип преобразования типов используется в следующем выражении?
int a = 0; float f = 3.4; a += f;
(1) неявное преобразование типов
(2) явное преобразование типов
(3) пользовательское преобразование типов
С помошью какой директивы происходит подключение других модулей программы?
(1)
#include
(2)
#define
(3)
#ifndef
Что является минимальной областью видимости имен?
(1) модуль
(2) блок
(3) функция
(4) класс
Что может быть аргументом оператора
throw
?
(1) целое число
(2) объект класса
(3) строка
(4) ноль
(5) условный оператор
(6) вызов деструктора объекта
(7) вызов оператора
return Что произойдет при выводе в файл, открытый с помощью
ofstream("filename", ios::out|ios::app|ios::trunc)
(1) вывод будет производиться в двоичном виде
(2) вывод будет производиться в конец файла
(3) можно читать из файла
(4) если файл существовал, его содержимое сотрется
(5) вывод будет производиться записями фиксированной длины
Отметьте правильный заголовок шаблона функции:
(1)
template <class T> void Sum(T x1, T x2);
(2)
class template <class T> Sum
(3)
template <T> class
(4)
template class <class T> Sum(T x1, T x2);
В каких выражениях используются бинарные арифметические операции?
(1)
X + Y
(2)
c % d + 2
(3)
xx * Y
(4)
xx++
Укажите каким будет результат вычисления int func()
{
int k = 10;
for (int i = 0; i <= k; i++)
{
return 5;
k = i;
}
}
k
?
(1)
0
(2)
10
(3)
1
(4) бесконечный цикл
(5)
100
Какое из следующих утверждений об операторе
return
является верным?
(1) оператор
return
должен стоять последним в теле функции
(2) оператор
return
завершает выполнение функции
(3) в теле функции должен присутствовать только один оператор
return
Какой результат у следующего выражения?
struct str
{
int a = 2;
float b = 10;
} m1, m2;
cout << m1.a * m2.b;
(1) 20
(2) 2
(3) 10
(4) ошибка компиляции
Что описывает данная строка программы:
float mas=new int[3][2]
?
(1) создание двумерного динамического массива размерности
3*2
(2) создание одномерного динамического массива из
3
элементов
(3) создание одномерного динамического массива из
2
элементов
(4) данная строка представляет собой ошибочную запись и работать не будет
Какие компоненты могут входить в интегрированную среду программирования
(1) текстовый редактор
(2) отладчик
(3) компилятор
Сколько производных классов можно получить из базового класса?
(1) неограниченное количество
(2) количество производных классов определяется количеством базовых классов
(3) определяется наличием абстрактного класса
С помощью механизма
friend
можно разрешить обращение к внутренним элементам класса:
(1) отдельной функции
(2) отдельному методу другого класса
(3) всем методам другого класса
При использовании копирующего конструктора:
(1) вновь созданный объект имеет те же атрибуты что и исходный
(2) вновь созданный объект зависит от копируемого
(3) вновь созданный объект не зависит от копируемого
Какой результат будет у следующего выражения?
int m = 1, n=2;
double A = (double)m/n;
cout << A;
(1)
0.5
(2)
0
(3)
1
(4) ошибка компиляции
Если в программе объявлен макрос
S = CIRC(a + b);
#define CIRC(x) (3.14159 * (x) * (x))
, то как будет подставлен этот макрос в тексте программы при следующем вызове:
(1)
S = (3.14159 * a + b * a + b);
(2)
S = (3.14159 * (a + b) * (a + b));
(3)
S = (3.14159 * (a + b));
Что будет выведено в стандартный поток в результате выполнения программы
int main()
{ int x1 = 5;
x1 = x2 - 2;
int x2 = x1;
cout << x2;
return 0;
}
(1)
-2
(2)
5
(3)
0
(4) ошибка компиляции
Что будет на экране после выполнения программы
#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;
}
(1)
Exception
(2)
Exception 4 0
(3)
Exception 3 0
(4)
ошибка компиляции
Для чего предназначены манипуляторы потоков ввода-вывода?
(1) для управления состоянием потока
(2) для перенаправления потоков ввода-вывода
(3) для создания объектов классов
istream
и ostream
Какая строка данного кода производит специализацию шаблона?
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;
(1) последняя
(2) предпоследняя
(3) седьмая
(4) четвертая
Укажите правильные присваивания значений переменным и константам
(1)
float Y = 12, int Y = 3;
(2)
int iCode = 12123; int Viv_12 = iCode;
(3)
const int Const = 2; int iConst = Const + 3;
Укажите в каком выражении используется операция с наивысшим приоритетом?
(1)
x << 3
(2)
c + D
(3)
a2 >> 5
(4)
k++
Какое определение функции является правильным?
(1)
int f(int b,int c)
{return;}
(2)
void f(int b,int c)
{return b+c;}
(3)
int f(int b,int c)
{return 0;}
Если функция вычисления суммы целых чисел от 1 до
1.{if (n == 1) return 1;
else return n + sum (n - 1);}
2. {if (n == 1) return 1;
else return sum(n);}
n
имеет прототип int sum(int n)
, то как будет выглядеть запись определения функции с использованием рекурсии?
(1) первый вариант
(2) второй вариант
(3) оба верны
(4) оба ошибочны
Представление и диапазоны значений вещественных чисел соответствуют стандарту:
(1)
ASCII
(2)
ANSI
(3)
IEEE
(4)
CP-1251
Какой будет результат следующей программы?
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);
}
(1) 11 44
(2) 10 44
(3) 10 240
Для создания исполняемого файла в системе Unix необходимо
(1) только набрать текст в текстовый файл
(2) только запустить любой из имеющихся компиляторов: GNU C++, g++, c++, cc
(3) набрать текст в текстовый файл и запустить его на компиляцию любым из имеющихся компиляторов C++
Какой результат будет у следующего выражения?
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;
}
(1)
10
(2) ошибка
(3)
0
Какой результат будет у следующего выражения?
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)
6
(2)
8
(3)
12
Если в производном классе переопределена операция
new
то:
(1) все объекты класса и все производные от этого класса будут использовать эту операцию
(2) производные от этого класса могут использовать глобальную операцию применив операцию
::new
(3) базовый класс также будет использовать переопределенную операцию
Если в арифметическом выражении участвуют целый и вещественный операнды, то:
(1) целый тип приводится к вещественному
(2) вещественный тип приводится к целому
(3) ошибка компиляции
Отметьте истинные высказывания в отношении использования макросов и функций:
(1) в большинстве случаев функции позволяют сокращать объем выполняемого файла
(2) в большинстве случаев макросы позволяют сокращать время выполнения
(3) недостатком макросов является отсутствие встроенного контроля согласования типов аргументов и формальных параметров
cout << a::A::a;
в функции main
?
(1)
4
(2)
0
(3) ошибка компиляции
(4) ошибка выполнения
Какой результат будет у следующего выражения?
int main()
{ try
{
try
{
try { throw 1; }
catch (int) { cout << "Exception 1"; }
}
catch (int) { cout << "Exception 2"; }
}
catch (int){ cout << "Exception 3"; }
return 0;
}
(1)
Exception 1Exception 2Exception 3
(2)
Exception 1Exception 2
(3)
Exception 1
(4)
Exception 2
(5)
Exception 3
Что будет на экране после выполнения программы?
#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();
}
(1) будет создан текстовый файл "
C:\test.dat
" с содержимым "1 25 2.5e+07 Test
"
(2) будет выведено сообщение "
Ошибка создания файла
"
(3) будет создан текстовый файл "
C:\Test
" с содержимым "1 25 2.5e+07 Test
"
(4) будет создан двоичный файл
(5) в ходе выполнения возникнет исключение
Какой будет результат следующего выражения?
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);
}
(1) 25 2.3
(2) 20 2.3
(3) 25 22
(4) ошибка компиляции
Укажите в каких выражениях используются ключевые слова?
(1)
sdf = 2; int r = 24;
(2)
TStringList *S = new TStringList;
(3)
x = 3; x = x + 4;
(4)
void function()
Чему будет равен результат вычисления:
int i, k = 2, m = 10;
i = (m)/(m/k - 5);
(1)
10
(2)
0
(3)
5
(4) ошибка во время исполнения
Что будет выведено на экран в результате выполнения кода?
int a=3;
if (a>1)
cout << "1";
else
if(a>2)
cout << "2";
else
if(a>3)
cout << "3";
(1)
123
(2)
12
(3)
1
Имеется функция
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);
(1) ничего,будет ошибка компиляции
(2) 30
(3) 32
Если имеется объявление
char ch1='a',ch2='b',ch3='c';
допустима ли запись ch1=ch2+ch3;
(1)
нет
(2)
да
Какие операторы не могут быть переопределены пользователем:
(1) %
(2) ::
(3) .
Что будет выведено на экран в результате выполнения данного кода?
int main()
{
......
float a1 = 7, a2 = 8;
{
float p=4;
float p1=5;
p1+=5;
}
if (a2) a1+=a2+p1++;
cout << a1;
.....
}
(1)
25
(2)
24
(3) ничего из-за ошибки компиляции
Существует ли в С++ готовый набор шаблонов:
(1) нет
(2) да,существует специальная библиотека STL
(3) зависит от версии компилятора
Какой статус международного стандарта языка Си++?
(1) принят только в США и ждет одобрения международной организации
(2) принят ISO и тем самым автоматически принят во всех странах
(3) принят проект стандарта, дорабатывается
Что будет в результате выполнения следующей программы?
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;
(1) присвоение будет выполнено
(2) результат непредсказуем
(3) ошибка компиляции
(4) сообщение об ошибке внутренних адресов
Какими по умолчанию объявляются элементы структуры?
(1)
private
(2)
public
(3)
protected
(4) по умолчанию не объявляются
Имеется три объекта класса А:
A a1,a2,a3
в каком выражении возможен неявный вызов конструктора копирования
(1)
a3=a1+a2;
(2)
a2.sum(a3);
(3)
a2.sum(&a3);
Что является результатом компоновки программы?
(1) заголовочный файл
(2) исполняемый файл или библиотека
(3) набор заголовочных файлов с определением в них всех используемых функций
У какой переменой в данном коде самое длинное "время жизни"?
char foo(char my_ch)
{
char ch= my_ch;
static int flag = 1;
if (flag){
char p;
p=ch;
ch=ch+1;
}
.....
return ch;
}
(1)
p
(2)
flag
(3)
ch
Функция вычисляет произведение двух чисел. Исходные данные вводятся с клавиатуры. Какие проверки целесообразно ввести в программе?
(1) проверка исходных данных на равенство нулю
(2) проверка, что исходные данные являются числами и эти числа больше нуля
(3) проверка, что исходные данные являются числами
(4) проверки не нужны, все возможные ошибки отловит компилятор
Какое из представленных выражений выводит на экран
0000
0 0
0000
Замечание:при написании собственных программ с использованием форматированного ввода/вывода подключите файл iomanip.h
(1)
cout<<setw(4)<<setfill('0')<<""<<endl;
cout<<setw(1)<<setfill('0')<<"";
cout<<" "<<setw(1)<<setfill('0')<<""<<endl;
cout<<setw(4)<<setfill('0')<<""<<endl;
(2)
cout<<setw(4)<<setfill('0')<<""<<endl;
cout<<setw(1)<<setfill('0')<<""<<" "<<setw(1)<<setfill('0')<<""<<endl;
cout<<setw(4)<<setfill('0')<<""<<endl;
(3)
cout<<setw(4)<<setfill('0')<<""<<endl<<setw(1)<<setfill('0')<<""
<<" "<<setw(1)<<setfill('0')<<""<<endl<<setw(4)<<setfill('0')<<""<<endl;
Какой правильный заголовок шаблона
(1)
template <class t1, class t2>
(2)
template <class t1,t2>
(3)
template <class t, class t>
(4)
template <class t,t>
Укажите правильный идентификатор для имени переменной:
(1)
FA_Ф12
(2)
_ri18
(3)
int
(4)
2a
Операции в выражениях могут быть
(1) только унарными или бинарными
(2) только бинарными
(3) унарными,бинарными или тернарными
При выполнении фрагмента кода
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";
будет напечатано:
(1)
Вариант 1
(2)
Вариант 2
(3)
Вариант 3
(4) ничего не будет напечатано
(5) программа не откомпилируется
Сколько функций может быть в программе С++?
(1) ни одной
(2) минимум одна
(3) не больше 100
Какие из следующих выражений являются константами типа
double
?
(1)
3.0 + 2
(2)
5.00E+06
(3)
0.8
(4)
12lU
В каком случае описание класса верно?
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;
}
};
(1) в первом
(2) во втором
(3) в третьем
Если имеется объявление
int a[15]
, какой фрагмент кода выводит все элементы массива?
(1)
for (int k = 0; k <= 15; k++) cout << a[k];
(2)
for (int k = 1; k < 16; k++) cout << a[k];
(3)
for (int k = 0; k < 15; k++) cout << a[k];
Какое из приведенных выражений верно?
(1)
int a; a = new int[20];
(2)
int a; a = new int(20);
(3)
int *a; a = new int[20];
(4)
int *a; a = new 20;
(5)
int *a; a = new sizeof(int*20);
(6)
int a; a = new sizeof(int*20);
Что такое
cout
?
(1) объект типа
iostream (std::ostream)
(2) класс, который выводит данные на терминал
(3) переменная, которую программист должен создать для вывода данных
Будет ли вызываться конструктор, если в программе встретится следующaя конструкция:
monstr Super(200, 300), Vasia(50), Z;
monstr X = monstr(1000);
monstr Y = 500;
(1) нет, не будет
(2) да, будет
(3) данная конструкция содержит синтаксическую ошибку
(4) данный код вызовет ошибку компиляции
Для переопределенного оператора верно:
(1) переопределенный оператор выполняется с тем же приоритетом, что и исходный оператор
(2) у переопределенного оператора не может быть аргументов по умолчанию
(3) переопределенный оператор может быть унарным оператором
(4) если переопределенный оператор не является методом класса, то у него должен быть, по крайней мере, один аргумент типа класса, определенного пользователем
Сколько вызовов системных функций всегда будет в программе, независимо от ее реализации?
(1) всегда 2
(2) по крайней мере один
(3) не менее двух
Если имеется программа
int a = 7; //в глобальном пространстве
void f() { static int a; a += 5; }
и в функции f(); cout << a;
то какой будет результат?
main()
выполняется
(1)
5
(2)
7
(3)
12
(4) другой
На каком этапе обнаруживаются ошибки в алгоритме программы?
(1) на этапе компиляции
(2) на этапе выполнения
(3) они могут не проявиться никогда, все зависит от входных данных
Если имеется код
int x; cin >> x;
и вводится "1.2
", то что будет в переменной x
?
(1)
1
(2)
2
(3)
1.2
(4) другое
(5) произойдет ошибка
Если есть два объявления
int qwerty; int QWERTY;
какое из
утверждений верно
(1) такие имена переменных недопустимы
(2) объявления правильные
(3) такие объявления недопустимы, так как мы пытаемся создать две одинаковые переменные
Чему равен результат вычисления выражения
x + 3 * b / 2
при
x = 12
и b = 8
?
(1)
24
(2)
60
(3)
120
Если в программе уже имеется функция с прототипом
int func(int k, double f)
, то какое из следующих объявлений не вызовет ошибки компиляции?
(1)
double func(int m, double g)
(2)
int func(double x, int y)
(3)
void func(int m, double g = 3.14)
Что произойдет после следующего примера?
cout << "\n\n\n" << "Hello World" << "\a";
(1) прозвенит звонок и выйдет сообщение "Hello World"
(2) в четвертой строке выйдет сообщение "Hello World" и прозвенит звонок
(3) выйдет сообщение "Hello Worlda"
Если имеется код
class A { public: int a; };
A obj;
как обратиться к переменной
a
?
(1)
obj.a
(2)
obj-a
(3)
obj::a
Определите размер структуры
struct {
char fio[30];
unsigned char date:4;
unsigned char code:4;
};
(1) 9 байт
(2) 38 байт
(3) 31 байт
(4) 39 байт
Какой будет результат ?
int f(int& x) {
static int a = 0; if (!a) a = ++x; return a;}
int y = 6; f(y); cout << f(y) << y;
(1)
77
(2)
78
(3)
70
(4)
79
После компиляции программы
(1) ее можно выполнять многократно без перекомпиляции
(2) перед каждым последующим запуском ее нужно перекомпилировать
(3) ее можно выполнять только с одним набором исходных данных
Если имеется класс с двумя атрибутами
class Complex {
double real;
double img;
. . .
};
какой у него должен быть деструктор?
(1) виртуальный деструктор
(2) деструктор, вызывающий деструкторы атрибутов
(3) деструктор не обязателен
Какой тип будет у следующего выражения ?
void* + reinterpret_cast<int*>1000
(1)
void*
(2)
int*
(3)
int
(4) ошибка компиляции
(5) ошибка выполнения
Что произойдет, если определение функции будет находиться в файле в двух местах?
(1) будет использоваться второе определение
(2) второе определение будет проигнорировано
(3) зависит от других факторов
(4) ошибка компиляции
(5) ошибка произойдет при сборке программы из нескольких файлов
Отметьте все верные утверждения о статических методах класса:
(1) не могут иметь аргументов по умолчанию
(2) не существуют до создания первого объекта класса
(3) не могут объявляться со словом
const
в конце объявления Если заданы классы
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; }
(1)
1
(2)
2
(3)
3
(4)
4
(5)
3 4
(6)
2 3 4
Какой из стандартных классов используется для вывода строк на терминал:
(1)
strstream
(2)
ostream
(3)
ofstream
(4)
istream
(5)
ifstream
Какой правильный заголовок шаблона
(1)
template <class t1, class t2>
(2)
template <class t1,t2>
(3)
template <class t, class t>
(4)
template <class t,t>
Какое из приведенных имен является недопустимым в Си++?
(1)
x03488erJJJ___
(2)
xb___@
(3)
r13
(4)
OOP
Каково будет значение переменной k = ++k;
если до его выполнения
k
после выполнения следующего оператора
k
равнялось 6
?
(1)
6
(2)
7
(3)
8
Если функция вычисления факториала
n
имеет прототип int fact(int n)
, отметьте код, использующий рекурсию и правильно вычисляющий значение факториала:
(1)
{if (n == 0 || n==1) return 1;
else return n * fact (n -1);}
(2)
{if (n == 0 || n==1) return 1;
else return fact(n);}
(3)
{if (n == 0 || n==1) return 1;
else return fact(n) * fact(n-1);}
(4)
{if (n == 0 || n==1) return 1;
else return fact(n)*(n-1);}
Какой из наборов перечисляемых значений записан правильно?
(1)
enum { a, b, 3, 4 };
(2)
enum { a, b = 3, c = 4, 3 };
(3)
enum {a, b = 3, c, 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);
(1)
6
(2)
7
(3)
8
Какой результат следующего выражения ?
int *a; int b[2]; a = b;
b[0] = 7; b[1] = 10; *a++; cout << *a;
(1)
7
(2)
8
(3)
10
(4)
11
Что будет напечатано в результате выполнения следующего кода?
char x[] = "Hello, world";
char* p = x; p += 4; cout << *p;
(1)
o
(2)
o, world
(3)
Hello, world
Комментарий в программе на Си++
(1) содержит указания компилятору по настройке программы
(2) содержит пояснения к тексту и не оказывает влияния на выполнение программы
(3) должен содержать допустимые аргументы программы
Абстрактный класс – это класс, в котором
(1) есть виртуальный конструктор
(2) есть виртуальный деструктор
(3) есть хотя бы один чисто виртуальный метод
Произойдет ли ошибка при использовании следующей конструкции:
class A { const int f() { . . .}; };
g(const& A a) { a.f(); . . . }?
(1) не произойдет
(2) да, ошибка компиляции
(3) да, ошибка выполнения
Если в классе операция void operator delete(int x, void* addr)
то при вызове
A* ptr; . . . delete(10, ptr);
delete
переопределена как
(1) ошибка компиляции
(2) освободится массив из 10 элементов типа
a
(3) аргумент
10
будет передан в оператор delete
Какие операции поддаются перегрузке?
(1) только унарные
(2) только бинарные
(3) унарные и бинарные
Для чего предназначен фрагмент текста из заголовочного файла:
//Пример файла test.h
#ifndef TEST
#define TEST
//прочие строки кода
#endif
(1) для целей отладки
(2) для определения символьной константы Test
(3) для защиты от повторного включения файла
test.h
(4) для защиты от копирования
(5) для защиты от удаления
Могут ли контексты быть вложенными?
(1) могут
(2) не могут
(3) могут, при определенных условиях
Оператор
throw
без аргументов
(1) повторно вызывает обрабатываемую исключительную ситуацию
(2) вызывает последнюю необработанную исключительную ситуацию
(3) вызывает исключительную ситуацию типа
Exception
Результат работы программы:
#include <iostream.h>
int main()
{
char A[] = "ABC ";
char *U = &A[2];
cout << "\n" << *U--;
cout << *U-- ;
cout << *U;
return 1;
}
(1)
ABC
(2)
BC
(3)
CBA
(4)
BCA
Отметьте все неверные утверждения:
(1) генерация класса из шаблона создает объект этого класса
(2) память, занимаемая объектом класса, сгенерированного из шаблона, освобождается автоматически
(3) шаблон не является классом
(4) все классы-шаблоны наследуют класс
Template
(5) объекты классов, сгенерированных из шаблонов, занимают в памяти меньше места, чем объекты других классов
Является ли y = 12 + x;
x
переменной или константой?
(1) является переменной
(2) является константой
(3) определить нельзя
Нелогической операцией является
(1)
&&
(2)
==
(3)
||
(4)
!
(5)
=
Что означает запись
while (false);
?
(1) бесконечный цикл
(2) цикл, который не выполняется ни разу
(3) ошибка компиляции
(4) аварийный выход из программы
Если функция имеет тип
void
, то неверно, что
(1) она не может содержать оператор
return
(2) оператор
return
в теле функции необязателен
(3) функция не возвращает никакого значения
Укажите в каких строках кода произойдет ошибка компиляции?
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:}
(1) в восьмой
(2) в четвертой
(3) в седьмой
(4) в девятой
Какая операция позволяет получить значение, записанное по адресу, который содержится в указателе?
(1)
*
(2)
?
(3)
^
(4)
&
(5)
.
Что произойдёт при использовании неправильного адреса в операции
delete
?
(1) произойдёт аварийное завершение программы
(2) программа выдаст сообщение,что память освобождается по неправильному адресу
(3) результат непредсказуем
При выходе из функции
main
(1) программа повторяется с теми же аргументами
(2) программа заканчивается
(3) выполняется функция
finish
, определенная программистом Произойдет ли ошибка при компиляции этого кода?
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)
int const* ptr;
(2)
const int* ptr;
(3)
int * ptr const;
(4)
int* const ptr;
Какой класс может использоваться в качестве типа атрибута класса?
(1) базовый класс данного класса
(2) производный от данного класса
(3) пользовательский класс
(4) произвольный класс
Если определена операция вычитания для двух объектов класса A a1,a2,a3=5;
a3 = a1 – a2;
A
, а операция преобразования к int
не определена, что будет вызвано при
(1) преобразование к целому
(2) операция вычитания, а затем преобразование к целому
(3) только операция вычитания
(4) произойдет ошибка
Какова последовательность создания исполняемого файла:
.cpp
.
(1) 1-3-2
(2) 2-3-1
(3) 1-2-3
(4) 3-2-1
(5) 2-1-3
Может ли нестатический метод иметь доступ к статическим методам и атрибутам?
(1) может
(2) не может
С помощью какого метода можно изменить текущую позицию в файле?
(1)
put
(2)
open
(3)
seekp
Сколько параметров может быть у шаблона при определении шаблона функции ?
(1) 1
(2) столько, сколько аргументов у функции
(3) столько, сколько типов используется для параметризации
Отметьте все неправильные определения констант:
(1)
const int 12X = 12;
(2)
const int DAYS_OF_WEEK = 7;
(3)
int const x = 2i+56;
Чему равно значение целой переменной при вычислении выражения
21/5*3
?
(1)
13.02
(2)
1.47
(3)
12
(4)
1
(5) другое значение
Что выведет следующая программа?
#include <iostream>
int main() {
int i;
for(i = 0; i < 9; i++)
std::cout << i+1;
return 0;
}
(1) цифры от
0
до 8
(2) цифры от
1
до 9
(3) программа не будет построена из-за ошибок
Как называется функция, которая вызывает саму себя?
(1) конструктором
(2) деструктором
(3) подставляемой
(4) рекурсивной
Укажите в каком выражении правильно определена переменная в шестнадцатеричной системе счисления?
(1)
short x = 0x1244;
(2)
char c = 9340x;
(3)
unsigned long l = 0x84GAF;
(4)
int k = 0xCDeF;
При определении метода запись
this->
говорит о том, что:
(1) атрибут принадлежит объекту, получившему сообщение
(2) атрибут принадлежит классу, определенному в заголовочном файле
(3) атрибут не принадлежит какому-либо классу
Укажите какой результат будет у следующего примера?
float array[5]; array[1] = 10; array[2] = 3;
float array2[5]; array2 = array;
cout << array2[1];
(1) 10
(2) 3
(3) ошибка компиляции
(4) 0
В каком случае программа выведет строку на консоль
(1)
#include <iostream.h>
using namespace std;
void main()
{
cout < "Hello, world!" < endl;
return;
}
(2)
#include <iostream.h>
using namespace std;
void main()
{
cout >> "Hello, world!" >> endl;
return;
}
(3)
#include <iostream.h>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 1;
}
Укажите какое из выражений будет правильным?
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;
(1) A1.i = 10;
(2) B1.k = A1.i;
(3) B1.c = A1.a;
Какой правильный вызов функции базового класса из объекта производного класса, если в производном классе эта функция была замещена?
(1)
FunctionName();
(2)
Base::FunctionName();
(3)
Base.FunctionName();
(4) такую функцию вызывать нельзя.
Отметьте правильный вариант освобождения всей памяти, выделенной для трехмерного массива для следующей программы
long (*lp)[2][4];
lp = new long[3][2][4];
(1)
delete [] lp;
(2)
delete lp;
(3)
delete [][] lp;
(4)
delete [][][] lp;
Какое приведение типов используется в следующем выражении?
int a = 0; float f = 3.4; f += (int)a;
(1) неявное приведение типов
(2) явное приведение типов
(3) стандартное приведение типов
В чем различие использования следующих выражений
#include <...>
и #include "..."
(1) нет различий
(2) различие заключается в методе поиска препроцессором включаемого файла
(3) в различии использования заголовочных и исходных файлов
Для чего предназначен оператор
namespace
?
(1) для заключения в группу объявлений классов, переменных и функций в отдельный контекст со своим именем
(2) для заключения в группу объявлений классов, переменных и функций для использования только в текущем модуле
(3) для использования классов, переменных и функций из других модулей программы без использования заголовочных файлов
Какие требования предъявляются к классу исключительных ситуаций?
(1) он должен быть наследован от специального класса
exception
(2) он не может использовать множественное наследование
(3) он должен содержать атрибуты только встроенных типов
(4) он может быть произвольным классом
Что означает
cout << setw(3)
?
(1) ширина поля вывода устанавливается равной 3
(2) выводимые строки сокращаются до 3 символов
(3) выводимые строки дополняются до 3 символов
(4) нельзя ввести больше 3 символов за один раз
Какой правильный вариант описания шаблона семейства классов?
(1) template <class T>
class Array
{. . . };
(2) template (class T)
class Array
{. . . };
(3) template {class T}
class Array
{. . . }
В каких выражениях используются унарные арифметические операции?
(1)
c1 + d2
(2)
s2 % d % 2
(3)
--b
(4)
d++
Укажите каким будет результат вычисления цикла?
int m = 2, n = 5;
while (m <= 3)
{
while (m <= n)
{
n = m;
break;
}
break;
m++;
}
(1)
m = 2; n = 10;
(2)
m = 5; n = 2;
(3)
m = 2; n = 2;
(4)
m = 120; n = 30;
(5)
m = 0; n = 2;
Укажите правильный вызов функции, объявленной следующим образом:
void Iterat(int a, float b, short c);
(1)
int res = 0; res = res + Iterat(2,4,34);
(2)
int k = 1; float l = 3; short m = 4; Iterat(k,l,m);
(3)
float d = Iterat(2,3.2,6);
Укажите правильный доступ к членам класса:
class my
{ public: double Z;
int f(int c, int d) {return c+d;}
char s;
} T1, T2;
(1)
T1->Z = 23.1;
(2)
T2.f(4,1);
(3)
my.T2->s = 'L';
Какое значение будет выведено в стандартный поток в результате выполнения следующего фрагмента программы?
...
// Необходимые библиотеки подключены
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;
}
(1) 7
(2) 8
(3) 1
(4) ошибка компиляции
Определите результат выполнения следующего кода:
float *thingPtr = new float (3.14159)
(1) возникнет ошибка компиляции, поскольку нельзя задавать значение переменной в процессе её создания
(2) возникнет ошибка компиляции, поскольку при создании объекта не указан размер выделяемой памяти
(3) данная строка задает значение объекту типа
float
Файл имеющий имя "test_file.cpp" это:
(1) исполняемый файл
(2) заголовочный файл
(3) файл исходного текста языка C++
(4) динамически загружаемая библиотека
В чем заключается принцип полиморфизма?
(1) в наличии виртуальных методов
(2) в наличии множественного наследования
(3) в использовании виртуального наследования
Укажите правильное использование оператора
friend
(1) class A { friend int CountPass(); private: short i;};
(2) class A { public : friend int A::CountPass(); private: short i;};
(3) class A { public : int A1::CountPass(); friend: short i;};
Известно, что в классе A определен один публичный конструктор
A(int);
. Выберите из предложенных выражений компилируемые:
(1)
A *a(4);
(2)
A a;
(3)
A *a = new A(4);
(4)
A a(4);
Какой результат будет у следующего выражения?
int m = 1,n=2;
int *p= &n;
p=static_cast<int*> (m);
cout << *p;
(1)
1
(2) адрес переменной
m
(3)
2
(4) ошибка компиляции
Какой результат будет у следующего выражения?
#define CIRC(x) (3 * (x) * (x))
#include <iostream.h>
int main()
{
int a = 1, b = 2;
std::cout << CIRC(a + b);
}
(1)
9
(2)
27
(3)
16
(4)
28
Что будет на экране после выполнения программы
func() { int a = 10; }
int main()
{ int x2 = a + 1;
cout << x2;
return 0;
}
(1)
11
(2)
1
(3)
12
(4) ошибка компиляции
Что будет на экране после выполнения программы
#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;
}
(1)
Exception
(2)
Exception 4 0
(3)
Exception 3 0
(4)
4 0
Укажите основные используемые манипуляторы потоков.
(1)
flush
(2)
endl
(3)
printf
(4)
setw
(5)
<<
(6)
setprecision
В каких случаях код будет работать правильно
...
vector <int> IntVector;//объект класса вектор
/*запись значений в IntVector*/
int d=IntVector[0];
...
}
(1) если оператор [] переопределен соответствующим образом
(2) если существует элемент IntVector[0]
(3) ничего, так как эта запись ошибочна
Укажите, где происходит объявление констант или переменных
(1)
float dD;
(2)
float sd2 = 3.2;
(3)
bType = 3;
(4)
int k; k = 89;
В каких выражениях возвращаемое значение будет логическим?
(1)
int x = 2, y = 3, z; z = x + y;
(2)
(i > 3);
(3)
(c == b);
В чем заключается назначение оператора перехода
goto
?
(1) изменяет последовательность выполнения операторов в программе
(2) необходим для передачи аргумента в функцию
(3) для наглядного отображения листинга программы
(4) для перехода из одной функции в другую
Если функция вычисления факториала 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 fact(int n)
, то как будет выглядеть запись определения функции с использованием рекурсии?
(1) первый вариант
(2) второй вариант
(3) оба верны
(4) оба ошибочны
Укажите в каком выражении произойдет потеря точности
(1)
int i; float x = 2.134, y = 3.14; i = x/y;
(2)
float M = 235.2; double Z = 3; Z *= M;
(3)
short i = 0x3; float x = 2.7, v; v = i + x;
Что будет выведено в стандартный поток вывода в результате исполнения следущей программы?
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;
}
(1) 0
(2) 10
(3) 2
(4) 4
Какой массив имеет самый большой размер?
char *s1= "QWERTY";
char s2[7]= "qwerty";
char *s3= "127*27";
(1) Все массивы имеют одинаковый размер
(2)
s1
(3)
s2
(4)
s3
Какой будет результат у данного выражения?
int f1(int & x1, int *x2) { return ++x1 + ++(*x2); }
int main()
{ int a = 7, k = 1;
k = f1(a, &k);
cout << a << " " << k;
}
(1) 7 10
(2) 8 1
(3) 8 10
Укажите какие компиляторы языка Си++ могут быть использованы в системе Unix.
(1) Microsoft© Visual C++
(2) Emacs
(3) GNU C++, g++, c++
(4) любой компилятор языка С++
Какой результат будет у следующего выражения?
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;
}
(1)
20
(2) ошибка
(3)
0
На какой строке произойдет ошибка компиляции?
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)
3
(2)
5
(3)
8
(4)
9
В какой строчке данного кода сработает заданный в нем копирующий конструктор?
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;
(1) в шестой
(2) в пятой
(3) в четвертой
(4) в одиннадцатой
Если в арифметическом выражении участвуют короткое целое и длинное целое, то:
(1) длинное приводится к короткому
(2) короткое приводится к длинному
(3) ошибка компиляции
Какой результат будет у следующего выражения?
// файл 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;
}
(1)
40
(2)
45
(3)
35
(4) ошибка компиляции
Что будет на экране после выполнения программы
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;
}
(1)
10
(2)
20
(3)
13
(4) ошибка компиляции
Какой результат будет у следующего выражения?
int main()
{
try
{
try
{
try{ throw 1; }
catch (float) { cout << "Exception 1"; }
}
catch (int){ cout << "Exception 2"; }
}
catch (int){ cout << "Exception 3"; }
return 0;
}
(1)
Exception 1Exception 2Exception 3
(2)
Exception 1Exception 2
(3)
Exception 1
(4)
Exception 2
(5)
Exception 3
Существует файл "test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода:
ofstream outfile("c:\\test.dat",ios::in);
if (!outfile)
{ cout << "Ошибка создания файла";
return 1; }
outfile << "!!!";
outfile.close();
(1)
Hello World!!!
(2)
!!!lo World
(3)
!!!
Что будет выведено на экран?
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) переменная объявляется, потом изменяется
(2) переменная инициализируется, потом объявляется
(3) переменная объявляется, потом инициализируется и изменяется
Чему будет равен результат вычисления выражения:
int d=5; bool b = true, c; c = (!b||(d>3));
(1)
true
(2) Ошибка компилятора
(3)
false
Что будет выведено на экран в результате выполнения кода?
int a=3;
if (a>1) cout << "а>1";
if (a>2) cout << "a>2";
if (a>3) cout << "a>3";
(1)
a>1a>2a>3
(2)
a>1a>2
(3)
a>1
Произойдет ли ошибка компиляции если функцию
int sum(int a, int a1, int a2, int a3, int a4=2)
{return a+a1+a2+a3+a4;}
вызвать в функции int main()
{
int z=1,b=1,c=1,d=1,e=1;
sum(z,b,c,d,e);
....
}
main
следующим образом
(1) нет
(2) да, потому что значение возвращаемое функцией не присваивается никакой переменной
(3) да, потому что мы пытаемся изменить значение аргумента по умолчанию
Если имеется объявление
if(f>d)
cout << "f>d";
if (f==d)
cout << "f=d";
if(f<d)
cout <<"f<d";
float f=4;double d=4;
что будет выведено на экран в результате выполнения кода
(1)
f>d
(2)
f=d
(3)
f<d
Вызовет ли следующее объявление ошибку компиляции
class A{
public: void sum(double s1,double s2);
int sum (int s1,int s2);
};
(1) да
(2) нет
В какой строке(строках) ошибка?
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 }
(1) 1 и 3
(2) 1, 3, 4 и 5
(3) 4 и 5
Можно ли в шаблоне класса определить статический метод?
(1) да
(2) нет, будет ошибка компиляции
(3) да, но результат работы программы непредсказуем
Выберите правильное утверждение:
(1) язык Си++ включает богатые средства разработки для Internet
(2) разработка распределенных систем часто ведется на языке Си++
(3) программные интерфейсы к операционной системе чаще всего написаны на языке Java
Какими по умолчанию объявляются элементы объединения?
(1)
private
(2)
public
(3)
protected
(4) по умолчанию не объявляются
Вызовет ли данный код ошибку компиляции?
class Rectangle
{
public:
int a,b;
int sum();
int square();
~rect();
};
(1) нет, все записано верно
(2) да, имя деструктора не может начинаться с маленькой буквы
(3) да, имя деструктора должно совпадать с именем класса
: Выберите наиболее правильный вариант объявления оператора
+=
двух объектов класса A
:
(1)
A& operator+=(const A& a);
(2)
A& operator+=(A& a) const;
(3)
const A& operator+=(A& a) const;
С какой целью производится вынесение функций в отдельный заголовочный файл?
(1) для более наглядного и удобного представления функций
(2) для возможности использования в нескольких модулях программы
(3) для возможности использования в других программах
Сколько блоков
catch
может быть после блока try
?
(1) количество блоков
catch
зависит от количества блоков try
(2) ни одного
(3) минимум один
Отметьте правильный вариант описания функции шаблона:
(1) template (class T)
void change(T *p1, T *p2) { . . . };
(2) template <class T>;
void change<T *p1, T *p2> { . . . };
(3) template <class T>
void change(T *p1, T *p2) { . . . };
(4) template {class T}
void change(T *p1, T *p2) ( . . . );
Укажите все ключевые слова в приведенном примере?
int calc(int a, int b, bool f)
{
if (f==1)
return a+b;
else
return a*b;
}
(1)
int,calc,bool,return,if,else
(2)
int,if,else,return
(3)
int,bool,if,else,return
Если после выражения стоит точка с запятой, то
(1) это оператор-выражение, действие которого заключается в вычислении выражения
(2) выражение вычисляется, а его значение запоминается в специальной переменной, которую можно использовать в следующем операторе
(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";
будет напечатано:
(1)
Вариант 1
(2)
Вариант 2
(3)
Вариант 3
(4) ничего не будет напечатано
(5) программа не откомпилируется
Отметьте истинное высказывание, если вызываются подряд несколько функций:
(1) все функции выполняются одновременно
(2) после выполнения одной функции управление переходит к следующей
(3) последовательность выполнения функций определяется компилятором
Что будет на экране после выполнения данного кода
{
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];
}
(1) 1234
(2) код не выполнится из-за ошибки компиляции
(3) 1234 и случайное число
(4) результат невозможно предсказать
Что нужно сделать для освобождения памяти после выполнения такого кода ?
char *a; a = new char[20];
(1)
delete [] a;
(2)
delete a[];
(3)
delete a;
Для того чтобы вывести символ новой строки, надо:
(1) закончить оператор точкой с запятой
(2) воспользоваться специальным манипулятором
endl
(3) при выводе строки символов перевод строки добавляется автоматически
Функция объявлена как
friend
класса. Отметьте верное.
(1) функция имеет доступ к внутренним атрибутам класса
(2) функция-оператор должна иметь в качестве первого аргумента объект данного класса
(3) ключевое слово
friend
не оказывает влияния на функции и операторы Есть ли преимущество выноса определения функции в отдельный файл
(1) да,при использования функции в нескольких файлах
(2) нет,это затрудняет работу программы
(3) да,можно определить функцию только один раз
Если имеется программа
int a; //в глобальном пространстве
void f() { extern int a; a = 8; }
и в функции a = 3; f(); cout << a;
то какой будет результат?
main()
выполняется
(1)
0
(2)
8
(3)
3
(4) другой
Если имеется код
double x; cin >> x;
и вводится "12-3
", то что будет в переменной x
?
(1)
9.0
(2)
9
(3)
12.0
(4)
3.0
(5) другое
(6) произойдет ошибка
Исходя из данного кода какое высказывание верно?
int main()
{
int a,b,c,d;
a=1;
b=2;
c=a+b+p;
cout << p;
...
}
(1) код не верен, потому что переменным
c
и d
не присвоены значения
(2) код верен, потому что по умолчанию все переменные имеют целочисленный тип
(3) код не верен, потому что переменная
p
не объявлена Чему равен результат вычисления выражения
b – x * 3 + b
при
x = 12
и b = 8
?
(1)
-20
(2)
-4
(3)
-124
Если if (i == 4) cout << "aaa";
else if (i == 3) cout << "bbb";
else if (i != 3) cout << "ccc";
i=3
, какой будет результат ?
(1)
aaa
(2)
bbb
(3)
ccc
(4)
aaaccc
(5)
bbbccc
(6) ошибка компиляции
Отметьте допустимые имена функций:
(1)
_This_Function_12_x_
(2)
ax%u7
(3)
fffffffAAAAAA
(4)
3_pi
(5)
calculateIt
(6)
thisname_is_too_long_forafunction
Найдите недопустимую запись символьной константы:
(1)
'F'
(2)
"\022"
(3)
'Ю'
(4)
'\a'
Если имеется код
class A { public: int a, b, c; };
A obj;
как обратиться к члену класса
c
?
(1)
obj.c
(2)
obj->c
(3)
c.obj
(4)
obj.public.c
Если объявлен тип
struct Value {
double tt; //Размер переменной типа double 64 бита
union number {
short sx; // Размер переменной типа short 16 битов
long lx; // Размер переменной типа long 32 бита
double dx; // Размер переменной типа double 64 бита
} val;
};
сколько байтов занимает один объект такого типа?
(1)
8
(2)
16
(3)
28
(4)
176 Какой будет результат вывода?
static int a; a = 9;
{
static int a = 8;
}
cout << a;
(1)
9
(2)
8
(3)
0
Текст программы можно набирать:
(1) используя только редактор Emacs
(2) только в интегрированной среде программирования
(3) используя любой текстовый редактор или в интегрированной cреде программирования
Отметьте все правильные варианты продолжения предложения: виртуальный деструктор
(1) может использоваться с абстрактными классами
(2) не нужен, если класс не имеет производных классов
(3) должен быть определен как чисто виртуальный в абстрактном классе
Если в классе A(int x);
operator int();
operator++(int);
то какие из них будут вызваны в следующем выражении ?
A b; static_cast <int> (b + 1);
A
определены методы
(1)
operator int()
, конструктор А(int x)
(2)
operator++(int)
, operator int()
, конструктор А(int x)
(3) только конструктор
А(int x)
(4) только
operator int()
(5)
operator++(int)
, конструктор А(int x)
Определение класса это
(1) объявление всех его методов и полей
(2) вызов конструктора
(3) инициализация всех его полей
Можно ли создать объект класса, у которого все атрибуты и методы – статические?
(1) да, можно
(2) вызовет ошибки компиляции
(3) вызовет ошибку выполнения
Если заданы классы
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; }
(1)
1
(2)
2
(3)
3
(4)
4
(5)
1 2 3 4
(6)
2 3 4
Для того чтобы выполнить чтение из файла с произвольной позиции, надо использовать объект класса
(1)
strstream
(2)
ostream
(3)
ofstream
(4)
istream
(5)
ifstream
(6)
filestream
Отметьте правильный вариант описания функции шаблона:
(1) template (class T)
void change(T *p1, T *p2) { . . . };
(2) template <class T>;
void change<T *p1, T *p2> { . . . };
(3) template <class T>
void change(T *p1, T *p2) { . . . };
(4) template {class T}
void change(T *p1, T *p2) { . . . };
Отметьте ложные высказывания:
(1) идентификатор - это ключевое слово языка С++
(2) ключевые слова не могут быть именами переменных, но могут быть использованы в качестве идентификаторов
(3) ключевое слово может быть создано в процессе написания программы
Если do
{
cout << (++i)++ << " ";
}
while ( i>=5 && i < 8 ) ;
i = 5
, какой будет результат вывода
(1)
6
(2)
6 8
(3)
6 7
(4)
6 7 8
Если функция вычисления суммы целых чисел, находящихся между двумя заданными (начальное и конечное включительно), имеет прототип
int sum(int start, int end)
, запишите определение функции, используя рекурсию:
(1)
{if (end == start) return 1;
else return end + sum(start, end -1);}
(2)
{if (end == start) return start;
else return end + sum(start, end -1);}
(3)
{if (end >= start) return 0;
else return end + sum(start, end -1);}
Найдите неправильную запись набора перечисляемых значений:
(1)
enum { day = -1, night = +1 };
(2)
enum { const start = 0, const end = 1 };
(3)
enum { a, b = 2, c, d };
Какой будет результат выполнения следующего кода?
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)
6
(2)
7
(3)
11
(4) ошибка компиляции
Какой результат следующего выражения ?
int *a; int b; a = &b; b = 7; (*a)++; cout << b;
(1)
7
(2)
8
(3) не определено
(4) ошибка компиляции
Что будет выведено в результате выполнения следующего кода?
int a[4] = { 1,2,3,4};
int* p = a; cout << (*p+2) + *p;
(1)
4
(2)
6
(3) адрес памяти
(4)
10
Отметьте истинные высказывания
(1) функция
main
может иметь несколько аргументов
(2) функция
main
может не иметь аргументов
(3) функция
main
должна иметь как минимум один аргумент Что содержится в записи минимального по своим возможностям класса?
(1) только конструктор
(2) только деструктор
(3) только конструктор и деструктор
(4) по крайней мере, один метод
(5) по крайней мере, один атрибут
(6) не менее одного атрибута и хотя бы один метод-конструктор класса
(7) не содержится ничего
Если указатель объявлен как
char sss = 't';
char ddd;
const char* ptr = &sss;
какое из следующих выражений верно:
(1)
*ptr++;
(2)
(*ptr)++;
(3)
*ptr = 'k';
(4)
ptr = &ddd;
Какая из перечисленных функций не может быть конструктором?
(1) String();
(2) void String()
(3) String(String &s)
(4) const String(int a)
Какое из следующих определений представляет собой правильную запись операции сложения целого числа и объекта:
(1)
friend A operator+(int a1, const A& a2);
(2)
friend A operator+(int a1, int a2);
(3)
friend void operator+(const A& a1, int a1, A res);
Каково преимущество использования ключевого слова
const
вместо директивы #define
?
(1) константу, определенную с помощью
const
, можно изменять во время работы
(2) к константе, определенной с помощью
const
, можно применить операции инкремента и декремента
(3) константа, определенная с помощью
const
, доступна в других модулях программы
(4) константа, определенная с помощью
const
, имеет тип, и компилятор может проследить за ее использованием в соответствии с объявленным типом Какие из перечисленных операций не являются операциями доступа к атрибуту класса?
(1)
"<-"
(2)
"."
(3)
":"
Отметьте те средства языка Си++, которые относятся к диагностике ошибок
(1) возвращаемое значение функции
(2) исключительные ситуации
(3) создание объектов
(4) глобальные переменные, хранящие состояние
(5) флаг состояния объекта
(6) преобразование типов переменной
Существует файл "test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода:
ofstream outfile("c:\\test.dat");
if (!outfile)
{ cout << "Ошибка создания файла";
return 1; }
outfile << "!!!" << endl;
outfile.close();
(1)
Hello World!!!
(2)
Hello World
(3)
!!!
При определении класса-шаблона
(1) он должен быть включен в общий контекст (
namespace
) STL
(2) он должен быть наследован от класса
Template
(3) он должен быть отмечен ключевым словом
template
(4) он должен включать в себя, по крайней мере, один параметр-тип
Отметьте правильное определение константы:
(1)
const long BITS = 32;
(2)
const bit ZERO = 0x0;
(3)
const float 0Ora = 5.9787;
Чему равно значение выражения
54 << 3
?
(1)
432
(2)
440
(3)
413
(4)
47
(5)
523
(6)
556
(7)
623
(8) другое значение
Что выведет следующая программа ?
#include <iostream.h>
int main() {
int 1_i ;
for( 1_i = 0; 1_i < 9; 1_i++)
cout << 1_i +1;
return 1;
}
(1) цифры от
0
до 8
(2) цифры от
1
до 9
(3) программа не будет построена из-за ошибок
В чем разница между фактическими и формальными параметрами?
(1) формальные параметры могут использоваться только вне тела функции, а фактические - используются как вне функции, так и внутри ее
(2) формальные параметры определены в заголовке функции, а фактические - значения, с которыми функция вызывается
(3) нет различий
Укажите в каком выражении правильно применяются операции к целочисленным типам
(1)
int a = 2, b = 0x24, c; c = a + b%a;
(2)
long int c <<= 2;
(3)
const char mychar = 2; long s = 3; mychar /= s;
Имеется класс:
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();
(1) первый
(2) второй
(3) оба верны
(4) оба ошибочны
Укажите какой результат будет у следующего примера?
float arr[3] = {10, 20, 30};
float *a = arr;
cout << a[1];
(1) 10
(2) 20
(3) 30
(4) ошибка компиляции
Какой будет результат у данного выражения?
long *L = new long;
*L = 4;
delete L;
cout << *L;
(1)
4
(2)
5
(3) ошибка компиляции
(4) непредсказуемое поведение программы, возможно, случайное число
В каком файле заголовков определён объект
cout
:
(1) iostream.h
(2) stream.h
(3) sysutils.hpp
Укажите какое из выражений будет правильным?
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;
(1)
A1.i = 10;
(2)
B1.k = A1.i;
(3)
B1.c = A1.z
;
(4)
A1.a = B1.d;
Какой правильный вызов функции базового класса из объекта производного класса, если в производном классе эта функция не была замещена?
(1)
FunctionName();
(2)
FunctionName.Base();
(3)
Base.FunctionName();
(4) такую функцию вызвать нельзя
Сопоставьте:
1. Конструктор –
2. Деструктор –
3. Дружественная функция –
4. Переопределение операций -
A - вызывается автоматически, как только объект класса уничтожается.
B – имеет доступ к защищенным и собственным компонентам класса, не являясь его компонентом.
C – возможность распространения действия стандартных операций на операнды, для которых эти операции первоначально в языке не предполагались.
D – используется для инициализации объектов класса.
(1) 1-D, 2-A, 3-B, 4-C
(2) 1-B, 2-A, 3-D, 4-C
(3) 1-C, 2-B, 3-A, 4-D
Какие операции используются для контроля за приведением типов?
(1)
reinterpret_cast
(2)
static_cast
(3)
const_cast
(4)
basic_cast
Возможно ли использование подобного выражения?
#define myincl "D:\Project\Coding\CodingU.h"
#include myincl
(1) нет
(2) да
Контекст пространства имен может содержать:
(1) только объявления переменных
(2) объявления и определения переменных
(3) другие контексты
Что происходит при попытке выполнить оператор
return
внутри блока catch
?
(1) аварийная остановка программы
(2) повторное создание обрабатываемой исключительной ситуации
(3) выход из функции
(4) ошибка компиляции
(5) ошибка выполнения
Что означает
cout << flush
?
(1) вывести перевод строки
(2) вывести возврат каретки
(3) вывести символ новой строки
(4) вывести нулевой байт
(5) произвести вывод и очистку буферов
(6) закрыть выводной поток
Какой правильный вариант создания экземпляра объекта?
template <class T> class Matrix
{ public : Matrix(int, int);
~Matrix() { }
}
(1)
Matrix x(4, 5)
(2)
Matrix <float> x(4, 5);
(3)
Matrix :: <float> x(4, 5)
Отметьте правильные объявления переменных:
(1)
int sd1K_k;
(2)
char float = 53.5;
(3)
int x; int y; int X;
(4)
float; float = y;
В сложных выражениях последовательность выполнения операций определяется:
(1) только приоритетом операций
(2) только скобками
(3) скобками, приоритетом операций, а при одинаковом приоритете ассоциативностью операций
Чему будет равна переменная
int k = 0;
do
{
k++;
if (k == 1) continue;
else break;
++k;
}
while (k < 5);
k
в результате вычисления цикла?
(1)
k = 2;
(2)
k = 0;
(3)
k = 5;
(4)
k = 4;
Укажите правильное объявление функции
(1)
int MyFunc(double x, y, int i);
(2)
void correct(double d = 3.14, double a);
(3)
int sum(int j, int k, int x = 0);
Укажите какому классу принадлежит атрибут
class t
{ public: double sum::Z1;} C;
class sum
{ public: double t::Z1;} D;
Z1
(1) классу
t
(2) обоим классам
(3) запись неверна
Что будет выведено на экран в результате следующего выражения?
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;
}
(1) 15
(2) 16
(3) 5
В чём заключаются недостатки при использовании передачи аргумента в функцию по значению?
(1) затраты времени на копирование значений и затраты памяти для хранения копии при передаче больших объёмов данных
(2) невозможность изменения данных в их источнике
(3) невозможность передачи больших объёмов данных
Имеется запись:
// Описываются указатели:
monster *p;
demon *d;
При выполнении какого выражения всегда можно говорить,что потери информации не будет?
monster
- базовый класс, demon
- производный:
(1)
d=p
(2)
d=(demon*)p
(3)
p=d
(4)
(monster*)d=p
Допустима ли следующая конструкция?
class A {
int x;
int f(const A& a)
{
x = 0;
x += a.x;
return x;
}
};
(1) допустима
(2) произойдет ошибка компиляции
(3) произойдет ошибка при выполнении
Если в классе определяется операция
delete
, то
(1) только одна операция
delete
может быть определена для класса
(2) стандартная операция
delete
всегда доступна для этого класса
(3) все виды операций
delete
должны быть определены Переопределение операции сложения приведет к(отметьте все правильные варианты)
(1) ее вызову при выполнении операции
++
с объектом класса
(2) ее вызову при выполнении операции сложения с объектом класса
(3) преобразованию целых чисел к объекту данного класса при выполнении сложения
(4) возможному преобразованию объектов других классов к данному при выполнении операции сложения
Что будет выведено на экран в результате выполнения приведенной ниже программы:
#include "iostream.h"
#include "conio.h"
#define N=10
int main()
{
int x=N;
cout<<x;
getch();
return 0;
}
(1) компилятор выдаст ошибку компиляции
(2)
N
(3)
10
(4)
x
Запись
::func(x)
означает, что
(1) функция
func
написана на ассемблере
(2) вызывается функция из анонимного контекста
(3) вызывается функция из глобального контекста
(4) вызывается функция, определенная в другом файле
(5) функция
func
имеет тип void
Блок
try catch
(1) должен стоять в функции
main
(2) заключает участок кода, в котором может сложиться исключительная ситуация
(3) должен заканчиваться
catch (...)
(4) может быть повторен несколько раз в одной функции
(5) не может быть вложенным
Правильный вариант программы, выводящей "
Hello World
":
(1) #include <iostream.h>
int main()
{
cout<<"Hello World";
return 0;
}
(2) #include <iostream.h>
int main()
{
cout>>"Hello World";
return 0;
}
(3) #include <iostream.h>
{
cout<<"Hello World";
return 0;
}
Что будет делать функция
find(arr+2,arr+ARR_SIZE,5)
?
(1) искать число 5 на интервале от 2 до ARR_SIZE
(2) искать 5 в массиве
arr
начиная от второго элемента
(3) ничего, эта запись ошибочна
Отметьте константу в следующем фрагменте кода:
int k = 3;
const int a = 2;
int m = k + a – 3;
(1)
k
(2)
m
(3)
a
Битовой операцией является
(1)
=
(2)
!=
(3)
||
(4)
+
(5)
&
Отметьте ошибочное утверждение:
(1) Си++ обеспечивает строгий контроль типов
(2) строгое согласование по типам между формальными и фактическими параметрами требует, чтобы в модуле до первого обращения к функции было помещено либо ее описание, либо определение
(3) при обращении к функции фактические параметры заменяются формальными
Каким будет результат следующей программы:
int a = 5*3;
float b = 1.5f;
b += --a/2;
cout << b;
(1)
8.0
(2)
9.0
(3)
8.5
(4)
9.5
(5)
7.5
В каких выражениях правильно определен метод класса class Ping
{ public: float f, d;
int a;
void MathFunc(double D);
};
Ping
?
(1)
Ping::MathFunc(double D) {f = D;}
(2)
void Ping::MathFunc(double D) {f = D;}
(3)
void Ping::MathFunc(double D) {this->f = D;}
Что будет выведено на экран в результате выполнения приведенной ниже программы?
#include "iostream.h"
#include "conio.h"
int main()
{
int *a;
int b=7;
a = &b;
b+= 7;
(*a)++;
cout << a;
getch();
return 0;
}
(1)
14
(2) адрес переменной
b
(3) компилятор выдаст ошибку компиляции
(4) адрес указателя
a
(5) нет правильного ответа
Что произойдёт если операция выделения памяти
new
завершится неудачно?
(1) произойдёт аварийное завершение программы
(2) программа выдаст сообщение о невозможности выделения памяти под данный объект и вернёт ненулевой указатель
(3) выделение памяти под объект не произойдёт, и операция
new
вернёт нулевой указатель или будет сгенерировано исключение Отметьте истинное утверждение для абстрактного класса.
(1) класс, у которого есть хотя бы один чисто виртуальный метод, называется абстрактным
(2) абстрактный базовый класс навязывает определенный интерфейс всем производным из него классам
(3) невозможно создать объект абстрактного класса
(4) в абстрактном классе нельзя определять методы
Какой результат будет у следующего выражения?
class A
{ CountPass();
private: short i;
}A1;
friend A::CountPass()
{ A1.i = 23;}
(1) объявление дружественной функции для всех производных класса
A
(2) инициализация атрибута класса
(3) ошибка компиляции
В каком порядке происходит вызов деструкторов при уничтожении объекта производного класса?
(1) вызывается деструктор производного класса, затем деструкторы атрибутов производного класса и, потом, деструктор базового класса
(2) вызывается деструктор базового класса, затем деструкторы атрибутов базового класса и, потом, деструктор производного класса
(3) вызывается деструктор базового класса, затем деструктор производного класса и, потом, деструкторы атрибутов базового класса
Какой результат будет у следующего выражения?
int m = 10, n = 4;
double A = static_cast <double> (m)/n;
cout << A;
(1)
2
(2)
2.5
(3)
1
(4) ошибка компиляции
Отметьте истинные высказывания в отношении использования макросов и функций:
(1) в большинстве случаев функции позволяют сокращать объем выполняемого файла
(2) в большинстве случаев макросы позволяют сокращать время выполнения
(3) недостатком макросов является отсутствие встроенного контроля согласования типов аргументов и формальных параметров
Что будет на экране после выполнения программы
namespace t
{ char * c = "Hi"; }
int main()
{
char * x2 = c;
cout << x2;
return 0;
}
(1)
Hi
(2)
H
(3) ошибка компиляции
Что будет на экране после выполнения программы
#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;
}
(1)
Exception
(2)
Ошибка компиляции
(3)
Exception 3 0
(4)
4 0
Укажите правильное объявление шаблона функции, если в программе производится вызов
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;}
В каком случае компилятор выдаст ошибку:
(1)
int int iCeloe;
(2)
const float fL = 32; float e23 = 1; fL = e23;
(3)
bool LD1LW;
В каком случае выражение вычислится быстрее:
(1)
X = X + Y
(2)
X += Y
(3)
X = Y + X
В каких случаях произойдет ошибка компиляции?
(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++;
}
Укажите в каких выражениях неправильно применяются операции к вещественным типам
(1)
double a = 2.3, b = 242, c; c = 23 + b%a;
(2)
float xx = 0, z = 2; if (z >= xx) {...}
(3)
float k = 44; k >>= 2;
(4)
double dd = 2; long double s = 3; if (s ^ dd) {...};
Какое второе число будет выведено в результате выполнения следующего кода?
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);
}
(1) 27
(2) 28
(3) 29
(4) 5
(5) 6
Вернет ли фукция
strcmp("qwerty","QWERTY");
0?
(1) нет
(2) да
(3) результат предсказать невозможно
Что будет выведено в результате выполнения данного кода?
int f1(int x1, int &x2) { return ++x1 + (++x2); }
int main()
{ int a = 7, k = 1;
k = f1(a, k);
cout << a << " " << k;
}
(1)
7 1
(2)
8 10
(3)
7 10
Что выведет программа в стандартный поток вывода?
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;
}
(1)
20
(2)
21
(3)
0
(4) ошибка
В какой строке будет ошибка компиляции?
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: }
(1)
3
(2)
6
(3)
9
Отметьте истинное высказывание для данного примера:
Item::Item() : taken(false), invNumber(0)
{ }
(1) метод класса
Item
выделяет память под атрибуты класса taken
и invNumber
(2) происходит инициализация атрибутов класса
taken
и invNumber
(3) происходит инициализация методов класса
taken
и invNumber
Какой результат будет у следующего выражения?
const char* str1 = "hello";
char* str2 = const_cast ( char* ) str1;
cout << str2;
(1)
hello
(2)
h
(3)
hellohello
(4) ошибка компиляции
Если задано
#define f(x) x##4
то какой будет результат после препроцессора ?
#if 4
int d4;
f(d) = 5;
#endif
(1)
d4 = 5;
(2)
x*4 = 5;
(3) пусто
(4)
f(d4) = 5;
(5)
d = x;
(6)
= 5;
Что будет на экране после выполнения программы
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;
}
(1)
20
(2)
18
(3)
4
(4) ошибка компиляции
Что будет выведено на экран после выполнения программы?
int main()
{
try{
try
{ throw 3.14; }
catch (int) { cout << "Exception 1"; }
}
catch (...)
{ cout << "Exception 2"; }
return 0;
}
(1)
Exception 1Exception 2
(2)
Exception 1
(3)
Exception 2
Существует файл "c:\test.dat" в котором записано "Hello World".Каково будет содержимое файла после выполнения кода:
ofstream outfile("c:\\test.dat",ios::in);
if (!outfile)
{ cout << "Ошибка создания файла";
return 1; }
outfile << "!!!";
outfile.close();
(1)
Hello World!!!
(2)
!!!lo World
(3)
!!!
Отметьте верное утверждение:
(1) шаблон может быть членом класса или шаблона класса
(2) шаблон может быть членом только шаблона класса
(3) шаблон может быть членом только класса
(4) шаблон не может быть членом класса или шаблона-класса
Укажите в каких выражениях переменная или константа объявляется и ей присваивается значение:
(1)
const bool b;
(2)
float dasf3, s2, d34w;
(3)
static int iINTEGER; iINTEGER = 2;
Чему будет равен результат вычисления выражения:
float A = 2, B = 20, C; C = (B = A = 5) + 1;
(1)
6
(2)
20
(3)
2
В какой строке будет ошибка компиляции
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 }
(1) ошибок нет,все верно
(2) в 4
(3) в 5
(4) в 6
Вызовет ли следующее объявление ошибку компиляции
class A{
public: double sum(int double,double s2);
int sum (int s1,int s2);
}
(1) да
(2) нет
Что будет выведено на экран, если вызвать данную функцию последовательно три раза?
void f1() {
static int flag=0;
if (!flag) {
cout << "false ";
flag=5;
}
else {
cout <<"true ";
flag=0;
}
}
(1)
false false false
(2)
false true false
(3)
true false true
Исходя только из назначения шаблонов имеет ли смысл делать из данного кода функцию-шаблон
if(a){
a=a%b;
}
else
cout << error;
(Желательно ответить на этот вопрос не глядя на варианты ответов)
(1) нет, данный код можно использовать только для целых чисел
(2) нет, данный код можно использовать только для величин логического типа
(3) да, данный код можно использовать для переменных типа int и char
Если в процессе компиляции программы возникла ошибка то:
(1) будет создан исполняемый файл
(2) компилятор выдаст сообщение об ошибке и создаст исполняемый файл
(3) компилятор выдаст сообщение об ошибке, с возможным указанием её места
Если задано
#define foo(x,y) x##y
то какой будет результат после препроцессора ?
foo(a,c)
(1)
ac
(2)
"ac"
(3)
a c
(4)
a#c
Какое правильное объявление виртуальной функции, которая принимает одно целочисленное значение и возвращает
void
:
(1)
void SomeFunction(int);
(2)
virtual SomeFunction(int);
(3)
virtual SomeFunction();
(4)
virtual void SomeFunction(int);
Отметьте верное утверждение:
(1) типизированная переменная может изменять свой тип во время исполнения программы
(2) среда разработки использует эту переменную для своего внутреннего использования
(3) любая переменная в программе должна принадлежать какому-то определенному типу
Об ошибке в конструкторе класса может сигнализировать:
(1) возвращаемое значение
(2) исключительная ситуация
(3) вызов деструктора сразу в конструкторе
(4) установленный атрибут-флаг объекта
Каким будет результат следующей программы:
int a = 5/3;
float b = 1.5f;
b += --a/2;
cout << b;
(1)
2.5
(2)
1.5
(3)
6.0
(4)
1.0
(5)
0.0
(6)
-0.5
Если while (i <=5)
{
cout << (--i)-- << " ";
if ( i < 2) break;
}
i = 5
, какой будет результат?
(1) ошибка компиляции
(2) цикл ни разу не будет выполнен
(3) цикл будет выполняться бесконечно
(4)
4 3 2 1
(5)
4 3 2
(6)
4 2 1
(7)
4 2
Какой результат вычисления следующего выражения?
0xFF & 5 >> 1 + 1
(1)
1
(2)
2
(3)
256
Какой из ниже перечисленных вариантов не является формой записи вещественного числа?
(1)
12.3e+2
(2)
1.23
(3)
.1f
(4)
0x3F
Двумерный массив
_ _
| 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";
}
Ar
представленный в виде матрицы имеет вид
(1)
159
(2) код не выполнится из-за ошибки компиляции
(3)
567
(4)
Error
Какое выражение верно с точки зрения целесообразности использования динамического распределения памяти?
(1)
char* c = new char[5]; c = "aabb";
(2)
char* c = "aabb";
(3)
char c; c = new string("aabb");