Современные инфор техн. Новейшие направления в области создания технологий программирования. Законы эволюции программного обеспечения
Скачать 185 Kb.
|
Раздел 2Объектно-ориентированный подход к проектированию и разработке программ: сущность объектно-ориентированного подхода; объектный тип данных; переменные объектного типа; инкапсуляция; наследование; полиморфизм; классы и объекты.Конструкторы и деструкторы. Особенности программирования в оконных операционных средах.Базовый уровень 1. Задание «… – это механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает и то и другое от внешнего вмешательства или неправильного использования» Правильные варианты ответа: *нкапсуляц#$# 2. Задание «…– это свойство, которое позволяет использовать одно и то же имя для решения нескольких схожих, но технически разных задач» Правильные варианты ответа: п*лим*рфизм 3. Задание «… – это процесс, посредством которого один объект может приобретать свойства другого, добавляя к ним черты, характерные только для него» Правильные варианты ответа: насл*д*ван#$# 4. Задание Наследование позволяет R делать управляемыми большие потоки информации J создавать объекты с одинаковыми свойствами J манипулировать объектами различной степени сложности J создавать общий стандартный интерфейс 5. Задание Такое свойство ООП как полиморфизм может быть применено: R к операторам R к функциям R к классам J к объектам J к массивам J к структурам 6. Задание Объект – это R переменная определенного пользователем типа J адрес в области памяти J свойство класса, реализованное определенным образом J метод класса, сформированный по заранее прописанному правилу 7. Задание Класс – это R один из способов определения пользовательского типа J форма представления объектов в памяти компьютера J инструкция выполнения алгоритма программы J формат задания посторонних типов данных 8. Задание Класс может обладать следующими идентификаторами доступа к свойствам и методам R private R protect R public J polymorphic J main J open 9. Задание Функция main() – это R главная функция программы R точка входа в программу J структура подпрограммы J блок реализации глобальных переменных программы 10. Задание В случае если функция используется внутри главной функции main() необходимо R чтоб она была заранее описана J чтоб она была определена J чтоб она принимала параметры J чтоб она возвращала параметры 11. Задание Параметры функции могут передаваться R по значению R по ссылке J по перечислению J по указанию 12. Задание Передача параметров по значению предполагает R передачу копий указанных переменных J передачу адресов указанных переменных J передачу текущих значений переменных J передачу измененных переменных Средний уровень 13. Задание Среди ниже перечисленных укажите ключевые слова C и С++ обозначающие динамическое распределение памяти R delete R new R malloc J break J return J for 14. Задание Методология подпрограмм отвечает R принципам структурного программирования J парадигме объектно-ориентированного программирования J реализации макрокоманд ассемблера J сокращению времени реализации программного кода при работе готовой программы 15. Задание Каждая функция имеет R возвращаемый тип R параметры определенного типа R тело J форму J вес J скорость 16. Задание Передача функции параметров по ссылке предполагает R передачу адресов указанных переменных J передачу текущих значений переменных J передачу копий указанных переменных J передачу объема занимаемого переменными в памяти компьютера 17. Задание Функции принимающие параметры по значению R гарантируют сохранность содержимого передаваемых переменных J изменяют значение переданного ей параметра J регулируют вывод результата работы программы J оптимизируют значения принимаемых параметров 18. Задание Запись int area(int &length, int &width) означает, что R функция area принимает значения по ссылке J функция area принимает значения по значению J функция area передает свои параметры length и width в головную функцию J функция area передает значения параметров length и width по ссылке 19. Задание «Функции помогают применять для разработки программ … метод проектирования “сверху вниз”» Правильные варианты ответа: структурн#$#; структурирован#$# 20. Задание Метод модульного программирования: R предполагает разделение текста программы на несколько файлов сгруппированных по смыслу J формирует модули внутри главной функции, ответственные за реализацию поставленной задачи J объединяет свойства и методы различных функций в одной J разделяет свойства и методы различных функций в одной 21. Задание При модульном программировании для использования большинства функций, в том числе и библиотечных, необходимы два файла R заголовочный R реализации J библиотечный J объектного кода 22. Задание В управляющей структуре if… else часть else используется R в случае если предполагается, что условие не будет выполнятся J всегда J от случая к случаю J при наличие требования к организации ветвления в программе Высокий уровень 23. Задание Для отладки главной функции либо функции более высокого уровня применяют R пустые функции-заглушки J операторы исключения J параметры по значению J параметры по ссылке 24. Задание Выделение в решаемой задаче функций методом «сверху вниз» обычно называют R процедурной абстракцией R функциональной абстракцией J объектным подходом к реализации J ситуативным подходом к реализации 25. Задание Файлы в программировании предназначены для R хранения промежуточных и выходных данных на диске J ввода и вывода данных в область памяти J формирования строк вывода J формирования строк ввода 26. Задание Потоковая обработка данных предполагает посылку или считывание из потока R последовательно R только по одному за раз J параллельно J равно распределенными порциями 27. Задание Файловый поток ввода создается при помощи оператора R ifstream J ofstream J fstream J instream 28. Задание Соответствие «оператор файлового потока» – «действие»
29. Задание Файловый поток вывода создается при помощи оператора R ofstream J ifstream J fstream J instream 30. Задание Функция чтения данных из файла выглядит как R .get(ch) J .open(ch) J .put(ch) J .close(ch) 31. Задание Функция записи данных в файл выглядит как R .put(ch) J .open(ch) J .get(ch) J .close(ch) 32. Задание Для работы с файлами в С и С++ необходимо подключить к программе файл R fstream.h J iostream.h J stdlib.h J conio.h 33. Задание При обработке файлового потока создан объект Base. Укажите соответствие «функция файлового потока» – «действие»
34. Задание Для чтения значения флага достижения конца файла используется функция R eof() J get() J exit() J put() 35. Задание Потоки могут передаваться функциям в качестве параметров R только по ссылке J только по значению J как по ссылке, так и по значению J не могут передаваться 36. Задание При создании файлов произвольного доступа существует требование: R все записи в файле должны быть одинаковой фиксированной длины J чтение файла должно начинаться с конца J чтение файла должно начинаться с определенной заранее позиции J файл должен создаваться непосредственно на носителе информации 37. Задание Результат выполнения следующей конструкции int a=5; int b=8; int c=a*b/b-a; cout << (c > 15 ? 18 : 7); R 7 J 18 J 15 J 13 38. Задание В случае реализации множественного выбора оптимально использовать оператор R switch … case J if … else if J ? : J enum(…) 39. Задание К циклическим операторам относятся R for(…;…;…) R do…while J switch… case J ? : 40. Задание Общий синтаксис безусловного оператора цикла выглядит как R for (инициализация; проверка; увеличение переменной цикла) тело цикла J while (условие) тело цикла J do тело цикла; while (условие) J for тело цикла; (инициализация; проверка; увеличение переменной цикла) 41. Задание К условным операторам цикла относятся R do…while R while… J for(…;…;…) J switch… case 42. Задание Оператор условного цикла, который выполняется как минимум один раз выглядит как R do…while J for(…;…;…) J while… J if… case 43. Задание Инструкция break R прекращает работу цикла J выходит из программы J завершает выполнение функции J считывает поступающие данные 44. Задание Инструкция continue R заставляет программу пропустить все оставшиеся строки цикла, без завершения самого цикла J прекращает работу цикла J выходит из программы J завершает выполнение функции 45. Задание Для прерывания программы задолго до того, как будут выполнены все ее строки, в С++ существует инструкция R return J continue J break J exit 46. Задание Если функция имеет тип void, то инструкция return R использоваться не должна J определяет выход из этой функции J возвращает пустой параметр J возвращает результат работы функции 47. Задание Результатом работы следующей конструкции int icube( int value=3) { return(value*value*value);} будет R 27 J 3 J 9 J 6 48. Задание Имена параметров указанные в определении функции являются R формальными параметрами J фактическими параметрами J зависимыми параметрами J обращенными параметрами 49. Задание При вызове функции из другой функции значения передаваемые вызываемой функции являются R фактическими параметрами J формальными параметрами J структурированными параметрами J объективными параметрами 50. Задание Областью действия (видимости) переменной называют R область программы, в которой эти имена имеют значения J пространство имен определяемых переменных J блок определения переменных J блок описания передаваемых в функцию переменных 51. Задание Прототип функции указывает компилятору R тип данных, возвращаемых функцией R количество параметров, которое ожидает функция R тип параметров J формат передачи данных из функции J счетчик количества обращений J лицензию 52. Задание Модульное программирование обязано своим появлением R функциям J операторам J инструкциям J классам 53. Задание Рекурсия - это R вызов функции самой себя для выполнения определенных действий J управление параметрами функции из самой себя J обращение функции к собственному адресу в памяти компьютера J вызов нескольких функций с одного адреса в памяти компьютера 54. Задание Если глобальная и локальная переменные имеют одно и то же имя, то R локальная переменная перекроет собой глобальную переменную в теле функции J глобальная переменная на правах главной будет функционировать в течение всех программы J локальная переменная будет подменяться глобальной переменной J глобальная и локальная переменная функционируют отдельно не мешая друг другу 55. Задание Соответствие «функция проверки символа» – «выполняемое действие»
56. Задание Оператор :: называется оператором R расширения области видимости переменных J безусловного цикла J выбора условия J взятия адреса переменной 57. Задание Расширение области видимости переменных используется R для того, чтоб сослаться на глобальную переменную J для того, чтоб сослаться на локальную переменную J без каких-либо операторов, реализующих доступ к переменной J для взятия адреса переменных реализованных вне главной функции 58. Задание Спецификатор памяти register сохраняет переменную в R высокоскоростном регистре R в области памяти процессора J в первых ячейках оперативной памяти J в наиболее свободных областях памяти 59. Задание Чтоб функция генерации случайных чисел rand() действительно выдавала случайное число необходимо R использовать заранее функцию srand() J вызвать функцию rand() из функции srand() J использовать оператор randomize J использовать функцию random() 60. Задание Шаблоны функций – это R альтернатива перегруженным функциям R определение семейства функций J способ реализации вызова функций J альтернатива объектам 61. Задание Синтаксис объявления функций выглядит как R template J class J T template J template class 62. Задание Соответствие «режим открытия файла» – «описание»
63. Задание Соответствие «действие» - «спецификатор класса памяти»
64. Задание Указатели R обеспечивают доступ к адресам переменных в оперативной памяти R это переменная или константа, содержащая адрес другой переменной J это функция доступа к содержимому переменной J это способ одновременного доступа и изменения содержимого переменной 65. Задание Оператор описания массива имеет следующий синтаксис R [<тип данных>] <имя массива> <целое значение> J [<тип данных>] <имя массива> <количество значений> J <имя массива> * <тип данных> <целое значение> J const <тип данных> <имя массива> 66. Задание Массив - это R простейшая структура, предназначенная для хранения однотипных данных J структурная переменная, предназначенная для хранения различных данных об объекте J совокупность данных, последовательно распределенная в свободной области памяти J структура, используемая для задания пользовательского типа данных 67. Задание Массивы не могут быть R нулевой размерности J двумерными J трехмерными J тензорами 68. Задание При характеристике массива используются следующие определения: R размерность R элемент R индекс J возвращаемые данные J передача по значению J сборка “мусора” 69. Задание Массив по умолчанию всегда передается в качестве параметра функции R по ссылке J по значению J по собственной копии J полностью 70. Задание Индексация массивов в памяти начинается с: R нуля J единицы J первого элемента J значения размерности 71. Задание Ошибка в ниже следующем коде сокрыта в строке: int count; //строка 1 int hours [count]; //строка 2 for (count = 1; count <= 6; count ++) //строка 3 { cin >> hours[count];} //строка 4 R 4 J 3 J 2 J 1 72. Задание Недостаток компилятора С++ (и С) при работе с массивами заключается R в неумении обнаруживать ошибки выхода за пределы массива J в реализации обращения к массиву по ссылке J в реализации адресации элементов массива при обращении к ним J в распределении многомерных массивов в оперативной памяти построчно 73. Задание В оперативной памяти массивы распределяются R построчно J в виде матрицы J в обратном порядке J по столбцам 74. Задание Операция *а называется R разыменованием указателя J динамическим распределением J получением значения переменной J взятием адреса 75. Задание Операция &а называется R взятием адреса J динамическим распределением J получением значения переменной J разыменованием указателя 76. Задание Оператор & нельзя использовать R с константами R с числами R с переменными класса памяти register J с локальными переменными J с глобальными переменными J c массивами 77. Задание Указатели можно инициализировать следующими способами R присвоением указателю адреса существующего объекта R присвоением пустого значения R выделением участка динамической памяти и присвоением его адреса указателю с помощью оператора new J при помощи оператора delete J при помощи функции free() J при помощи функции typedef() 78. Задание Когда целое число n складывается с указателем, R указатель перемещается по ячейкам памяти на количество байтов занимаемых n переменными того же типа J указатель увеличивается на n раз J указатель увеличивается в n раз J указатель увеличивается в то количество раз, которое занимает переменная n в оперативной памяти 79. Задание Правила сложения и вычитания указателей совпадают с арифметическими только для указателей на R символьные переменные J целочисленные переменные J константные переменные J вещественные переменные 80. Задание Разность двух указателей – это R разность их значений, деленная на размер типа в байтах J разность их значений, деленная на смещение одного указателя относительно другого J смещение вычитаемого указателя относительно частного от деления значений адресов указателей J разность их адресов 81. Задание В функции, адреса переменных любого типа можно передавать с помощью R указателя типа void J переменной типа void J ссылки на параметр типа int J параметров по значению 82. Задание Во время компиляции программ на языке С/С++ память компьютера делиться на четыре области R программного кода R глобальных данных R стека R динамической области J логической проверки J области верификации J “песочницы” 83. Задание Указатели на функции обеспечивают R возможность косвенного вызова функций J создание новых функций J удаление функций из памяти J размещение функции в памяти 84. Задание Среди ниже перечисленных укажите способы вывода строк R char s[n]; cin >> s; R string s; cin >> s; J int s; cin >> s; J char s; cin >> s; 85. Задание Соответствие «функции для работы со строками» – «выполняемое действие»
86. Задание Соответствие «функции для работы со строками» – «выполняемое действие»
87. Задание Соответствие «логические функции обработки строк» – «возвращаемое значение»
88. Задание Соответствие «логические функции обработки строк» – «возвращаемое значение»
89. Задание Функция double atof(const char * nPtr) R преобразует строку nPtr в число типа double J преобразует строку nPtr в строку типа char J преобразует строку nPtr в число типа long int J формирует вывод строки в инженерной нотации 90. Задание Функция double atoi(const char * nPtr) R преобразует строку nPtr в число типа int J преобразует строку nPtr в строку типа char J преобразует строку nPtr в число типа long double J формирует вывод строки в число типа char 91. Задание Функция long atoi(const char * nPtr) R преобразует строку nPtr в число типа long int J преобразует строку nPtr в массив типа char J преобразует строку nPtr типа long int в строку типа const char * nPtr J преобразует в число double массив char *nPtr[] 92. Задание Соответствие «функция поиска» – «выполняемое действие»
93. Задание Соответствие «функция работы с памятью» – «выполняемое действие»
94. Задание Объект, в котором связанные по смыслу данные разных типов группируются под одним именем, называют R структурой J массивом J переменной J указателем 95. Задание Для обращения к полю структуры используется операция R выбора «.» (точка) J взятия адреса «*» J инициализации «&» J логического перекрывания « | | » 96. Задание «Структура создается с использованием ключевого слова …» Правильные варианты ответа: struct 97. Задание Внутри функции (при передаче структуры в качестве ее аргумента) доступ к полям структуры осуществляется посредством оператора R “->” J “.” J “&” J “*” 98. Задание Структуры в функцию в качестве ее аргумента предпочтительно передавать по ссылке, так как R это существенно ускоряет выполнение программы R при этом не происходит переполнение памяти копиями исходных данных J передача структур по значению в С++ не предусмотрена J при этом ускоряется разработка программного обеспечения 99. Задание «Частным случаем структуры, все поля которой располагаются по одному и тому же адресу является …» Правильные варианты ответа: *б**д*нен#$# 100. Задание Объединения создаются с помощью ключевого слова R union J struct J class J protected 101. Задание Объединение – это R область памяти, в которой в разные моменты времени могут находиться объекты разных типов R область памяти, в которой в каждый момент времени хранится только одно значение J указатель на структуру, как параметр функции J адрес структуры в оперативной памяти компьютера 102. Задание Битовые поля, как особый вид полей структур используются R для компактного хранения типов данных в формате «да/нет» J адресации структуры в оперативной памяти J хранения указателей на адреса переменных хранящихся в структуре J для переопределения типов хранящихся в структуре данных 103. Задание Преимущества ООП перед прежними технологиями программирования R возможность повторного использования описания класса R улучшение читаемости программ J снижение требований к ресурсам машины J появление возможности структурного программирования J развитие модульного принципа программирования и процедурной абстракции 104. Задание Если необходимо, чтоб программа имела прямой доступ к члену класса, нужно объявить его в списке, помеченном с помощью идентификатора R public J protected J private J const 105. Задание Класс имеет R имя (тег) R поля-переменные R методы J объединения J исключения J пересечения 106. Задание Функция-конструктор предназначена для R упрощения начальной инициализации членов объекта J создания независимого объекта J определения размеров и параметров объекта J формирования способа ввода-вывода в объекте 107. Задание Имя функции-конструктора R совпадает с именем класса J совпадает с именем объекта J совпадает с именем структуры J совпадает с именем метода 108. Задание Если функция-конструктор не задана при описании класса, то R компилятор сгенерирует ее автоматически при создании экземпляра класса J работа с классом и его экземплярами будет автоматически прекращена J приватные члены класса будут недоступны J ее можно задать в процессе выполнения программы 109. Задание Конструктор может взять на себя выделение требуемого объема памяти R если переменная объекта объявлена как массив J при возникновении внештатных ситуаций J если памяти не хватает для выделения публичных данных J в случае нарушения целостности взаимодействия публичных и приватных данных 110. Задание Деструктор необходим в случае R уничтожения объектов J восстановления объектов J создания объектов J восстановления утерянных данных J освобождения памяти из-под структуры 111. Задание Деструктор обычно вызывается в одном из двух случаев R объект выходит из области видимости R применяется оператор delete для освобождения памяти, выделяемой под объект J применяется оператор new для выделения памяти под новый объект J применяется функция free() для освобождения памяти, выделенной под объект J применяется функция malloc() для выделения памяти под новый объект 112. Задание К свойствам деструктора относятся R деструктор не принимает никаких аргументов R деструктор не может быть перегружен R деструктор задается неявно стандартным образом при компиляции J деструктор выводит объект из области видимости J деструктор подменяет собой оператор delete J деструктор выполняет “сборку мусора” 113. Задание Конструктор копирования это специальный вид конструкторов R получающий в качестве единственного параметра указатель на объект этого же класса J обладающий всеми правами базового класса J наследующий свойства объекта J перегруженный код выполнения определенных в классе операций 114. Задание Конструктор копирования вызывается в случае R когда новый объект создается путем копирования существующего R описания нового объекта с инициализацией другим объектом J выделения места в операционной памяти под новый объект J реализации неопределенных заранее методов при создании объекта 115. Задание При наследовании между классами наследуемый класс называют R базовым J порожденным J наследователем J наследником 116. Задание При наследовании между классами наследующий класс называют R порожденным J перегруженным J базовым J связанным 117. Задание С целью создания защищенных членов при наследовании базового класса необходимо использовать спецификатор R protected J private J public J union 118. Задание Дружественные функции предполагают R получение доступа к переменным-членам класса, сами не будучи его членами J реализацию защищенных методов класса J объявление базового класса открытым в наследуемом J создание объекта полностью раскрывающего все private-функции класса 119. Задание Дружественные функции рекомендуется объявлять R перед спецификатором доступа J в блоке спецификатора private J в блоке спецификатора public J в блоке спецификатора protected 120. Задание Если производный класс наследует характеристики более чем одного базового класса – эта способность называется R множественным наследованием J мультипликативным наследованием J параллельным наследованием J связным наследованием 121. Задание При множественном наследовании имена базовых классов R разделяются запятыми J разделяются точками J обрамляются угловыми скобками J объединяются квадратными скобками 122. Задание При множественном наследовании в начале вызываются R конструкторы базовых классов, а затем производных R деструкторы производного, а затем базовых классов J конструкторы производных, а затем базовых классов J деструкторы базовых, а затем производных 123. Задание Чтоб предоставить функции-члену описанную в базовом классе возможность самой определять свои действия необходимо R виртуализировать функцию J передать функцию классу по ссылке J защитить функцию идентификатором protected J адресовать пространство данных функции публичным данным 124. Задание Производный класс R непосредственно наследует описание виртуальных функций R переопределяет виртуальную функцию базового класса J объявляет способности виртуальных функций J выделяет память достаточную для виртуальной функции 125. Задание Для последовательности операций укажите соответствие «переменная» - «значение в строке кода» int a = 3; int b = 8; // I строка int *c; int *d; // II строка c = & a; d = & b; // III строка a = (*d)*(*c); // IV строка b = (*c)*(*d); // V строка
|