Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы разработки программ на языке С++ для систем информационной безопасности. Учебное пособие
.pdf
Примеры тестовых вопросов
141
а) stringstream;
б) time_t;
в) string;
г) struct.
72. Что такое строковый поток?
а) адрес памяти, в которой может сохраняться строка символов;
б) символьный массив с ограничителем;
в) особый вид строк со специальной кодировкой;
г) объект, в который можно вывести информацию оператором <<.
73. Как получить строку из строкового потока?
а) используя метод open(…);
б) используя метод c_str() класса строк;
в) используя метод str() класса строкового потока;
г) используя оператор >>.
74. Какая функция позволяет получить текущее время?
а) time( time_t t );
б) localtime( time_t t );
в) mktime ( tm t );
г) asctime( time_t t ).
75. Какая функция позволяет получить текущее время в структуриро-
ванном виде ( структуры tm )?
а) time( time_t t );
б) localtime( time_t );
в) mktime ( tm t );
г) asctime( time_t t ).
76. Какая функция позволяет получить время из структуры tm в виде
числа секунд?
а) time( time_t t );
б) localtime( time_t t );
в) asctime( time_t t );
г) mktime ( tm t ).

Примеры тестовых вопросов
142
77. Какой из операторов С++ предназначен для динамического выде-
ления памяти?
а) new;
б) delete;
в) set;
г) namespace.
78. Какой из операторов С++ предназначен для освобождения дина-
мически выделенной памяти?
а) new;
б) delete;
в) set;
г) namespace.
79. Какая функция библиотеки позволяет динамически выделять па-
мять?
а) mswap(…);
б) memcopy(…);
в) malloc(…);
г) free().
80. Какая функция библиотеки позволяет освободить динамически
выделять память?
а) memswap(…);
б) memcopy(…);
в) malloc(…);
г) free().
81. Какое из перечисленных преобразований является безопасным?
а) типа double в тип char;
б) типа double в тип long;
в) типа int в тип short;
г) типа int в тип long.
82. Какое из перечисленных преобразований является опасным?
а) типа int в тип double;
б) типа int в тип string;

Примеры тестовых вопросов
143
в) типа int в тип char;
г) типа int в тип float.
83. Как называется функция преобразования строки в число с плава-
ющей точкой?
а) atoi(…);
б) strtod(…);
в) _itoa(…);
г) _ecvt(…).
84. Как называется функция преобразования целого числа в строку?
а) _itoa(…);
б) atoi(…);
в) _ecvt(…);
г) strtod(…).
85. Что такое контейнер?
а) класс объектов, предназначенный для хранения объектов других
классов;
б) класс объектов, использующийся для хранения программного кода;
в) класс объектов для хранения массивов;
г) класс объектов для хранения таблиц.
86. Что такое итератор?
а) объект для указания одного из контейнеров;
б) объект для указания элементов контейнера;
в) объект для указания алгоритма;
г) объект для указания позиции в файле.
87. Какой объект определяется в приведённом программном коде?
а) вектор таблиц;
б) итератор для таблицы;
в) итератор для вектора;
г) список итераторов.
88. Какого типа элементы может содержать контейнер, описанный в
приведённом программном коде?

Примеры тестовых вопросов
144
а) любые типы;
б) строковые потоки;
в) строки символов;
г) целые числа.
89. Какая из функций может быть использована как предикат сравне-
ния для алгоритма поиска find?
а) bool function(char e1, char e2);
б) struct tm function(char e1, char e2);
в) void function(char e1, char e2);
г) fstream function(char e1, char e2).
90. Для каких типов элементов в контейнере может использоваться
алгоритм поиска find?
а) только для строк;
б) для любых типов;
в) только для чисел;
г) только для структур.
91. Оценка сложности последовательного поиска определяется выра-
жением:
а) о( N );
б) o( logN );
в) o( N**2 );
г) o( N log N ).
92. Оценка сложности бинарного поиска определяется выражением:
а) о( N );
б) o( log N );
в) o( N**2 );
г) o( N log N ).
93. Какой оператор может быть перегружен при использовании алго-
ритма последовательного поиска?
а) >;
б) ++;

Примеры тестовых вопросов
145
в) ==;
г) ::.
94. Какой оператор должен быть перегружен при использовании ал-
горитма бинарного поиска?
а) !=;
б) >=;
в) <=;
г) ==.
95. Чем отличается контейнер map от контейнера vector?
а) наличием ключей у каждого элемента;
б) наличием индекса у каждого элемента;
в) ограничением на тип каждого элемента;
г) ограничением на число элементов в контейнере.
96. Какова сложность поиска в контейнере map?
а) o( N );
б) o( log N );
в) o( N log N );
г) o( N**2 ).
97. Требуется ли сортировка элементов контейнера map перед поис-
ком?
а) требуется всегда;
б) требуется всегда, если элементы не являются целыми числами;
в) не требуется;
г) не требуется, если элементы являются целыми числами.
98. Какой из операторов должен быть перегружен для поиска в кон-
тейнере map?
а) ==;
б) !=;
в) любой из двух перечисленных выше;
г) операторы перегружать не требуется.
99. Выберите выражение, определяющее сложность пузырьковой сор-
тировки:

Примеры тестовых вопросов
146
а) o( N**2 );
б) o( N );
в) o( log N );
г) o( N log N ).
100. Выберите выражение, определяющее сложность быстрой сорти-
ровки:
а) o( N**2 );
б) o( N log N );
в) o( log N );
г) o( N ).
101. Какой из операторов предназначен для генерации исключения?
а) throw;
б) try;
в) catch;
г) exception.
102. Какой из операторов используется для указания блока программ-
ного кода, при выполнении которого возможны исключения?
а) catch;
б) try;
в) throw;
г) exception.
103. Какой оператор предназначен для обработки сгенерированного
исключения?
1) throw;
2) try;
3) catch;
4) exception.
104. Как используется оператор catch при обработке исключений?
а) оператор catch прерывает выполнение программы при появлении
исключения;
б) оператор catch позволяет описать тип генерируемого исключения;
в) оператор catch указывает на опасный участок программного кода;

Примеры тестовых вопросов
147
г) оператор catch связывает программный код обработки исключения
с его типом.
105. Какой из способов реагирования на ошибку в функции можно
считать более надёжным?
а) генерацию исключения;
б) возврат кода ошибки;
в) вывод текстового сообщения на экран;
г) прекращение выполнения функции.
106. Какой из способов реагирования на ошибку может позволить
продолжить выполнение программы несмотря на ее ошибку?
а) генерацию исключения;
б) возврат кода ошибки;
в) вывод текстового сообщения на экран;
г) прекращение выполнения функции.
107. Куда передаётся управление в программе, если в блоке try сгене-
рировано исключение?
а) оператору, следующему за оператором throw;
б) оператору, следующему за блоком try;
в) первому подходящему по типу исключения оператору catch;
г) первому подходящему по типу исключения оператору throw.
108. Куда передаётся управление в программе, если в блоке try не сге-
нерировано исключение?
а) оператору, следующему за оператором throw;
б) первому подходящему по типу исключения оператору catch;
в) первому подходящему по типу исключения оператору throw;
г) оператору, следующему за последним оператором catch.
109. Как используется стек программы?
а) для хранения переметров вызываемых функций, адресов возврата, а
также локальных переменных функций;
б) для хранения программного кода и глобальных, и статических пере-
менных;

Примеры тестовых вопросов
148
в) для хранения глобальных и статических переменных;
г) для хранения динамически созданных переменных.
110. Как используется КУЧА программы?
а) для хранения пареметров вызываемых функций, адресов возврата, а
также локальных переменных функций;
б) для хранения динамически созданных переменных;
в) для хранения глобальных и статических переменных;
г) для хранения программного кода и глобальных, и статических пере-
менных.
111. Что такое фрагментация памяти?
а) это состояние памяти, когда свободные участки памяти размеща-
ются не только в оперативной памяти, но и на внешних устройствах;
б) это состояние памяти, когда занятые участки принадлежат разным
переменным программы;
в) это состояние памяти, когда занятые участки и свободные череду-
ются друг с другом;
г) это состояние памяти, когда занятые участки и свободные не чере-
дуются друг с другом.
112. Какое ограничение существует при обслуживании запросов на
динамическое выделение памяти?
а) размер участка не должен превышать 32 Кбайт;
б) общий объём фрагментов свободной памяти должен быть не меньше
запрошенной длины;
в) общий объём фрагментов свободной памяти должен быть не меньше
размера стека программы;
г) участок требуемого размера должен быть непрерывным.
113. Можно ли с помощью тестирования доказать отсутствие ошибок?
а) нельзя;
б) можно;
в) можно, если их использовать при разработке программного кода;
г) нельзя, если их не использовали при отладке.

Примеры тестовых вопросов
149
114. Какой приём используют при невозможности полного тестирова-
ния программы?
а) ограничиваются отладкой;
б) применяют случайное тестирование;
в) множество данных разбивают на классы и тестируют программу на
представителях классов;
г) программу разбивают на классы и тестируют классы независимо.
115. Что такое тестовое покрытие?
а) общее число возможных тестов;
б) общее число классов тестов;
в) тесты, соответствующие каждой ситуации в программе;
г) тесты, которые соответствуют классам ситуаций в программе.
116. Ниже приведён программный код. Какое из выражений позволит
явно вызвать функцию calc() из любой области программы:
а) ~calc();
б) smp::calc();
в) calc();
г) extern calc();
117. Допускается ли в языке С++ объявление функций с одинаковыми
именами?
а) да, если полностью совпадает тип возвращаемого значения, количе-
ство и типы параметров;
б) нет, если совпадает тип возвращаемого значения;
в) да, если различается хотя бы либо тип возвращаемого значения,
либо тип хотя бы одного параметра, или общее число параматров;
г) нет, ни при каких условиях.
118. До какого момента продолжают тестирование программы?
а) до полного выявления всех ошибок;
б) до уменьшения интенсивности обнаружения ошибок до требуемого
уровня;
в) до момента прогона всех имеющихся тестов;
г) до тех пор, пока в программе делают существенные изменения.

Примеры тестовых вопросов
150
ЗАКЛЮЧЕНИЕ
Специализация в области информационной безопасности немыслима
без знаний принципов разработки программ. На сегодняшний день существует достаточно много технологий программирования и языков программирования.
Авторам представляется, что со временем это разнообразие снижаться не будет. Поэтому важно изучить и понять основные принципы программирования прикладных задач, осознать творческий характер процесса
разработки программ.
Настоящее учебное пособие (кроме изложения теоретического материала) содержит значительную долю материала для практической работы и
самоконтроля. Это не случайно. Невозможно анализировать информационную безопасность, не разбираясь в тонкостях создания и работы программ.
Нельзя глубоко разбираться в деталях программирования, не пройдя путь
разработки реальных программ. Авторы надеются, что настоящее учебное
пособие даст читателю полезное знание, навыки и умения в области технологии, методов и языков программирования.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
