Главная / Программирование / Программирование на языке C++

Программирование на языке C++ - ответы на тесты Интуит

Правильные ответы выделены зелёным цветом.
Все ответы: В курсе изучаются основы программирования на языке C++.
Выберите все правильные ответы. Алфавит языка C++ включает в себя базовый набор символов:
(1) латинские буквы
(2) русские буквы
(3) цифры от 0 до 9
Выберите все правильные утверждения.
(1) результат операции сложения целых чисел - целый
(2) результат любых операций над целыми числами - целый
(3) результат операций сравнения целых чисел - целый
(4) результат стандартных тригонометрических функций с аргументами целого типа - действительный
Основное правило структурного программирования состоит в том, что:
(1) структура программы задается на этапе составления алгоритма
(2) программа составляется только из базовых конструкций: следования, ветвления и цикла, которые могут вкладываться друг в друга
(3) в программе могут использоваться только определенные структуры данных
(4) программа состоит из подпрограмм, организованных в определенную структуру
Выберите все правильные утверждения.
(1) глобальные переменные можно использовать в функциях
(2) глобальные переменные располагаются в сегменте данных
(3) компилятор инициализирует нулями глобальные и локальные переменные
(4) функция может возвращать значение любого типа
Основные особенности объективно-ориентированного языка (выберите наиболее точный ответ):
(1) множественное наследование и полиморфизм.
(2) абстрактные типы данных и сохранение состояний.
(3) перегрузка операций и обработка исключений.
(4) инкапсуляция, наследование, полиморфизм.
Выберите правильные утверждения.
(1) объект в C++ может иметь сколько угодно предков
(2) объект в C++ может иметь сколько угодно потомков
(3) объект в C++ может иметь только одного предка
(4) объект в C++ может иметь только одного потомка
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) русские буквы
(2) символы +, -, *, /
(3) cимволы @, $ и пробел
(4) символы :, ;
Выберите все правильные утверждения.
(1) результат операции сложения действительного и целого числа - действительный
(2) в выражении можно использовать операнды булевского типа
(3) результат стандартных функций sin и cos с аргументом целого типа - целый
(4) результат операций сравнения действительных чисел - целый
В условном операторе после ключевого слова if внутри скобок может находиться
(1) выражение булевского типа
(2) переменная целого типа
(3) константа false
Выберите все правильные утверждения.
(1) для локальных переменных выделяется место в стеке
(2) компилятор инициализирует нулями локальные переменные
(3) для параметров, передаваемых по адресу, в стек заносится только их адрес
(4) функция может возвращать через список параметров более одного значения
Выберите правильные утверждения (одно или более). Инкапсуляция - это:
(1) возможность называть одним и тем же именем разные подпрограммы
(2) объединение в одном классе данных и методов их обработки
(3) создание иерархии объектов
(4) сокрытие деталей реализации
Какое из следующих утверждений является НЕПРАВИЛЬНЫМ? class Base{}; class Derived: public Base{};
(1) Base является суперклассом для Derived.
(2) Derived является потомком Base.
(3) Derived является дочерним классом Base.
(4) Base является потомком Derived.
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) украинские и греческие буквы
(2) символы 0, 1, 2, 3, 4
(3) числа
(4) символы {, }, (, )
Какая из следующих операций языка C выполняется справа налево?
(1) []
(2) ,
(3) ->
(4) =
(5) ^
В условном операторе между ключевыми словами if и else после выражения в скобках может находиться
(1) любой оператор, кроме оператора перехода
(2) любой простой или составной оператор
(3) не больше двух операторов
(4) составной оператор
Параметр функции описан как "const int a". соответствующий ему аргумент может быть:
(1) только переменной типа int с именем а
(2) выражением целого типа
(3) переменной целого типа
(4) выражением любого типа
Какое свойство ООП позволяет скрыть от других частей программы детали реализации объекта?
(1) инкапсуляция
(2) наследование
(3) полиморфизм
(4) абстрагирование
Какой уровень доступа к функции "setx" в классе "derived" в приведенном примере? class basex { int x; public: void setx(int y) {x = y;} }; class derived : basex {};
(1) protected
(2) global
(3) public
(4) local
(5) private
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) выражения
(2) строковые константы
(3) операторы
(4) идентификаторы
Какая из следующих операций языка C выполняется справа налево?
(1) *
(2) /
(3) ?:
(4) %
(5) ^
Чему будет равно значение переменной А после выполнения фрагмента программы, если В = 3? A = 2; if (В <= 4) C = 1; else C = 0; A = C;
(1) 0
(2) 1
(3) 2
Заголовок функции имеет вид: void f(int& a, float b, char c); Укажите правильные варианты вызова функции, если переменные в вызывающей функции описаны так: int a; char b; float d,x;
(1) f(a,a,b);
(2) f(a,x,'b');
(3) f(a,d-x/2,b);
(4) f(2,d,b);
Что обычно содержит класс?
(1) данные и информацию о них
(2) данные и методы
(3) массивы данных
(4) массивы методов
Какое из приведенных утверждений об абстрактном классе является НЕПРАВИЛЬНЫМ?
(1) вы можете создавать указатели на абстрактный класс.
(2) вы можете создавать объекты абстрактного класса.
(3) абстрактный класс имеет как минимум одну чисто виртуальную функцию.
(4) абстрактный класс может иметь потомков.
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) двоичные числа
(2) строковые константы
(3) ключевые слова
(4) знаки операций
Чему равно значение выражения (! ( a && b ) || c), где a, b и с - величины типа bool, имеющие значения true?
(1) false
(2) true
Чему будет равно значение переменной A после выполнения фрагмента программы, если B = 5 ? if (В <= 4) C = 1; else C = 0; A = C;
(1) 0
(2) 1
(3) 2
Заголовок функции имеет вид: void f( float a, int& b, float c); Укажите правильные варианты вызова функции, если переменные в вызывающей функции описаны так: float a,x; int b,c;
(1) f(a,b,c);
(2) f(a,x,c);
(3) f(x,c,28);
(4) f(a,28,x);
Стиль ООП рекомендует объявлять поля объектов
(1) с директивой private
(2) с директивой public
(3) без директив
(4) с директивой local
(5) с директивой global
Шаблон функции описан как template<class X, class Y, class Z>void f(Y, Z); Какой из вызовов этой функции неверный?
(1) f("Test", 2.0);
(2) f<int>("Test", 2.0);
(3) f<int, char*, double>("Test", 2.0);
(4) f<int, char*>("Test", 2.0);
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) ключевые слова
(2) константы
(3) операторы присваивания
Чему будет равно значение переменной a после выполнения фрагмента программы, если b = 5? a = 1; if ((b > 0) && (b < 2)) a = 3; if (b > 5) a = 5;
(1) 3
(2) 1
(3) 5
Заголовок функции имеет вид: void P(float a, float b, char& c); Укажите правильные варианты вызова подпрограммы, если переменные в вызывающей функции описаны так: float a,k; char d[5]; int c; char m;
(1) P(1,k+1,m);
(2) P(a,k,'c');
(3) P(a,d,c);
(4) P(a,a,d[2]);
Выберите правильные утверждения. Действие директивы private распространяется
(1) до другой директивы
(2) до директивы public
(3) до конца файла
(4) до начала описания следующего поля
Выберите все допустимые в C++ константы.
(1) 259
(2) 00
(3) 'ф'
(4) 1.2_e1
(5) 0x010E
Чему равно числовое значение целой переменной x = 8/(sqrt(4)*0.281)?
(1) 14
(2) 13
(3) 12
Чему будет равно значение переменной m после выполнения программы? main() { int k; int m; k = 3; m = 0; while (k < 3) { ++k; ++m; }}
(1) 0
(2) 1
(3) 2
Что будет выведено на экран в результате работы программы? #include <stdio.h> int a, b, c, d; void f( int a, int& c, int& d) { int b; a = 5; c = 7; b = 9; } int main() { a = 1; c = 1; b = 1; f(b,a,c); printf ("%d|%d|%d",a,c,b); return 0; }
(1) 1|1|1
(2) 7|1|1
(3) 7|7|1
Применение директивы private позволяет
(1) уменьшить количество возможных ошибок
(2) сократить текст программы
(3) упростить отладку программы
(4) уменьшить объем программы в оперативной памяти
Выберите все допустимые в C++ константы.
(1) *
(2) 0755
(3) -126
(4) 0XFFG0
(5) '\x07'
Какое выражение не содержит синтаксических ошибок?
(1) -0.18*a/r-0.2*t
(2) (-0.18)*a)/(r-0.2*t)
(3) cos/^2*x+0,2
(4) (-0.18)*a)\(r-0.2*t))
Чему будет равно значение переменной m после выполнения программы? main() { int k; int m; m = 0; for (k = 1; k <= 2; k++) ++m; ++m; }
(1) 1
(2) 4
(3) 3
Выберите заголовки функций, не содержащие синтаксических ошибок.
(1) int f(int& i);
(2) int f1(int i);
(3) int 1f(int& i);
(4) *int f(int i);
В каком месте приведенного ниже класса следует инициализировать переменную I? class Foo { const int I; static void Init(int x); void Setup(int x = 0) const; public: Foo(int x = 0); };
(1) в списке инициализации конструктора.
(2) внутри константного метода Setup.
(3) в теле конструктора.
(4) внутри статического метода Init.
(5) внутри функции 'main'.
Выберите все допустимые в C++ константы.
(1) 00
(2) 0xEFG1
(3) -7.12e-13
(4) 'Ж'
(5) 0001
Какие выражения не содержат синтаксических ошибок?
(1) sin(abs(0.6(e*3))
(2) 0XCC00*.34E-4/_do/k-2
(3) ((cos(3*a+1.*abs(x))))
(4) a*exp(t)\(2t)
Чему будет равно значение переменной m после выполнения программы? int main() { int k; int m; m = 1; for (k = 3; k >= 1; k--) ++m; }
(1) 2
(2) 3
(3) 4
Выберите заголовки функций, не содержащие синтаксических ошибок.
(1) float f_2(long a[]);
(2) int f(long* array, const int n);
(3) float f(int& i);
(4) long f(i, long& j);
Какие из следующих утверждений верные?
(1) константный метод объявляется с ключевым словом const после списка параметров.
(2) константный метод может изменять значения полей класса.
(3) константный метод может вызывать любые методы класса.
(4) константный метод может вызываться только для константных объектов.
(5) константный метод может изменять значения константных полей класса.
Выберите все допустимые в C++ константы.
(1) #0.7
(2) '\Ю'
(3) "aa"
(4) 7.2.e+3
(5) -1e-1
Какие из выражений имеют значение true, если а = 1?
(1) (a == 2) || true
(2) (a == 1) && true
(3) (a == 2) && true
(4) (a == 1) && false
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = abs(a[7]); for (i = 0; i< 8; i++) if (abs(a[i]) > k) k = abs(a[i])- 2; printf("%d",k); }
(1) 20
(2) 1
(3) 7
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char& a, char d) { a = d; d = a; } int main() { char a[] = "глаз"; f(a[0],a[3]); puts(a); return 0; }
(1) злаа
(2) злаг
(3) злаз
Какие из следующих утверждений верные?
(1) константный метод объявляется с ключевым словом const перед именем метода.
(2) константный метод может вызываться для любых (не только константных) объектов.
(3) константный метод объявляется с ключевым словом const после списка параметров.
(4) константный метод может вызывать любые методы класса.
(5) в константный метод не передается указатель this.
Выберите все правильные ответы. Число 33333 можно хранить в переменной типа
(1) unsigned char
(2) unsigned short int
(3) signed short int
(4) signed long int
(5) double
Выберите правильные ответы. Можно ли присвоить значения
(1) целого типа - вещественной переменной
(2) вещественного типа - целой переменной
(3) символьного типа - целой переменной
(4) целого типа - булевской переменной
Какое число получится в результате работы программы? #include <stdio.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = a[0]; for (i = 1; i < 8; i++) if (a[i] > k) k = a[i]; printf("%d",k); }
(1) 9
(2) 7
(3) 8
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char* a, char* const b) { a[0] = b[0]; b[1] = a[1]; } int main() { char a[]="abcd"; char b[]= "opr"; f(a,b); printf ("%s%s", a, b); return 0; }
(1) obcdorb
(2) oobdcr
(3) obcdobr
Какая операция используется для доступа к открытым полям объекта через указатель на объект?
(1) операция ->
(2) операция .
(3) операция ,
(4) операция ::
(5) операция .*
Выберите все правильные ответы. В переменной типа unsigned char можно хранить число
(1) 13
(2) 213
(3) -13
(4) -213
(5) 1213
Выберите правильные ответы. Можно ли присвоить
(1) целой переменной - целое выражение
(2) целой переменной - вещественное выражение
(3) целой константе - булевскую константу
(4) целой переменной - булевскую константу
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,j,k; k = 0; j = 4; for (i = 0; i < 8; i++) if (abs(a[i]) > j) k = a[i]; printf("%d",k); }
(1) -9
(2) 10
(3) -2
Какое из следующих утверждений относительно классов и структур истинно?
(1) структура может включать в себя только простейшие типы данных (int, char и т.д.).
(2) структура не может иметь конструкторов и деструкторов.
(3) структура не может быть наследником класса.
(4) класс не может быть наследником структуры.
(5) поля структуры открыты по умолчанию.
Выберите все правильные ответы. В переменной типа signed char можно хранить число
(1) 13
(2) 213
(3) -13
(4) -213
(5) 32000
В списке параметров функции scanf могут присутствовать...
(1) имена переменных любого типа
(2) имена переменных символьного типа
(3) имена переменных целого типа
(4) константы строкового типа
Какое число получится в результате работы программы? #include <stdio.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,j,k; k = 0; j = 2; for (i = 0; i < 8; i++) if (a[i] < j) ++k; printf("%d",k); }
(1) 21
(2) 5
(3) 0
Какие из следующих утверждений правильные?
(1) поля класса могут быть описаны с модификатором static
(2) поля класса могут быть описаны с модификатором const
(3) поля класса могут иметь тип самого класса
(4) поля класса не могут быть указателями на сам класс
Выберите все правильные варианты. При использовании в программе функции scanf требуется разделять числовые значения величин при вводе при помощи
(1) по крайней мере одного пробела
(2) пробела или запятой
(3) нажатия клавиш TAB или ENTER
(4) клавиш курсора
Что будет выведено на экран в результате работы программы? #include <stdio.h> main(){ const char a[] = "abcrcaab"; int i; char k; k = 'b'; for (i = 0; i < 8; i++) if (a[i] > k) k = a[i]; printf("%c",k); }
(1) c
(2) r
(3) abc
Какие из следующих утверждений верные?
(1) внутри локального класса можно использовать стандартные типы
(2) внутри локального класса нельзя использовать статические (static) переменные
(3) внутри локального класса нельзя использовать внешние (extern) переменные
(4) внутри локального класса нельзя использовать внешние функции
(5) локальный класс не может иметь статических элементов
Что будет выведено на экран в результате работы программы (учитывая формат вывода)? #include main() { int i; float t; i = 2; t= 2; printf("%4.1f%2d%d", t, i, i); }
(1) 222
(2) 2.0 22
(3) 2.00 2.0 2
Что будет выведено на экран в результате работы программы? #include <stdio.h> main(){ const char a[] = "abcrcaab"; int i; char k; k = 'c'; for (i = 0; i < 8; i++) if (a[i] <= k) { k = a[i]; printf("%c",k); } }
(1) rrr
(2) aaa
(3) bbb
Какие из следующих утверждений верные?
(1) внутри локального класса нельзя использовать стандартные типы
(2) внутри локального класса можно использовать статические (static) переменные
(3) внутри локального класса можно использовать внешние (extern) переменные
(4) внутри локального класса нельзя использовать структурные типы
(5) внутри локального класса можно использовать автоматические переменные из области, в которой он описан
Найдите операторы вывода, не содержащие ошибок (int k; float x,y)
(1) printf ("*%4f %d %4.2f*", x, k, y);
(2) printf ("*%4f %4d %4.2f*", x, k, y);
(3) printf ("*%f %d %4f*", x, k, y);
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcrcaab"; int i; for (i = 0; i < 8; i++) if ((a[i] > 'a') && (a[i] < 'c')) printf("%c",a[i]); }
(1) ab
(2) bb
(3) cc
Какие из следующих утверждений неверные?
(1) конструкторы глобальных объектов вызываются до вызова функции main.
(2) локальные объекты создаются, как только становится активной область их действия.
(3) возможно получение указателя на конструктор.
(4) конструктор запускается при создании временного объекта.
Выберите все правильные варианты. В списке параметров функции printf могут присутствовать
(1) имена переменных
(2) ключевые слова
(3) константы символьного типа
(4) операторы
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcra"; int i; char k; k = 'c'; for (i = 1; i < 5; i++) { if (a[i] < k) k = a[i]; printf("%c",k); } }
(1) bbab
(2) bbaa
(3) bbba
Какое из следующих утверждений верное?
(1) конструктор не возвращает значение.
(2) конструктор возвращает значение типа void.
(3) конструкторы наследуются.
(4) в конструкторах нельзя задавать значения параметров по умолчанию.
Выберите пример указателя-константы.
(1) char* const pc
(2) char* pc
(3) const char* const pc
(4) невозможно определить указатель-константу.
(5) const char* pc
Какой конструктор вызывается при описании нового объекта с инициализацией другим объектом этого же типа?
(1) конструктор по умолчанию.
(2) конструктор копирования.
(3) конструктор с параметром-объектом.
(4) в этом случае никакой конструктор не вызывается.
Какое из следующих определений описывает указатель на целую переменную по адресу 0x200.
(1) int *x = 0x200;
(2) int *x( &0x200 );
(3) int *x = *0x200;
(4) int *x = &0x200;
(5) int *x; *x = 0x200;
Выберите неверное утверждение.
(1) дружественная функция объявляется внутри класса, к элементам которого ей нужен доступ, с ключевым словом friend.
(2) в качестве параметра дружественной функции должен передаваться объект класса.
(3) одна функция может быть дружественной сразу нескольким классами.
(4) на дружественную функцию распространяется действие спецификаторов доступа.
Какое значение получит "p[0]" в данном примере? int a[2][3]={{1,2,3},{7,8,9}}; int *p=&a[0][0]; p+=4;
(1) 1
(2) 4
(3) 7
(4) 8
(5) значение не определено
Выберите правильные утверждения.
(1) при перегрузке операций не сохраняется количество аргументов используемые в стандартных типах данных.
(2) при перегрузке операций сохраняются приоритеты операций, используемые в стандартных типах данных.
(3) при перегрузке операций сохраняются правила ассоциации, используемые в стандартных типах данных.
(4) при перегрузке операции внутри класса первый операнд может быть любого типа.
Какая операция используется для доступа к полям структуры?
(1) операция :
(2) операция .
(3) операция ,
(4) операция ::
(5) операция *
Какая из следующих операций не может быть перегружена в классе?
(1) <
(2) >
(3) -
(4) .*
(5) +
С переменными, относящимися к перечисляемому типу данных, можно выполнять операции:
(1) присваивания
(2) разадресации
(3) выбора
(4) сравнения на равенство и неравенство
Какая из следующих операций при перегрузке в классе не должна иметь возвращаемое значение того же типа, что и сам класс?
(1) * =
(2) - =
(3) + =
(4) = =
Какую величину вычисляет программа? #include <stdio.h> main() { int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d", &a[i][j]); k = -1; for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) if (a[j][i] == 0) k = i; } printf("%d",k); }
(1) номер первого из столбцов массива, содержащих хотя бы один элемент, равный 0
(2) номер последнего из столбцов массива, содержащих хотя бы один элемент, равный 0
(3) количество положительных элементов массива в каждом столбце
(4) номер первой из строк массива, содержащих хотя бы один элемент, равный 0
(5) номер последней из строк массива, содержащих хотя бы один элемент, равный 0
Какие из следующих операций при перегрузке в классе не должны иметь возвращаемое значение того же типа, что и сам класс?
(1) ! =
(2) * =
(3) < =
(4) - =
Какое из следующих утверждений ложно?
(1) доступ в объединениях по умолчанию public
(2) в объединениях нельзя явным образом использовать спецификаторы доступа
(3) объединение может иметь конструктор и другие методы
(4) объединение может иметь статические методы
(5) объединение не может участвовать в иерархии классов
Какие из следующих утверждений неверные?
(1) деструктор не имеет параметров.
(2) класс может иметь несколько деструкторов с различными именами.
(3) деструктор не имеет возвращаемого значения.
(4) деструктор не может быть объявлен как const.
(5) деструктор может быть объявлен как static.
Какая переменная доступна только в методе, где она объявлена?
(1) переменная - член
(2) локальная переменная
(3) переменная класса
(4) внешняя переменная
В чем, кроме имени, различие между методами "f1()" и "f2()" в приведенном ниже коде? struct Foo { int f1() { return 0; } int f2(); }; int Foo::f2() { return 0; };
(1) f1() - это встроенная функция.
(2) f1() - это статическая функция.
(3) f2() - это встроенная функция.
(4) f2() - это статическая функция.
(5) f2() - private.
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) русские буквы
(2) символ подчеркивания
(3) цифры от 0 до 9
(4) знаки + и -
Выберите все правильные утверждения.
(1) результат операции деления над целыми числами - целый
(2) результат любых операций над целыми числами - целый
(3) результат операций сравнения целых чисел - булевский
(4) результат стандартных тригонометрических функций с аргументами целого типа - целый
Особенность базовых конструкций структурного программирования состоит в том, что:
(1) они соответствуют структурам данных, используемым в программе
(2) они записываются одинаково на всех языках, поддерживающих структурную технологию программирования
(3) они имеют только один вход и один выход
(4) они состоят из одинаковых блоков.
Выберите все правильные утверждения.
(1) глобальные переменные нужно передавать в функцию через список параметров
(2) место под формальные параметры выделяется на стадии выполнения программы
(3) компилятор инициализирует нулями глобальные переменные
(4) функция может возвращать значение стандартного типа
Выберите правильные утверждения (одно или более). Технология ООП по сравнению с традиционной позволяет создавать:
(1) более читабельные программы
(2) более быстродействующие программы
(3) программы, допускающие более простую модификацию
(4) более короткие программы
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ только объекты самого класса?
(1) protected
(2) public
(3) virtual protected
(4) private
(5) virtual
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) символы +, =, *
(2) латинские буквы
(3) русские буквы
(4) символы !, ?, *
Поразрядные операции &, |, ^ и ~ применимы к
(1) операндам булевского типа
(2) операндам целого типа
(3) операндам действительного типа
В условном операторе после ключевого слова if внутри скобок может находиться
(1) переменная булевского типа
(2) выражение целого типа
(3) пустой оператор
(4) константа true
Параметр функции описан как "int& a". Соответствующий ему аргумент может быть:
(1) константой типа int
(2) переменной типа int
(3) выражением типа int
(4) только переменной типа int с именем а
Выберите правильные утверждения (одно или более). Преимуществами ООП являются:
(1) возможность использования в новых программах ранее созданных объектов
(2) увеличение быстродействия программы
(3) простота использования
(4) легкость внесения изменений в программу
Какие из следующих утверждений являются НЕПРАВИЛЬНЫМИ? class Base{}; class Derived: private Base{};
(1) Base является суперклассом для Derived.
(2) Derived является открытым потомком Base.
(3) Derived является дочерним классом Base.
(4) Base является потомком Derived.
Алфавит языка C++ включает в себя:
(1) буквы национальных алфавитов
(2) имена переменных
(3) шестнадцатеричные числа
(4) символы +, -, [, ]
Какая из следующих операций языка C выполняется справа налево?
(1) []
(2) sizeof
(3) ->
(4) =
(5) ^
В условном операторе в ветке "ИНАЧЕ" после ключевого слова else может находиться
(1) любой оператор
(2) любой оператор, кроме оператора перехода
(3) произвольное количество операторов
(4) составной оператор
Список параметров функции описан как "void". Что можно сказать о параметрах этой функции.
(1) аргумент может быть только константой
(2) У функции нет параметров
(3) аргумент может быть только переменной
(4) аргумент может быть выражением любого типа
Какое свойство ООП позволяет единообразно обращаться с разными объектами одной иерархии?
(1) инкапсуляция
(2) абстрагирование
(3) наследование
(4) полиморфизм
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { int x; public: void setx(int y) {x = y;} }; class derived : public basex {};
(1) protected
(2) private
(3) global
(4) public
(5) local
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) выражения
(2) числа
(3) операторы
(4) имена
Чему равно значение выражения (! ( a && b || c)), где a, b и с - величины типа bool, имеющие значения true, true и false соответственно?
(1) false
(2) true
Чему будет равно значение переменной А после выполнения фрагмента программы, если В = 3? A = 2; if (В <= 4) { C = 1;} else {C = 0; A = C; }
(1) 0
(2) 1
(3) 2
Заголовок функции имеет вид: void f(char* a, float& b, float c); Укажите правильные варианты вызова функции, если переменные в вызывающей функции описаны так: char a[10]; float b,x; char c[5]; int d;
(1) f(a,b,x);
(2) f(c,b,d);
(3) f(a,x,c);
(4) f(a,c,b);
Класс может наследовать от родительского класса:
(1) только данные
(2) только методы
(3) данные и методы
Какое из следующих утверждений правильное?
(1) дружественность не наследуется.
(2) друзья класса не имеют доступа к закрытым членам класса.
(3) объявление дружественности двунаправленное.
(4) друзья класса имеют доступ к данным всех его потомков.
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) скобки
(2) числа
(3) выражения
(4) имена
Чему равно значение выражения (a && ! b || c), где a, b и с -величины типа bool, имеющие значения false, true и true соответственно?
(1) false
(2) true
Чему будет равно значение переменной a после выполнения фрагмента программы, если b = 0? a = 1; if (b < 1) a = 2; if (b > 5) a = 3;
(1) 0
(2) 1
(3) 2
Заголовок функции имеет вид: void P(int& a, char* b, float c); Укажите правильные варианты ee вызова, если переменные в вызывающей функции описаны так: int a; char* b, *c; float d,x;
(1) P(a,b,c);
(2) P(3,b,x);
(3) P(a,c,d-x/2);
(4) P(a,b+5,d-a);
Могут ли совпадать имена параметров метода и имена полей объекта?
(1) да
(2) нет
(3) могут, если они имеют одинаковый смысл
(4) могут, если их предварительно описать
Шаблон функции описан как template<class X, class Y, class Z>void f(X, Z); Какой из вызовов этой функции неверный?
(1) f("Test", 2.0);
(2) f<int>("Test", 2.0);
(3) f<int, char*, double>(2, 2.5);
(4) f<int, char*>(2, 2);
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) восьмеричные числа
(2) шестнадцатеричные числа
(3) десятичные числа с плавающей точкой
(4) комментарии
Чему будет равно значение переменной a после выполнения фрагмента программы, если b = 2? a = 1; if ((b > 0) && (b < 3)) a = 3; else if (b > 5) a = 5;
(1) 3
(2) 1
(3) 2
Заголовок функции имеет вид: void P(int a, float b, char& c); Укажите правильные варианты вызова подпрограммы, если переменные в вызывающей функции описаны так: float a,b; int c,d; char e;
(1) P(a,b,c);
(2) P(c%d,sin(d)/3.14,e);
(3) P(d,a-b,e);
(4) P(c,c,e);
Выберите все правильные утверждения. Директива private запрещает доступ к элементам объекта
(1) из других объектов в том же файле
(2) только из других файлов
(3) из методов этого объекта
(4) из методов других объектов
(5) из методов объектов-наследников
Выберите все допустимые в C++ константы.
(1) 'b'
(2) 0xFFG0
(3) 7.2e3
(4) 0.008E-123
Чему равно числовое значение выражения sqrt(4)+142/20*2?
(1) 12
(2) 16
(3) 5
Чему будет равно значение переменной m после выполнения программы? main(){ int k; int m; k = 3; m = 0; while (k > 0) --k; ++m; }
(1) 5
(2) 1
(3) 2
Что будет выведено на экран в результате работы программы? #include <stdio.h> int a, b, c, d; void f( int& a, int& c, int& d) { int b; a = 5; c = 7; b = 9; } int main() { a = 1; c = 1; b = 1; f(a, b, c); printf ("%d|%d|%d",a,c,b); return 0; }
(1) 9|5|7
(2) 5|1|7
(3) 1|9|7
Стиль ООП рекомендует объявлять методы с директивой
(1) с директивой private
(2) с директивой public
(3) без директив
(4) с директивой local
(5) с директивой global
Выберите все допустимые в C++ константы.
(1) '\x07'
(2) 0.0000000001
(3) 7.2*e3
(4) -126
Какие выражения не содержат синтаксических ошибок?
(1) cos(3*a+1*abs(x)))
(2) Sin/^2*x+0,2
(3) 0xEEEE*1.34E-2/i/2
(4) cos(3a+1*abs(x))
Чему будет равно значение переменной m после выполнения программы? main() { int k; int m; m = 1; for (k = 1; k <= 2; k++) { ++m; k+=2; }}
(1) 0
(2) 3
(3) 2
Выберите заголовки функций, не содержащие синтаксических ошибок.
(1) int __f(int& i_1_);
(2) int * f(int **i);
(3) int 1f(int& i);
(4) *int f(int i);
Что неверно при инициализации 'y' в приведенном ниже коде? class SomeClass { int x; public: SomeClass (int xx) : x(xx) {}; }; SomeClass x (10); SomeClass y(x);
(1) это неверно, потому что SomeClass не содержит public конструктора копирования.
(2) это неверно, потому что SomeClass не содержит виртуального деструктора.
(3) это неверно, потому что SomeClass не содержит конструктора по умолчанию.
(4) здесь нет ничего неверного. С инициализацией 'y' все в порядке.
(5) это неверно, потому что SomeClass не содержит конструктора копирования.
Выберите все допустимые в C++ константы.
(1) 36
(2) '1'
(3) 0x$1
(4) '\012'
(5) 5,65
Какие из выражений имеют значение true?
(1) (1 < 3) && (2 = = 1)
(2) (1 < 3) || (2 = = 1)
(3) (! (1 > 3)) && (1 < 3)
(4) ! ((1 < 3) && (2 = = 1))
(5) (1 > 3) || ! (1 > 3)
Что будет выведено на экран в результате работы фрагмента программы for (int ii = 0; ii < 3; ++ ii) { switch (ii) { case 0: cout << "ZERO"; case 1: cout << "ONE"; continue; case 2: cout << "TWO"; break; } cout << endl; }
(1) ZEROONEONETWO
(2) ZEROONETWO
(3) ZERO ONETWO
(4) ZEROONE TWO
(5) ZERO ONE TWO
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char a, char& d) { a = 'в'; d = 'с'; } int main() { char a[]="глаз"; f(a[0],a[3]); puts(a); return 0; }
(1) глас
(2) слаг
(3) глаз
Какие из следующих утверждений верные?
(1) константный метод объявляется с ключевым словом const после указания типа возвращаемого значения.
(2) константный метод может вызывать только константные методы.
(3) конструктор является примером константного метода.
(4) деструктор является примером константного метода.
(5) константный метод может вызываться из любых (не только константных) методов.
Выберите все правильные ответы. Число 256 можно хранить в переменной типа
(1) unsigned char
(2) unsigned short int
(3) signed char
(4) signed short int
(5) float
Какие из выражений имеют значение true, если а = 1?
(1) (a == 1) || ! false
(2) (a == 1) || (a = = 2)
(3) ! (a == 2) || true
(4) (a == 1) && false
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = abs(a[2]); for (i = 0; i < 8; i++) if (a[i] > k) k = abs(a[i])- 2; printf("%d",k); }
(1) 2
(2) 6
(3) 1
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char a, char d) { a = d; d = a; } int main() { char a[] = "глаз"; f(a[0],a[3]); puts(a); return 0; }
(1) влаг
(2) влаз
(3) глаз
Какие из следующих утверждений верные?
(1) константный метод объявляется с ключевым словом const перед списком параметров.
(2) константный метод не может изменять значения полей класса.
(3) константный метод не может вызывать любые другие методы класса.
(4) константный метод может вызываться для любых (не только константных) объектов.
(5) в константный метод неявно передается указатель this.
Выберите все правильные ответы. Число -33333 можно хранить в переменной типа
(1) long double
(2) unsigned long int
(3) signed long int
(4) unsigned short int
(5) float
Выберите правильные ответы. Можно ли присвоить значения
(1) целого типа - вещественной переменной
(2) целого типа - символьной переменной
(3) булевского типа - целой константе
(4) целого типа - булевской переменной
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = abs(a[7]); for (i = 0; i < 8; i++) if (abs(a[i]) > k) k = a[i]; printf("%d",k); }
(1) 2
(2) 3
(3) 0
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char* a, char* b) { a[1] = b[1]; b[2] = a[2]; } int main() { char a[]="abcd"; char b[]= "opr"; f(a,b); printf ("%s%s", a, b); return 0; }
(1) apcdopc
(2) apcdopp
(3) doapca
Что можно сказать о приведенном примере?> #include <iostream.h> class A{ int x; public: A(int y){x = y;} }; int main(){ A a(3); cout << a.x << endl; return 0; }
(1) программа будет работать нормально.
(2) при компиляции программы возникнет ошибка.
(3) программа будет компилироваться, но не будет компоноваться.
(4) при выполнении программы возникнет ошибка.
Выберите все правильные ответы. В переменной типа signed short int можно хранить число
(1) 213
(2) -13
(3) -213
(4) 35000
(5) -1.2
Выберите все правильные ответы. Можно ли присвоить
(1) вещественной переменной - целое выражение
(2) целую переменную - вещественной переменной
(3) целой константе - целую константу
(4) булевской переменной - булевскую константу
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> int main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,j,k; k = 0; j = 4; for (i = 0; i < 8; i++) if (a[i] > j) k = abs(a[i]); printf("%d",k); }
(1) 2
(2) 8
(3) 18
Какое из следующих утверждений относительно классов и структур истинно?
(1) структура может включать в себя только простейшие типы данных (int, char и т.д.).
(2) структура не может иметь конструкторов и деструкторов.
(3) структура не может быть наследником класса.
(4) поля класса закрыты по умолчанию.
(5) класс не может быть наследником структуры.
Выберите все правильные ответы. В переменной типа unsigned char можно хранить число
(1) 6
(2) 226
(3) -6
(4) -226
(5) 257
Выберите все правильные варианты. При использовании в программме оператора scanf("%d%d%d",&a,&b,&c) требуется разделять числовые значения величин при вводе при помощи
(1) одного пробела
(2) произвольного количества пробелов
(3) запятой
(4) нажатия клавиши ENTER
Какое число получится в результате работы программы? #include <stdio.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = 1; for (i = 0; i < 8; i++) if (a[i] == 0) k = i; printf("%d",k); }
(1) 2
(2) 45
(3) 4
Какие из следующих утверждений правильные?
(1) поля класса могут быть описаны с модификатором extern
(2) поля класса могут быть описаны с модификатором auto
(3) поля класса не могут иметь тип самого класса
(4) поля класса могут быть указателями на сам класс
Переменная типа signed char может принимать значения
(1) только из алфавита языка C++
(2) из первой половины кодовой таблицы
(3) только символов английского алфавита, цифр и символа подчеркивания
(4) от -128 до 127
Что будет выведено на экран в результате работы программы (учитывая формат вывода)? int k; float y; int main() { k = 4; y = 2; printf ("%4.2f%2d", y, k); return 0; }
(1) 2 4
(2) 2.00 4
(3) 4.00 2
Что будет выведено на экран в результате работы программы? #include <stdio.h> main(){ const char a[] = "abcrcaab"; int i; char k; k = 'b'; for (i = 0; i < 8; i++) if (a[i] < k) printf("%c",k); }
(1) aaa
(2) bbb
(3) ccc
Какие из следующих утверждений верные?
(1) локальный класс не может иметь статических элементов
(2) методы локального класса могут быть описаны вне класса
(3) методы локального класса могут быть описаны только внутри класса
(4) внутри локального класса нельзя использовать элементы перечислений из области, в которой он описан
(5) внутри локального класса можно использовать только стандартные типы данных
Что будет выведено на экран в результате работы программы (учитывая формат вывода)? #include <stdio.h> main() { int k; float x; k = 2; x = 3; printf("[%4.2f%d]", x, k); }
(1) [3.002]
(2) 32
(3) 32.0
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcrcaab"; int i; for (i = 0; i < 8; i++) if (a[i] < 'c') printf("%c",a[i]); }
(1) abaab
(2) abbaa
(3) baaba
Какие из следующих утверждений верные?
(1) внутри локального класса можно использовать внешние функции
(2) внутри локального класса нельзя использовать стандартные типы
(3) внутри локального класса можно использовать статические (static) переменные
(4) внутри локального класса можно использовать внешние (extern) переменные
(5) внутри локального класса можно использовать типы данных из области, в которой он описан
Найдите операторы вывода, не содержащие ошибок (int k; float x,y)
(1) printf (x=%f k=%d y=%5.2f , x, k, y);
(2) printf ("%5f %f", x*k, y);
(3) printf ("* %12f, %d4 %4f*", x*y, k, y);
(4) printf ("*, x, k * y, *'");
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcrcaab"; int i; char k; k = a[0]; for (i = 1; i < 8; i++) if (a[i] <= k) k = a[i]; printf("%c",k); }
(1) c
(2) a
(3) b
Какие из следующих утверждений верные?
(1) локальные объекты создаются до вызова функции main.
(2) класс может иметь только один конструктор.
(3) класс может иметь несколько конструкторов.
(4) конструкторы глобальных объектов вызываются при компиляции программы.
Выберите все правильные варианты. В списке параметров функции printf могут присутствовать
(1) имена переменных и констант
(2) зарезервированные слова
(3) выражения
(4) операторы
Что будет выведено на экран в результате работы программы? #include <stdio.h> const char a[] = "abcra"; int i; char k; main() { k = 'c'; for (i = 1; i < 5; i++) if (a[i] < k) { k = a[i]; printf("%c",k); } }
(1) bc
(2) ab
(3) ba
Какие из следующих утверждений неверные?
(1) конструкторы наследуются.
(2) конструкторы нельзя описывать с модификатором const.
(3) конструкторы нельзя описывать с модификатором virtual.
(4) конструкторы нельзя описывать с модификатором static.
Выберите пример указателя на константу.
(1) char* const pc
(2) char* pc
(3) const char* const pc
(4) невозможно определить указатель на константу.
(5) const char* pc
Какой конструктор вызывается при выполнении операции присваивания между существующими объектами одного типа?
(1) конструктор по умолчанию.
(2) конструктор копирования.
(3) конструктор с параметром-объектом.
(4) в этом случае никакой конструктор не вызывается.
Какое значение получит p[0] в данном примере? int a[2][3]={{1,2,3},{7,8,9}}; int *p=&a[0][0]; p+=3;
(1) 1
(2) 4
(3) 7
(4) 8
(5) значение не определено
Выберите неверное утверждение.
(1) дружественная функция объявляется внутри класса, к элементам которого ей нужен доступ, с ключевым словом friend.
(2) в качестве параметра ей должна передаваться ссылка на объект класса.
(3) дружественной функции передается указатель this.
(4) дружественная функция может быть обычной функцией.
(5) дружественная функция может быть методом другого, ранее определенного класса.
Какое значение получит p[0] в данном примере? int a[2][3]={{1,2,3},{7,8,9}}; int *p=&a[0][1]; p+=3;
(1) 1
(2) 4
(3) 7
(4) 8
Выберите правильные утверждения.
(1) для стандартных типов данных переопределять операции нельзя.
(2) функции-операции могут иметь аргументы по умолчанию.
(3) любые функции-операции не наследуются.
(4) функции-операции не могут определяться как static.
Какая операция используется для доступа к полям структуры через указатель?
(1) операция ->
(2) операция .
(3) операция ,
(4) операция ::
(5) операция .*
Какую величину вычисляет программа? #include <stdio.h> main(){ int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d",&a[i][j]); for (i = 0; i < 3; i++) { k = 0; for (j = 0; j < 4; j++) if (a[i][j] > 0) ++k; } printf("%d",k); }
(1) количество положительных элементов массива
(2) количество положительных элементов массива в каждой строке
(3) количество положительных элементов массива в последней строке
(4) количество положительных элементов массива в последнем столбце
(5) количество положительных элементов массива в первой строке
Какая из следующих операций при перегрузке в классе не должна иметь возвращаемое значение того же типа, что и сам класс?
(1) /
(2) -
(3) +=
(4) <=
Какую величину вычисляет программа? #include <stdio.h> main() { int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d", &a[i][j]); k = -1; for (i = 0; i < 4; i++) { for (j = 0; j < 3; j++) if (a[j][i] == 0) { k = i; break; } } printf("%d",k); }
(1) номер первого из столбцов массива, содержащих хотя бы один элемент, равный 0
(2) номер последнего из столбцов массива, содержащих хотя бы один элемент, равный 0
(3) количество положительных элементов массива в каждом столбце
(4) номер первой из строк массива, содержащих хотя бы один элемент, равный 0
(5) номер последней из строк массива, содержащих хотя бы один элемент, равный 0
Какая из следующих операций не может быть перегружена?
(1) +
(2) -
(3) ?:
(4) =
Какое из следующих утверждений правильное?
(1) доступ в объединениях по умолчанию private
(2) в объединениях можно использовать спецификаторы доступа
(3) объединение не может иметь конструктор и другие методы
(4) объединение может иметь статические методы
(5) объединение не может участвовать в иерархии классов
Какие из следующих утверждений верные?
(1) деструктор наследуется.
(2) деструктор может быть виртуальным.
(3) деструктор может быть вызван из программы.
(4) класс может иметь несколько деструкторов с различными именами.
(5) деструктор может иметь только один параметр.
Выберите правильное продолжение. Возможность иметь в одном классе несколько методов с одним именем это.
(1) Overriding (переопределение)
(2) Overloading (перегрузка)
(3) Inheritance (наследование)
(4) Еncapsulation (инкапсуляция)
Для приведенного ниже кода при вызове функции Func программа аварийно завершается. В чем причина ошибки? class Foo { char *buf; public: Foo(char *b = "default") { buf = new char[strlen(b) + 1]; strcpy(buf, b); } ~Foo() { delete[] buf; } }; Foo Func(Foo f) { return f; }
(1) значение конструктора по умолчанию имеет тип char*.
(2) функция должна возвращать Foo& (ссылку).
(3) требуется переопределить операцию =.
(4) выделяется недостаточный объем памяти.
(5) в классе отсутствует конструктор копирования.
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) русские буквы
(2) прописные латинские буквы
(3) цифры от 0 до 9
(4) символы (, ?, %
Выберите все правильные утверждения.
(1) результат арифметических операций над действительными числами - действительный
(2) в одном выражении можно использовать операнды действительного и целого типов
(3) результат операций сравнения действительных чисел - действительный
Цель структурного программирования - это:
(1) написание программы, состоящей из базовых конструкций структурного программирования
(2) уменьшение ошибок при отладке программ и упрощение их модификации
(3) использование самых простых структур данных
(4) уменьшение объема программы
Выберите все правильные утверждения.
(1) локальные переменные существуют только во время выполнения функции
(2) для параметров, передаваемых по значению, в стеке создается их копия
(3) компилятор инициализирует нулями локальные переменные
(4) функция может возвращать значение стандартного типа
Выберите правильные утверждения (одно или более). Упрощение структуры программы всегда приводит
(1) к уменьшению количества повторяющихся фрагментов
(2) к увеличению ее быстродействия
(3) к облегчению ее отладки
(4) к увеличению количества классов
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ только объекты самого класса и объекты класса потомка?
(1) protected
(2) public
(3) virtual protected
(4) private
(5) virtual
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) прописные латинские буквы
(2) строчные латинские буквы
(3) цифры
(4) символы <, >, =, !
Выберите все правильные ответы. Поразрядные операции &, |, ^ и ~ применимы к
(1) операндам типа bool
(2) операндам типа int
(3) операндам типа float
(4) операндам типа char
В условном операторе между ключевыми словами if и else после выражения в скобках может находиться
(1) любой оператор
(2) любой оператор, кроме оператора перехода
(3) условный оператор
(4) произвольное количество операторов
Параметр функции описан как "int a". Соответствующий ему аргумент может быть:
(1) константой типа int
(2) переменной типа int
(3) выражением типа int
(4) выражением любого типа
Выберите правильные утверждения (одно или более). Недостатками ООП являются:
(1) большой объем информации, необходимый для грамотного применения ООП
(2) локализация свойств и поведения объекта о одном месте
(3) возможное уменьшение быстродействия программы за счет виртуальных методов
(4) избыточный код программы
Какие из следующих утверждений являются НЕПРАВИЛЬНЫМИ? class Base{}; class Derived: protected Base{};
(1) Base является закрытым потомком Derived.
(2) Base является суперклассом для Derived.
(3) Derived является дочерним классом Base.
(4) Derived является закрытым потомком Base.
Выберите все правильные ответы. Алфавит языка C++ включает в себя:
(1) лексемы
(2) латинские буквы
(3) директивы препроцессора
(4) символы !, ?, *
Какая из следующих операций языка C выполняется слева направо?
(1) +=
(2) = =
(3) - =
(4) *=
(5) %=
В условном операторе в ветке "ИНАЧЕ" после ключевого слова else может находиться
(1) любой оператор, кроме оператора перехода
(2) вложенный условный оператор
(3) произвольное количество операторов
(4) простой или составной оператор
Параметр функции описан как "int& a". Соответствующий ему аргумент может быть:
(1) переменной типа int
(2) выражением типа int
(3) выражением типа, совместимого с int
(4) константой типа int
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { public: int x; }; class derived : basex {};
(1) protected
(2) private
(3) global
(4) public
(5) local
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) знаки операций
(2) разделители
(3) двоичные числа
(4) имена
Чему равно значение выражения (! a && ( b || c)), где a, b и с - величины типа bool, имеющие значения true, true и false соответственно?
(1) false
(2) true
Чему будет равно значение переменной А после выполнения фрагмента программы, если В = 5? A = 2; if (В <= 4) C = 1; else { C = 0; A = C; }
(1) 0
(2) 1
(3) 2
Заголовок функции имеет вид: void f( float a, float b, float& c); Укажите правильные варианты вызова функции, если переменные в вызывающей функции описаны так: int a; char b,c; float d,x;
(1) f(a,b,c);
(2) f(d+a,c,x);
(3) f(x,'c',d);
(4) f(a,b,a+1);
Выберите правильное продолжение. Проект так относится к зданию, как класс к ...
(1) абстрактному типу данных
(2) экземпляру
(3) интерфейсу
(4) подклассу
Выберите правильные утверждения.
(1) абстрактный класс не может иметь потомков.
(2) класс является абстрактным, если в нем есть виртуальные функции.
(3) класс является абстрактным, если в нем есть чисто виртуальные функции.
(4) допускается объявление переменной-указателя на абстрактный класс.
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) разделители
(2) целые константы
(3) комментарии
(4) идентификаторы
Чему равно значение выражения (a || b && a || c), где a, b ис - величины типа bool, имеющие значения false, true и true соответственно?
(1) false
(2) true
Чему будет равно значение переменной a после выполнения фрагмента программы, если b = 2? a = 1; if ((b < 0) || (b > 1)) a = 3; if (b > 5) a = 5;
(1) 0
(2) 3
(3) 2
Заголовок функции имеет вид: void P(int a,char b, float c); Укажите правильные варианты вызова подпрограммы, если переменные в вызывающей функции описаны так: char a[10]; float c; int d;
(1) P(3200,'a',c/2*d);
(2) P(a,c,d-1);
(3) P(c,a[4],d);
(4) P(d,a[2],c);
При описании метода перед его именем указывается
(1) имя типа объекта
(2) имя экземпляра объекта
(3) имя поля объекта
(4) имя объекта-предка
(5) ничего не указывается
Выберите верные утверждения
(1) параметром шаблона может быть стандартный тип данных
(2) шаблоны методов не могут быть виртуальными.
(3) у класса-шаблона могут быть друзья.
(4) шаблоны не могут являться базовыми для обычных классов.
(5) в классе-шаблоне нельзя объявлять статические поля
Выберите все правильные ответы. Элементарные конструкции (лексемы) языка C++ включают в себя:
(1) двоичные числа
(2) идентификаторы
(3) разделители
(4) выражения
Чему будет равно значение переменной m после выполнения программы? int main () { int k; int m; k = 0; m = 0; while (k < 3) ++k; ++m; return m; }
(1) 0
(2) 5
(3) 1
Что будет выведено на экран в результате работы программы? #include <stdio.h> int a, b, c, d; void f( int a, int& c, int& d) { int b; a = 5; c = 7; b = 9; } int main() { a = 1; c = 1; b = 1; f(a,c,b); printf ("%d|%d|%d",a,c,b); return 0; }
(1) 7|7|1
(2) 1|7|1
(3) 7|1|1
По умолчанию все поля и методы класса являются
(1) public
(2) private
(3) local
(4) global
(5) protected
Выберите все допустимые в C++ константы.
(1) 'Ж'
(2) '1'
(3) 1.'2 e1'
(4) "вася"
Какие выражения не содержат синтаксических ошибок?
(1) sin(abs(0.6e3*y/_do))
(2) sin(do*(0.6e3*y))
(3) 0XEF01*1.34E-2/i7/_12
Чему будет равно значение переменной m после выполнения программы? main() { int k; int m; k = 3; m = 0; while (k > 0) { k--; m++; }}
(1) 0
(2) 3
(3) 2
Что будет выведено на экран в результате работы программы? #include <stdio.h> int a, b, c, d; void f( int& a, int c, int& d) { int b; a = 5; c = 7; b = 9; } int main() { a = 1; c = 1; b = 1; f(a,b,c); printf ("%d|%d|%d",a,c,b); return 0; }
(1) 5|1|1
(2) 1|1|5
(3) 5|5|1
Выберите все допустимые в C++ константы.
(1) -7
(2) 00
(3) "wццц"
(4) 1.2 e1
(5) 0x0
Какие выражения не содержат синтаксических ошибок?
(1) (a*abs(x)+/(0,6*k)
(2) a-0.1*0x0A1
(3) sin(t)/sin(t2)
(4) sin(t)/sin(2t)
Чему будет равно значение переменной m после выполнения программы? main() { int k; int m; m = 1; for (k = 3; k >= 1; k--) ++m; }
(1) 10
(2) 4
(3) 2
Выберите заголовки функций, не содержащие синтаксических ошибок.
(1) float f(long* array, const int n);
(2) int f(long a[10]);
(3) float f(long i, long j);
(4) &int f(int i);
Какое определение правильно описывает класс со статическим полем и правильно инициализирует его?
(1) class bad {static int I;}; int bad::I=99;
(2) class bad {static I;}; int bad:I=99;
(3) class bad {int I=99;}; int bad::I=99;
(4) class bad {static int I = 99;};
(5) class bad {static int I=99;}; int I::bad=99;
Выберите все допустимые в C++ константы.
(1) &
(2) # 2
(3) 26.4
(4) 0xA0
(5) 3,59e0,2
Какие из выражений имеют значение true, если а = 1?
(1) (a < 3) || (a = = 5)
(2) ! ((a < 3) && true)
(3) (a < 3) && (a = = 2)
(4) (a = = 1) || (a = = 2)
Что будет выведено на экран в результате работы программы? for (int ii = 0; ii < 3; ++ ii) { switch (ii) { case 0: cout << "ZERO"; break; case 1: cout << "ONE"; case 2: cout << "TWO"; continue; } cout << endl; }
(1) ZEROONEONETWO
(2) ZEROONETWO
(3) ZERO ONETWO
(4) ZEROONETWOTWO
(5) ZERO ONE TWO
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char& a, char d) { a = 'в'; d = 'д'; } int main() { char a[] = "глаз"; f(a[0],a[3]); puts(a); return 0; }
(1) вгаз
(2) глаз
(3) влаз
Какие из следующих утверждений верные?
(1) константный метод объявляется с ключевым словом const перед указанием типа возвращаемого значения.
(2) константный метод не может изменять значения полей класса.
(3) константный метод может вызываться для любых (не только константных) объектов.
(4) константный метод не может вызывать константные методы класса.
(5) константный метод может изменять значения константных полей класса.
Выберите все правильные ответы. Число -300 можно хранить в переменной типа
(1) unsigned char
(2) unsigned short int
(3) signed char
(4) signed short int
(5) float
Какие из выражений имеют значение true, если а = 1?
(1) (a == 1) || ! (a == 1)
(2) (a == 1) || false
(3) (a > 1) || (a == 5)
(4) ! (a == 2) || true
Какое число будет выведено в результате работы программы? #include <stdio.h> #include <math.h> int main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = abs(a[7]); for (i = 0; i< 8; i++) { if (abs(a[i]) > k) k = abs(a[i]); printf("%d",k); } }
38888899
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char* a, char* b) { a = b; b = a; } int main() { char a[]="abcde"; char b[]= "opr"; f(a,b); puts(a); return 0; }
(1) acbde
(2) abcde
(3) abdec
Какая операция используется для доступа к открытым полям объекта?
(1) операция ->
(2) операция .
(3) операция ,
(4) операция ::
(5) операция .*
Выберите все правильные ответы. Число -1 можно хранить в переменной типа
(1) unsigned char
(2) unsigned short int
(3) signed char
(4) signed short int
(5) float
Выберите правильные утверждения:
(1) целой переменной можно присвоить целую константу
(2) целой переменной можно присвоить вещественную константу
(3) целой константе можно присвоить целую переменную
(4) целой константе можно присвоить вещественную переменную
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = abs(a[7]); for (i = 0; i < 8; i++) if (abs(a[i]) < k) k = abs(a[i]); printf("%d",k); }
(1) 20
(2) 1
(3) 0
Что будет выведено на экран в результате работы программы? #include <stdio.h> void f(char* a, char* b) { char* c; c = a; a = b; b = c; } int main() { char a[]="abc"; char b[]= "pr"; f(a,b); printf ("%s%s", a, b); return 0; }
(1) arbcp
(2) arbcc
(3) abcpr
Что можно сказать о приведенном примере? #include <iostream.h> class A{ int x; public: A(int y){x = y;} }; int main() { A a; cin >> a.x; return 0; }
(1) программа будет работать нормально.
(2) при компиляции программы возникнет ошибка.
(3) программа будет компилироваться, но не будет компоноваться.
(4) при выполнении программы возникнет ошибка.
Выберите все правильные ответы. В переменной типа unsigned short int можно хранить число
(1) 13
(2) 213
(3) -13
(4) -213
(5) 32000
Если данные в программе вводятся с помощью оператора scanf("%d%d%d",&a,&b,&c), то располагать числовые значения при вводе требуется
(1) на одной строке
(2) в столбик
(3) произвольно
Какое число получится в результате работы программы? #include <stdio.h> #include <math.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,j,k; k = 0; j = 4; for (i = 0; i < 8; i++) if (abs(a[i]) > j) ++k; printf("%d",k); }
(1) 2
(2) 12
(3) 3
Какое из следующих утверждений правильное?
(1) поля класса могут быть описаны с модификатором static
(2) поля класса могут быть описаны с модификатором auto
(3) поля класса могут быть описаны с модификатором register
(4) поля класса могут быть описаны с модификатором extern
Переменная типа unsigned char может принимать значения
(1) символов c кодами от 0 до 32
(2) символов английского алфавита и цифр
(3) от -128 до 127
Что будет выведено на экран в результате работы программы (учитывая формат вывода)? #include main() { int i; float t; i = 1; t = 5; printf("%3.1f%d%2d", t, i, i); }
(1) 1.01 5
(2) 51 1
(3) 5.01 1
Что будет выведено на экран в результате работы программы? #include <stdio.h> main(){ const char a[] = "abcrcaab"; int i; char k; k = 'a'; for (i = 0; i < 8; i++) if (a[i] > k) { k = a[i]; printf("%c",k); } }
(1) ccb
(2) bcr
(3) cbr
Какие из следующих утверждений верные?
(1) внутри локального класса можно использовать внешние функции
(2) внутри локального класса можно использовать элементы перечислений из области, в которой он описан
(3) локальный класс может иметь статические элементы
(4) методы локального класса не могут быть описаны вне класса
Выберите все правильные варианты. При использовании в программе функции scanf требуется разделять числовые значения величин при вводе при помощи
(1) только одного пробела
(2) произвольного количества пробелов
(3) нажатия клавиши TAB
(4) клавиш со стрелками
Какое число получится в результате работы программы? #include <stdio.h> main() { const int a[8] = {3,8,0,-6,0,-1,-9,3}; int i,k; k = 1; for (i = 7; i >= 0; i--) if (a[i] == 0) k = i; printf("%d",k); }
(1) -2
(2) 0
(3) 2
Какие из следующих утверждений правильные?
(1) поля класса могут быть описаны с модификатором extern
(2) поля класса могут быть описаны с модификатором register
(3) поля класса не могут быть ссылками на сам класс
(4) поля класса могут быть указателями на сам класс
Найдите операторы вывода, не содержащие ошибок (int k; float x,y)
(1) printf ("%4.2f %d",y, k);
(2) printf ("%f %f", x, k);
(3) printf ("%d %f", x, k);
(4) printf ("%f %f", x, k * y);
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcrcaab"; int i; for (i = 7; i > 1; i--) if (a[i] < 'c') printf("%c",a[i]); }
(1) baa
(2) aab
(3) raa
Почему конструктор копирования ДОЛЖЕН иметь в качестве параметра ссылку?
(1) потому что иначе при передаче параметра по значению конструктор будет вызываться рекурсивно.
(2) потому что функция-член класса может иметь в качестве параметра только ссылку.
(3) потому что переменная, передаваемая по ссылке, может быть изменена.
(4) потому что использование ссылки дает более эффективный код.
Найдите операторы вывода, не содержащие ошибок (int d; float x,y)
(1) printf ("|%4d|%6.2f|%6.2f|",d,x,y);
(2) printf ("|%4d|%6.2f|%6.2f|",x,y,d);
(3) printf ("|%4d|%6.2f|%6.2f|",d,x,x*x);
(4) printf ("|%4.2d|%6.2f|%6.2f|",d,x,y);
Что будет выведено на экран в результате работы программы? #include <stdio.h> main() { const char a[] = "abcrcaab"; int i; char k; k = a[0]; for (i = 1; i < 8; i++) if (a[i] < k) k = a[i]; printf("%c",k); }
(1) b
(2) a
(3) r
Какие из следующих утверждений неверные?
(1) конструктор возвращает значение типа void.
(2) класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации.
(3) конструктор не может иметь параметров.
(4) нельзя получить указатель на конструктор.
Выберите все правильные утверждения. В функции printf для величин действительного типа можно задавать формат вида printf("%К.Мf", A), где А - переменная или выражение,
(1) K - общее количество позиций, отводимое под переменную А
(2) K - количество позиций, отводимое под целую часть переменной А
(3) K и M должны быть целыми
(4) K и M могут быть действительными
Что будет выведено на экран в результате работы программы? #include <stdio.h> const char a[] = "abcra"; int i; char k; main() { k = 'c'; for (i = 1; i < 5; i++) if (a[i] >= k) { k = a[i]; printf("%c",k); } }
(1) ac
(2) rc
(3) cr
Какие из следующих утверждений неверные?
(1) класс может иметь несколько конструкторов с разными параметрами для разных видов инициализации.
(2) конструктор, вызываемый без параметров, называется конструктором по умолчанию.
(3) параметры конструктора могут иметь любой тип, кроме этого же класса.
(4) конструктор не может выбросить исключение.
Выберите пример указателя-константы на константу.
(1) char* const pc
(2) char* pc
(3) const char* const pc
(4) невозможно определить указатель-константу на константу.
(5) const char* pc
Выберите правильные варианты продолжения. Конструктор копирования вызывается при ...
(1) при передаче объекта в функцию по ссылке
(2) описании нового объекта с инициализацией другим объектом
(3) передаче объекта в функцию по значению
(4) возврате адреса объекта из функции
Какое значение получит "p[0]" в данном примере? int a[2][3]={{1,2,3},{7,8,9}}; int *p=&a[0][0]; p+=2;
(1) 1
(2) 3
(3) 7
(4) 8
(5) значение не определено
Какое из следующих утверждений НЕПРАВИЛЬНОЕ?
(1) вы можете определить дружественную функцию и дружественный класс.
(2) если класс А является дружественным для класса B, то класс A имеет доступ ко всем закрытым полям и методам класса В.
(3) если класс А является дружественным для класса B и класс С - потомок B, то класс A является дружественным для C.
(4) если класс А является дружественным для класса B, это не означает, что класс B является дружественным для A.
Какое значение получит "p[0]" в данном примере? int a[2][3]={{1,2,3},{7,8,9}}; int *p=&a[0][2]; p+=3;
(1) 1
(2) 4
(3) 7
(4) 9
Какая из следующих операций может быть перегружена в классе?
(1) .*
(2) .
(3) ::
(4) ?:
(5) ->*
С переменными, относящимися к перечисляемому типу данных, можно выполнять операции:
(1) присваивания
(2) взятия адреса
(3) вывода на экран
(4) отношения
Какая из следующих операций при перегрузке в классе не должна иметь возвращаемое значение того же типа, что и сам класс?
(1) *
(2) -
(3) <
(4) =
Какую величину вычисляет программа? #include <stdio.h> main() { int a[3][4]; int i, j, k; for (i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d", &a[i][j]); for (i = 0; i < 4; i++) { k = 0; for (j = 0; j < 3; j++) if (a[j][i] > 0) ++k; } printf("%d",k); }
(1) количество положительных элементов массива
(2) количество положительных элементов массива в каждой строке
(3) количество положительных элементов массива в каждом столбце
(4) количество положительных элементов массива в последней строке
(5) количество положительных элементов массива в последнем столбце
Какая из следующих операций при перегрузке в классе не должна иметь возвращаемое значение того же типа, что и сам класс?
(1) ! =
(2) * =
(3) + =
(4) - =
Какое из следующих утверждений неправильное?
(1) доступ в объединениях по умолчанию public
(2) в объединениях можно явным образом использовать спецификаторы доступа
(3) объединение не может участвовать в иерархии классов
(4) элементами объединения не могут быть объекты, содержащие конструкторы и деструкторы
(5) объединение может иметь конструктор и другие методы, только не статические
(6) в анонимном объединении нельзя описывать методы
Какая из следующих операций не может быть перегружена?
(1) #
(2) -
(3) <
(4) *=
При компиляции следующего примера возникает ошибка. Чтобы ее исправить, необходимо ... class Foo{ int x; public: Foo(int i){} }; class Bar: virtual Foo{ public: Bar(){} }; Bar b;
(1) добавить конструктор класса "Bar" который получает параметр типа int
(2) добавить вызов "Foo()" к конструктору класса "Bar"
(3) добавить вызов "Foo(0)" к конструктору класса "Bar"
(4) добавить виртуальный деструктор для класса "Bar"
(5) добавить конструктор копирования для класса "Foo"
Какой из операторов нужно использовать для того, чтобы инициализировать значение p адресом объекта ob для приведенного ниже кода? class myclass { int a; public: myclass(int x); }; myclass::myclass(int x) { a = x;} int main() { myclass ob(120); myclass *p; return 0; }
(1) *p = myclass *ob;
(2) *p = *ob;
(3) p = &ob;
(4) p = *ob;
(5) p = ob;
Выберите правильный вызов функции-члена класса С через указатель "pmfn" class Class1 { public: void func(); }; void (Class1::*pmfn)() = &Class1::func; Class1 *c;
(1) c->pmfn();
(2) (c.*pmfn)();
(3) c.*pmfn();
(4) c->*pmfn();
(5) (c->*pmfn)();
Выберите все правильные утверждения. В функции printf для величин действительного типа можно задавать формат вида printf("%К.Мf", A), где А - переменная или выражение,
(1) М - количество позиций, отводимое под дробную часть переменной А
(2) K - количество позиций, отводимое под целую часть переменной А
(3) K и M могут быть выражениями целого типа
(4) K и M могут быть константами целого типа
Какое из следующих утверждений истинно?
(1) перегруженные функции должны отличаться типом параметров
(2) перегруженные функции должны отличаться именами параметров
(3) перегруженные функции должны отличаться типом возвращаемого значения
Выберите правильные утверждения (одно или более). Инкапсуляция приводит к
(1) упрощению структуры программы
(2) уменьшению степени абстракции программы
(3) упрощению поиска ошибок
(4) упрощению внесения изменений в программу
Что необходимо поставить на место "???" в приведенном примере так, чтобы класс C не имел доступа к неоткрытым (non-public) членам класса A? class A { // ... }; class B : ??? A {}; class C : public B {};
(1) protected
(2) public
(3) virtual protected
(4) private
(5) virtual
Выберите наиболее подходящий ответ. В объектно-ориентированной программе объекты обмениваются между собой
(1) данными
(2) методами
(3) сообщениями
(4) информацией
Выберите правильные утверждения.
(1) класс, имеющий чисто виртуальные функции, не является абстрактным.
(2) абстрактный класс нельзя использовать при явном приведении типов для описания типа параметра функции.
(3) абстрактный класс нельзя использовать при явном приведении типов для описания типа возвращаемого функцией значения.
(4) допускается создание объекта абстрактного класса.
Выберите правильные варианты продолжения. Конструктор копирования вызывается при ...
(1) описании нового объекта с инициализацией другим объектом
(2) передаче объекта в функцию через указатель
(3) возврате объекта из функции
(4) выполнении операции присваивания
Какая из следующих операций не может быть перегружена?
(1) *
(2) -
(3) sizeof
(4) >=
С каким модификатором доступа должны быть описаны члены класса, чтобы к ним имели доступ любые объекты?
(1) protected
(2) public
(3) virtual protected
(4) private
(5) virtual
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { protected: int x; }; class derived : public basex {};
(1) protected
(2) private
(3) global
(4) public
(5) local
Выберите верные утверждения
(1) параметром шаблона может быть тип данных, определенный пользователем
(2) шаблоны классов могут содержать статические элементы.
(3) шаблоны могут быть друзьями.
(4) параметрам шаблонного класса нельзя присваивать значения по умолчанию.
(5) шаблонный класс можно объявлять внутри функции.
Когда происходит динамическое связывание?
(1) на этапе компиляции программы.
(2) на этапе компоновки программы.
(3) на этапе выполнения программы.
(4) при создании объектов.
Выберите правильное утверждение. class A {}; class B : public А {};
(1) класс В является закрытым потомком класса А.
(2) класс В является защищенным потомком класса А.
(3) класс В является открытым потомком класса А.
(4) класс В не является потомком класса А.
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { protected: int x; }; class derived : private basex {};
(1) protected
(2) global
(3) private
(4) public
(5) local
Выберите правильное утверждение. Если класс, производный от абстрактного, не определяет все чисто виртуальные функции, он является:
(1) абстрактным
(2) виртуальным
(3) открытым
(4) закрытым
Выберите верные утверждения
(1) параметром шаблона может быть переменная целого типа
(2) шаблоны классов могут содержать дружественные функции.
(3) класс может быть объявлен внутри шаблона.
(4) параметром шаблона может быть переменная вещественного типа
(5) шаблоны методов могут быть виртуальными.
Какое из следующих утверждений является примером полиморфизма?
(1) класс включает данные с одинаковыми именами, но разными типами.
(2) выражение, в котором указатель на класс-потомок используется для вызова функции, определенной в базовом классе.
(3) функция-член одного класса вызывает функцию-член другого класса.
(4) указатель на базовый класс используется для доступа к закрытым членам класса.
(5) выражение, в котором вызывается виртуальная функция.
Выберите правильное утверждение. class A {}; class B : protected А {};
(1) класс В является закрытым потомком класса А.
(2) класс В является защищенным потомком класса А.
(3) класс В является открытым потомком класса А.
(4) класс В не является потомком класса А.
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { public: int x; }; class derived : protected basex {};
(1) global
(2) protected
(3) private
(4) public
(5) local
Какое из следующих утверждений о классе "derived2" верно для приведенного ниже кода? class mybase {}; class derived1 {}; class derived2:public mybase,derived1{};
(1) описание "derived2" неверно, т.к. либо derived, либо mybase должны быть виртуальными.
(2) derived2 использует наследование public для mybase и наследование private для derived1.
(3) описание "derived2" неверно, т.к. "derived1" должен иметь спецификатор доступа.
(4) derived2 использует наследование public для mybase и наследование public для derived1.
(5) описание "derived2" неверно, т.к. "derived2" может наследоваться только от одного класса.
Выберите верные утверждения
(1) параметром шаблона может быть переменная булевского типа
(2) шаблон может быть объявлен внутри класса.
(3) шаблонный класс нельзя объявлять внутри функции.
(4) шаблоны классов не могут содержать статические элементы.
(5) шаблоны не могут быть производными от обычных классов.
Какое из следующих утверждений истинно?
(1) виртуальные функции должны отличаться числом параметров.
(2) виртуальные функции должны отличаться типом параметров.
(3) виртуальные функции должны полностью совпадать по типу и числу параметров.
(4) виртуальные функции должны отличаться типом возвращаемого значения.
Выберите правильное утверждение. class A {}; class B : private А {};
(1) класс В является закрытым потомком класса А.
(2) класс В является защищенным потомком класса А.
(3) класс В является открытым потомком класса А.
(4) класс В не является потомком класса А.
Какой уровень доступа имеет переменная "x" из класса "derived" в приведенном примере? class basex { protected: int x; }; class derived : protected basex {};
(1) protected
(2) global
(3) private
(4) public
(5) local
Почему приведенный ниже фрагмент кода НЕВЕРЕН? namespace f { struct Obj { struct T; template<class T, class f> virtual void f() { } }; };
(1) здесь все верно.
(2) параметр шаблона f конфликтует с именованной областью f.
(3) виртуальные методы не могут быть шаблонами.
(4) классы и структуры не могут содержать шаблоны методов.
(5) предварительное описание Т конфликтует с параметром шаблона T.
Выберите верные утверждения
(1) параметром шаблона может быть переменная символьного типа
(2) шаблоны могут быть производными от обычных классов.
(3) шаблонный класс нельзя объявлять внутри функции.
(4) шаблоны классов не могут содержать статические элементы.
(5) шаблоны классов не могут содержать дружественные функции.
Если доступ к элементу в базовом классе public, а спецификатор доступа в наследуемом классе - private, какое из приведенных ниже высказываний ИСТИННО?
(1) обращение к элементам базового класса невозможно.
(2) к элементам базового класса могут обращаться потомки объектов производных классов.
(3) производный класс может обращаться к элементам базового класса.
(4) производный класс НЕ может обращаться к элементам базового класса.
(5) производный класс НЕ может обращаться к элементам производного класса.
Руководствуясь приведенным кодом, определите, к каким переменным можно обращаться из класса Friend: class Base { public: int a; protected: int b; private: int c; }; class Derived: Base { friend class Friend; int d; }; class Friend { Derived derived; };
(1) ни к одной
(2) только к 'a' и 'd'
(3) только к 'b' и 'a'
(4) только к 'a', 'b', и 'c'
(5) только к 'a', 'b', и 'd'
Что выведется на экран в результате работы следующего кода? class Base { public: void f() {cout<<"111"<<endl;} }; class Derived: public Base { public: void f() {cout<<"222"<<endl;} }; int main() { Base* ptr= new Derived; ptr->f(); return 0; }
(1) 111
(2) 222
(3) 333
Какое из приведенных ниже утверждений ЛОЖНО в применении к классам?
(1) если не определить конструктор копирования, он будет создан по умолчанию.
(2) класс может иметь несколько деструкторов.
(3) дружественный класс может иметь доступ к private полям и методам другого класса.
(4) класс может иметь несколько конструкторов.
(5) если не определен конструктор, будет создан конструктор по умолчанию.
Выберите верные утверждения
(1) параметром шаблона может быть указатель
(2) шаблоны могут являться базовыми для обычных классов.
(3) в обычном классе можно объявить шаблонный метод.
(4) шаблоны классов не могут содержать дружественные классы.
(5) в классе-шаблоне нельзя объявлять статические методы
Какое из приведенных ниже высказываний о наследовании истинно?
(1) объект производного класса - это также и объект родительского класса.
(2) производный класс - это копия родительского класса и находится на два уровня ниже от своего родительского класса в иерархии классов.
(3) производный класс будет переопределен своим родительским классом всякий раз, когда встретится общая для них функция.
(4) порожденный класс определяет изменения только в своем непосредственном классе-предке.
(5) порожденный класс является копией родительского класса и представляет собой последний уровень в иерархии классов.
Руководствуясь приведенным кодом, определите, к каким переменным можно обращаться из класса Friend: class Base { int a; public: int b; protected: int c; }; class Derived: Base { friend class Friend; int d; }; class Friend { Derived derived; };
(1) ни к одной
(2) только к 'b' и 'd'
(3) только к 'b' и 'a'
(4) только к 'b', 'd' и 'c'
(5) только к 'a', 'b' и 'd'
Что выведется на экран в результате работы следующего кода? class Base { public: virtual void f() {cout<<"111"<<endl;} }; class Derived: public Base { public: void f() {cout<<"222"<<endl;} }; int main() { Base* ptr= new Derived; ptr->f(); return 0; }
(1) 111
(2) 222
(3) 333
Выберите верные утверждения
(1) параметром шаблона может быть ссылка
(2) параметрам шаблонного класса можно присваивать значения по умолчанию.
(3) в классе-шаблоне можно объявлять статические методы
(4) шаблоны не могут быть производными от обычных классов.
(5) параметрам шаблонного класса нельзя присваивать значения по умолчанию.
Руководствуясь приведенным кодом, определите, к каким переменным можно обращаться из класса Friend: class Base { int b; protected: int c; public: int d; }; class Derived: Base { friend class Friend; int e; }; class Friend { Derived derived; };
(1) ни к одной
(2) только к 'b' и 'e'
(3) только к 'e', 'd', и 'c'
(4) только к 'd' и 'e'
(5) только к 'c' и 'd'
Что выведется на экран в результате работы следующего кода? class Base { public: Base(int _x = 10){x = _x;} void f() {cout<<x*2<<endl;} protected: int x; }; class Derived: public Base { public: void f() {cout<<x/2<<endl;} }; int main() { Derived d; Base* pB= &d; pB->f(); return 0; }
(1) 20
(2) 22
(3) 10
Выберите верные утверждения
(1) шаблоны методов не могут быть виртуальными.
(2) шаблоны могут являться базовыми для обычных классов.
(3) параметром шаблона может быть только стандартный тип данных
(4) шаблоны классов не могут содержать статические элементы.
(5) класс не может быть объявлен внутри шаблона.
Что выведется на экран в результате работы следующего кода? class Base { public: Base(int _x=10){x=_x;} virtual void f() {cout<<x*2<<endl;} protected: int x; }; class Derived: public Base { public: void f() {cout<<x/2<<endl;} }; int main() { Derived d; Base* pB= &d; pB->f(); return 0;
(1) 5
(2) 4
(3) 15
Выберите верные утверждения
(1) шаблоны методов не могут быть виртуальными.
(2) параметрам шаблонного класса можно присваивать значения по умолчанию.
(3) в обычном классе можно объявить шаблонный метод.
(4) шаблоны не могут быть производными от обычных классов.
(5) в классе-шаблоне нельзя объявлять статические поля