игра брюс 2048
Главная / Программирование / Программирование на С/С++ / Тест 111

Программирование на С/С++ - тест 111

Упражнение 1:
Номер 1
Какие цели преследовались и каким ценностям отдавалось предпочтение при создании STL?

Ответ:

 (1) максимальная общность 

 (2) максимальная эффективность 

 (3) максимальная понятность кода STL 

 (4) следование семантики работы с передачей по значению (семантика значений) 

 (5) следование фон-нэймоновской модели 


Номер 2
В чём заключается архитектурное свойств STL - гарантии вычислительной сложности?

Ответ:

 (1) минимально возможный расход памяти для алгоритма 

 (2) гарантированное ограничение максимальной сложности работы алгоритма 

 (3) гарантии достижения минимально-возможной сложности работы алгоритма в каждом конкретном случае 

 (4) гарантии ограничения максимума расходуемом алгоритмом памяти 


Номер 3
В чём заключается архитектурные свойства STL - взаимозаменяемость компонентов и унификация интерфейса?

Ответ:

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

 (2) различные контейнеры STL имеют похожую по смыслу сигнатуру основных методов 

 (3) различные контейнеры STL имеют одну и ту же сигнатуру основных методов и могут быть использованы в одних и тех же алгоритмах 

 (4) если созданный пользовательский шаблон контейнера поддерживает набор необходимых интерфейсов, то он может быть использован в обобщённых алгоритмах STL 


Упражнение 2:
Номер 1
Какие основные элементы STL инкапсулируют хранение различных значений и объектов?

Ответ:

 (1) контейнеры STL 

 (2) обобщённые алгоритмы STL 

 (3) итераторы STL 

 (4) адаптеры STL 

 (5) функциональные объекты 


Номер 2
Какие основные элементы STL абстрагируют перемещение по коллекциям объектов?

Ответ:

 (1) контейнеры STL 

 (2) обобщённые алгоритмы STL 

 (3) итераторы STL 

 (4) адаптеры STL 

 (5) функциональные объекты 


Номер 3
Какие основные элементы STL решают вопросы обработки данных, размещённых в стандартных контейнерах STL?

Ответ:

 (1) контейнеры STL 

 (2) обобщённые алгоритмы STL 

 (3) итераторы STL 

 (4) адаптеры STL 

 (5) функциональные объекты 


Упражнение 3:
Номер 1
Какие контейнеры STL являются последовательными?

Ответ:

 (1) вектор 

 (2) множество 

 (3) список 

 (4) дека 

 (5) отображение 


Номер 2
Какой из последовательных контейнеров требует самое большое время для доступа к элементам контейнера?

Ответ:

 (1) вектор 

 (2) встроенный массив С++ 

 (3) список 

 (4) дека 


Номер 3
Какой из последовательных контейнеров обеспечивает наилучшее время вставки элемента?

Ответ:

 (1) вектор 

 (2) встроенный массив С++ 

 (3) список 

 (4) дека 


Упражнение 4:
Номер 1
Какова сложность поиска перебором в последовательных контейнерах?

Ответ:

 (1) O(1) 

 (2) O(ln(N)) 

 (3) O(N) 

 (4) O(N**2 


Номер 2
Какие утверждения насчёт ассоциативных контейнеров верны?

Ответ:

 (1) ассоциативные контейнеры предоставляют быстрый доступ к элементам по ключу 

 (2) ассоциативные контейнеры - это контейнеры переменной длины 

 (3) в ассоциативных контейнерах все ключи должны быть уникальны 

 (4) для ассоциативных контейнеров гарантируется размещение соседних элементов в смежной оперативной памяти 


Номер 3
Контейнеры отличаются друг от друга:

Ответ:

 (1) временем выполнения одних и тех же операций 

 (2) интерфейсом основных операций 

 (3) действительностью итераторов после модификации контейнера - инвалидацией итераторов - когда происходит операции изменения контейнера 

 (4) расход памяти на хранение данных 


Упражнение 5:
Номер 1
Каковы основные особенности контейнера STL вектор?

Ответ:

 (1) произвольный доступ к элементам 

 (2) быстрое удаление и добавление последнего элемента контейнера 

 (3) быстрое удаление и добавление первого элемента контейнера 

 (4) полная гарантия корректности итераторов после вставки и удаления 

 (5) гарантия непрерывного размещения объектов контейнера в памяти 


Номер 2
Какие встроенные типы контейнера являются итераторами?

Ответ:

 (1) iterator 

 (2) pointer 

 (3) reverse_iterator 

 (4) const_reference 

 (5) size_type 


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

Ответ:

 (1) O(1) 

 (2) O(ln(N)) 

 (3) O(N) 

 (4) O(N**2 


Упражнение 6:
Номер 1
Какие отличия дека от вектора?

Ответ:

 (1) последовательный доступ к элементам 

 (2) быстрая вставка и удаление в начало контейнера 

 (3) медленная вставка и удаление в конец контейнера 

 (4) быстрый поиск элемента по значению 


Номер 2
Какие отличия списка от вектора?

Ответ:

 (1) последовательный доступ к элементам 

 (2) быстрая вставка и удаление в начало контейнера 

 (3) медленная вставка и удаление в конец контейнера 

 (4) инвалидация итераторов не происходит при модификации контейнера 

 (5) отсутствие гарантий размещения данных в непрерывном куске памяти 


Номер 3
По каким причинам для списка не подходят алгоритмы сортировки, реализованные как стандартные алгоритмы?

Ответ:

 (1) итератор списка не поддерживает всех необходимых для стандартного алгоритма методов 

 (2) список может иметь достаточно большое время доступа к элементам в середине списка 

 (3) для сравнения элементов списка требуется оператор проверки эквивалентности элементов списка 

 (4) сигнатура метода вставки в список отличается от сигнатуры методов вставки других стандартных контейнеров 


Упражнение 7:
Номер 1
В чем отличие ассоциативных контейнеров от последовательных контейнеров?

Ответ:

 (1) время доступа значительно больше чем для любого последовательно контейнера 

 (2) хранимые данные должны иметь функцию сравнения 

 (3) имеются ограничения на модификацию хранимых данных 

 (4) добавление в начало и конец контейнера всегда константно 


Номер 2
Каким образом определяется эквивалентность ключей в ассоциативных контейнерах?

Ответ:

 (1) используется специальная функция ключа is_equivalent() 

 (2) используется оператор равенства "==" 

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

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


Номер 3
Какие данные нельзя менять в ассоциативном контейнере?

Ответ:

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

 (2) в отображении и мульти-отображении нельзя менять ни хранимый объект ни его ключ 

 (3) в отображении и мульти-отображении нельзя хранимый объект, а его ключ менять можно 

 (4) в отображении и мульти-отображении нельзя ключ, а хранимый объект менять можно 


Упражнение 8:
Номер 1
Какие утверждения про обобщённые алгоритмы верны?

Ответ:

 (1) обобщённые алгоритмы предоставляют обобщённое решение разных задач обработки данных в обобщённых контейнерах 

 (2) для любого алгоритма существует копирующая версия алгоритма, которая переносит обработанные данные в другой контейнер 

 (3) обобщённые алгоритмы упорядочивания требуют определения операции сравнения элементов 

 (4) стандартом утверждена строгая классификация обобщённых алгоритмов 


Номер 2
Какие утверждения об отношениях сравнения, используемых в обобщённых алгоритмах STL верны?

Ответ:

 (1) операции сравнения, используемые в обобщённых алгоритмах STL являются унарными предикатами 

 (2) отношения сравнения должны быть транзитивны 

 (3) позволяют установить эквивалентность 

 (4) объекты считаются эквивалентными если оператор равенства возвращает true 


Номер 3
Какие данные на вход обычно принимают обобщённые алгоритмы?

Ответ:

 (1) предикатную функцию 

 (2) функцию выделения памяти 

 (3) итераторы контейнера, данные которого обрабатываются  

 (4) итераторы контейнера, куда копируются данные 


Номер 4
Какие утверждения про различные виды обобщённых алгоритмов верны?

Ответ:

 (1) различные обобщённые алгоритмы сортировки STL отличаются друг от друга максимальной и средней сложностью 

 (2) различные обобщённые алгоритмы сортировки STL могут отличаются друг от друга потребляемой для выполнения сортировки памятью 

 (3) реализуемые обобщёнными алгоритмами операции над множествами выполняются над объектами, находящимися в любых контейнерах STL 

 (4) обобщённые алгоритмы на числах могут работать только с контейнерами, хранящими встроенные числовые типы 


Упражнение 9:
Номер 1
Какие утверждения про итераторы верны?

Ответ:

 (1) итераторы - это обобщённые указатели 

 (2) итераторы предназначены для обхода последовательности объектов в обобщённом контейнере 

 (3) классы итераторов различаются по быстродействию операций с ними 

 (4) любой итератор может быть успешно разыменован 


Номер 2
Какому классу итераторов эквивалентны указатели С++?

Ответ:

 (1) итераторы входные 

 (2) итераторы выходные 

 (3) итераторы однонаправленные 

 (4) итераторы двунаправленные 

 (5) произвольного доступa 


Номер 3

	//====================== start of sample.h ==========================
		#include <algorithm>
		
		int main(int argc, char* argv[])
		{
			size_t N = 40;
			int A[N];
			size_t B[N*2];
			char C[N];
			int D[N];
		
			std::replace(&B[0], &B[N/2], 0, 42);
			std::replace(C, (C+N+1), 'D', 'T');
		
			std::copy(&A[0], &A[N-1], &D[0]);
			std::copy(A, (A+N), D);
		
			return 0;
		}
	//======================  end of sample.h  ==========================
                
]]>В каких из вызовов обобщённых алгоритмов встроенные массивы С++ использованы без ошибок?
Ответ:

 (1) std::replace(&B[0], &B[N/2], 0, 42); 

 (2) std::replace(C, (C+N+1), 'D', 'T'); 

 (3) std::copy(&A[0], &A[N-1], &D[0]); 

 (4) std::copy(A, (A+N), D); 


Номер 4
Каким классам итераторов доступны операции записи объекта?

Ответ:

 (1) итераторы входные 

 (2) итераторы выходные 

 (3) итераторы однонаправленные 

 (4) итераторы двунаправленные 

 (5) произвольного доступa 


Упражнение 10:
Номер 1
Разыменование какого итератора ведёт к вставке элемента в контейнер?

Ответ:

 (1) потоковый итератор 

 (2) итератор произвольного доступа 

 (3) итератор вставки 

 (4) изменяемый итератор прямого обхода 

 (5) никакой из перечисленных 


Номер 2
В чём основное отличие итератора вставки от других итераторов STL?

Ответ:

 (1) итератор вставки поддерживает специальный метод вставки, которого нет у итератора произвольного доступа 

 (2) итератор произвольного доступа позволяет добавить элемент только в конец, а итератор вставки может вставить и в начало 

 (3) итератор вставки обеспечивает вставку данных с максимальным быстродействием 

 (4) разыменование оператора вставки ведёт к вставке элемента в контейнер 

 (5)  


Номер 3
Какие утверждения о назначении потоковых итераторов верны?

Ответ:

 (1) входной потоковый итератор предназначен для чтения объектов из входного потока 

 (2) выходной потоковый итератор предназначен для записи объектов в выходной поток 

 (3) выходной итератор, имеющий специальное значение служит маркером конца потока 

 (4) входной итератор, имеющий специальное значение служит маркером конца потока 


Упражнение 11:
Номер 1

	//====================== start of sample.cpp ==========================
		std::merge(
			vector1.begin(),
			vector1.end(),
			std::istream_iterator(cin),
			std::istream_iterator(),
			std::back_inserter(list1)
		);
	//======================  end of sample.cpp  ==========================
                
]]>Который по номеру из параметров из вызова стандартного алгоритма, приведённого выше служит для индикации конца потока?
Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)


Номер 2

	//====================== start of sample.cpp ==========================
		template <typename ForwardIterator, typename T>
		void replace (
			ForwardIterator first,
			ForwardIterator last,
			const T& x, const T& y)
		{
			while(first != last)
			{
				if (*first == x)
					*first = y;
				++first;
			}
			return first;
		}
	//======================  end of sample.cpp  ==========================
                
]]>Каковы требования к итераторам, участвующим в алгоритме replace(), имплементация которого приведена выше, корректны?
Ответ:

 (1) тип ForwardIterator должен поддерживать операцию разыменования 

 (2) объект типа Т должен поддерживать операцию сравнения "равно" 

 (3) объект типа Т должен поддерживать операцию сравнения "меньше" 

 (4) тип ForwardIterator должен поддерживать перезапись объекта, хранящегося в элементе контейнера, на который ссылается итератор 

 (5) тип ForwardIterator должен поддерживать вставку нового элемента в контейнер 


Номер 3

	//====================== start of sample.cpp ==========================
		template <typename T>
		class multiplies: public binary_function<T,T,T>
		{
		public:
			T operator() (const T& x, const T& y) const {
				return x * y;
			}
		};
	//======================  end of sample.cpp  ==========================
                
]]>Какие утверждения про приведённый выше код функтора multiplies верны?
Ответ:

 (1) содержащегося кода "operator()" недостаточно, должны быть реализованы ещё некоторые операторы 

 (2) наследование от шаблона binary_function позволяет получить типы для "саморефлексии" 

 (3) код операции умножения может быть заменён на любые другие арифметические или логические операции 

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


Упражнение 12:
Номер 1
Какими типами конкретизируются контейнерные адаптеры?

Ответ:

 (1) типами хранимых в контейнере элементов 

 (2) типами адаптируемых контейнеров 

 (3) типами итераторов вставки в контейнер 

 (4) значениями хранимых элементов 


Номер 2

	//====================== start of sample.cpp ==========================
		bind2nd(greater<int>(), 100);
	//======================  end of sample.cpp  ==========================
                
]]>Какие утверждения про приведённый выше адаптер верны?
Ответ:

 (1) это связывающий адаптер 

 (2) это отрицающий адаптер 

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

 (4) результатом будет функциональный объект, возвращающий разницу между входным параметром типа int и значением 100 


Номер 3
Чем отличаются неупорядоченные ассоциативные контейнеры, добавленные в стандарте С++ 11 от уже имеющихся ассоциативных контейнеров?

Ответ:

 (1) амортизированное константное время выполнения основных операций 

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

 (3) как параметр шаблона требуются функтор для проверки равенства ключей 

 (4) как параметр шаблона требуются функтор для вычисления хеш-функции 

 (5) перемещение по неупорядоченному ассоциативному контейнеру возможно только в одном направлении 




Главная / Программирование / Программирование на С/С++ / Тест 111