Методические рекомендации для студентов, изучающих программирование в С. Предназначено для студентов специальностей Прикладная математика и информатика
Скачать 0.9 Mb.
|
Упражнение 2. Самостоятельно изучите работу со свойством, управляющим видимостью компонентов (задания разработаны Рогачевой Е.В.) 1. В окне приложения расположены метка с заголовком «Visual Studio приветствует Вас!» и кнопка. Одинарный щелчок левой клавишей мыши на кнопке приводит к исчезновению метки с экрана, щелчок в любом месте формы –к возникновению надписи. 2. В окне приложения расположены две кнопки, но изначально видна только одна из них. Одинарный щелчок левой клавишей мыши на видимой кнопке приводит к ее исчезновению, и появлению ранее невидимой. Щелчок на форме делает видимыми одновременно обе кнопки. 3. В окне приложения расположена кнопка. Одинарный щелчок левой клавишей мыши на кнопке при- водит к исчезно-вению кнопки с экрана, щелчок на форме –к ее появлению правее на 5 пикселей исходного положения. 4. В окне приложения расположены две метки с заголовками «Мышка 1» и «Мышка 2». Одинарный щелчок левой клавишей мыши на форме приводит к появлению кнопки с заголовком «Кошка». Щелчок на кнопке приводит к исчезновению меток. 5. В окне приложения расположены две кнопки с заголовками «День» и «Ночь». Одинарный щелчок левой клавишей мыши на кнопке «День» приводит к появлению метки с заголовком «Солнце», щелчок на кнопке «Ночь» приводит к исчезновению «Солнца» и к появлению такой же «Луны» и двух «Звезд». 6. В окне приложения расположены по кругу несколько меток. Изначально видима только одна из них. Одинарный щелчок левой клавишей мыши на видимой метке приводит к ее исчезновению с экрана, но делает видимой следующую. 7. В окне приложения расположены кнопка и метка, причем кнопка изначально закрывает метку. Одинарный щелчок левой клавишей мыши на кнопке приводит к ее исчезновению с экрана, щелчок на форме вновь показывает ее. 8. В окне приложения расположены три кнопки и метка. Изначально видимы только кнопки. Одинар- ный щелчок левой клавишей мыши по любой из кнопок приводит к появлению метки с заголовком «Выравнивание». Щелчок по метке располагает кнопки, выравнивая их по левому краю. Щелчок на форме вновь делает метку невидимой. 9. В окне приложения расположены две кнопки. Изначально видима только одна из них. Одинарный щелчок левой клавишей мыши на видимой кнопке приводит к обмену заголовками по следующей схеме. Заголовок видимой кнопки становится заголовком формы, а заголовок формы – заголовком 43 как видимой, так и невидимой кнопок. После этого видимая кнопка исчезает с экрана, а невидимая появляется на форме. 10. В окне приложения расположены две кнопки (с заголовками «Включить» и «Выключить») и метка. Изначально видимы кнопка «Выключить» и метка. Одинарный щелчок левой клавишей мыши на кнопке «Выключить» приводит к исчезновению этой кнопки и метки и появлению кнопки «Вклю- чить». Щелчок на кнопке «Включить» приводит к появлению метки и кнопки «Выключить» и ис- чезновению кнопки «Включить». 11. В окне приложения расположены две кнопки: «Щука» и «Карась» и три метки – «Водоросли». Щелчок по кнопке «Карась» перемещает «Щуку» на 25 пикселей ближе к «Карасю», а «Карась» прячется в «Водорослях» 12. В окне приложения расположены три кнопки: «Дворник», «Ветер» и «Тротуар» (эту кнопку помес- тите внизу формы и сделайте ее достаточно длинной) и несколько меток – «Листьев». Нажатие на кнопку «Дворник» приводит к исчезновению «Листьев», нажатие на кнопку «Ветер» возвращает «Листья» на прежние места. 13. В окне приложения расположены две кнопки: «Кошка» и «Собака» и три метки: «Рыба», «Молоко», «Кость». Нажатие на кнопку «Кошка» приводит к исчезновению «Рыбы» и «Молока», нажатие на кнопку «Собака» приводит к исчезновению «Кошки», «Молока» и «Кости». 14. В окне приложения расположены две кнопки: «Кошка» и «Хозяйка» и метка «Сосиска». Кнопка «Хозяйка» изначально невидима. Нажатие на кнопку «Кошка» приводит к исчезновению «Сосиски» и появлению «Хозяйки», нажатие на кнопку «Хозяйка» приводит к исчезновению «Кошки». 15. В окне приложения расположены пять кнопок: «Семечко», «Росток», «Бутон», «Цветок», «Плод». Изначально видима только кнопка «Семечко». Нажатие на эту кнопку приводит к ее исчезновению и появлению «Ростка», нажатие на кноп-ку «Росток» делает невидимой ее и видимой кнопку «Бу- тон», и так далее. Нажатие на кнопку «Плод» делает видимой кнопку «Семечко». Упражнение 3. Самостоятельно изучите другие управляющие элементы формы. 1. На форме расположены три флажка и кнопка. Флажки задают red, green, blue компоненты цвета (ус- тановите их равными 255). Щелчок по кнопке устанавливает цвет кнопки в соответствии с выбран- ными флажками компонентами цвета. 2. Поместите на форму флажки и кнопку. Нажатие на кнопку включает все флажки. Повторное нажа- тие на кнопку снимает все флажки. Рядом с флажками располагается текст, нажатие на текст или флажок должно также включать соответствующий флажок. 3. На форму поместите бегущую строку и список с размерами шрифта. Выбор размера шрифта в спи- ске меняет на таковой размер текста в бегущей строке. 4. На форму поместите флажки и текстовые поля. Например, флажки будут отмечать список экзаме- нов в зимнюю сессию, а текстовые поля - оценки за экзамены. Поставьте еще один флажок "Сессия сдана". Как только вы проставите все оценки - автоматически появится галочка для флажка "Сессия сдана" и появится окошко с сообщением об итогах сессии (отлично, хорошо, удовлетворительно или неудовлетворительно). Если хотя бы по одному экзамену выставлена неудовлетворительная оценка - флажок "Сессия сдана" очищается и флажком отмечаем экзамен, сданный на 2. 44 5. На форме располагается текстовая область (RichTextBox), текстовое поле (TextBox), кнопка и ра- доигруппа из 2 радиокнопок. При активной одной радиокнопке в поле вводится текст, после нажа- тия на кнопку он оказывается в текстовой области. В текстовую область непосредственно ничего впечатать нельзя, при попытке это сделать должно выдаваться сообщение-предупреждение. При ак- тивной другой радиокнопке в текстовую область вводится текст, после нажатия на кнопку он ока- зывается в текстовом поле. В текстовое поле непосредственно ничего впечатать нельзя, при попыт- ке сделать это должо появляться предупреждение. 6. Поместите на форму флажки и 4 кнопки. Нажатие на первую кнопку поднимает все флажки, нажа- тие на вторую - снимает все флажки. Нажатие на 3-ю кнопку позволяет поставить все флажки, если они сняты, и снять все флажки, если они подняты. Нажатие на 4 кнопку делает все флажки неактив- ными, повтроное нажатие на эту кнопку делает флажки активными. 7. Поместите на форму флажок, радиогруппу, список, и кнопку. Щелчок мышкой по тексту рядом с флажком должен включать-выключать его. Значения из выпадающего списка должны включать со- ответствующие радиокнопки. Щалчок по кнопке меняет местами надписи на кнопке и рядом с флажком. 8. Поместите на форму флажки и примечание, что выбрать можно ограниченное количество пунктов. Попытка выбора большего числа флажков вызывает предупреждающее сообщение. При этом лиш- ние флажки снимаются. Повторная попытка выбрать лишний флажок должна привести к появле- нию метки-предупреждения, которая будет "убегать" от курсора мыши, не выходя за пределы стра- ницы. 9. Поместите на форму флажки, несколько радиокнопок, несколько текстовых полей и кнопку. Флаж- ки можно отмечать, а по нажатию на кнопку должно выводиться сообщение о количестве выбран- ных флажков, радиокнопок и заполненных текстовых полей. После этого заполненные поля стано- вятся неактивными, поднятые флажки и радиокнопки становятся неактивными. 10. Заполняем регистрационную карточку (например, на конференцию). Необходимо отметить имя, фамилию, университет (из списка), должность (из списка), страну (последнюю можно выбрать из выпадающего списка) . Данные надо продублировать. Для этого поместите на форму все необходи- мые элементы и кнопку. Заполняется только одна карточка, нажатием на кнопку данные копируют- ся во вторую карточку. Если какое-либо поле не заполнено, либо заполнено неверно (например, од- ни цифры в фамилии), об этом должно быть выдано сообщение и предложено данное поле запол- нить еще раз. Приветствуется возможность сохранить данные в файл. 11. Поместите на форму радиокнопки и список. Выбор радиокнопки формирует значения в списке. На- пример, радионопки могут указывать страны, а в выпадающем списке будут присутствовать меж- дународные аэропорты данных стран. 12. Поместите на форму несколько радиокнопок с обозначением цветов и выпадающий список с обо- значением цветов. Выбор радиокнопки делает этот цвет цветом фона формы, выбор элемента в спи- ске делает цвет цветом текста на форме. 13. Установите на форму кнопку и список. Выбранное значение из списка должно отображаться на кнопке. Щелчок по кнопке запускает бегущую строку на кнопке. Повторный щелчок останавливает бегущую строку. Бегущая строка должна менять цвет в процессе своего движения. Указание 1: вос- пользуйтесь компонентом Таймер. Указание 2: компоненты цвета RGB лучше сделать целыми чис- лами и объявить их в секции protected в файле описания формы. Задать начальные значения полям можно в методе InitializeComponent(), либо в конструкторе формы (который все равно вызывает InitializeComponent). 45 14. Делаем «планировщик заданий». Поместите на форму компонент для выборы даты, прокручиваю- щиеся списки для выбора часов и минут, текстовое поле, кнопку, текстовую область. В текстовое поле записываем задание, выбираем для него дату, устанавливаем время. Щелчок по кнопке добав- ляет выбранные данные в текстовую область. 15. Поместите на форму компонент для выбора даты, текстовую область, метку и кнопку. После выбо- ра даты в метку выводится, какой это день недели, а в текстовой области появляется расписание на этот день. Щелчок по кнопке очищает текстовую область, значение метки, выбранную дату. Вопросы 1. Что такое обработчик события? 2. Как создать обработчик события для компонента? 3. Поясните, что означает следующая запись: private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) ? 4. Из каких разделов состоит файл проекта? Покажите эти разделы в файле Вашего первого проекта. 5. Из каких файлов состоит проект? За что отвечает каждый? 6. Как получить текстовое представление файла формы? 7. Что такое режим дизайна и режим разработки? Как между ними можно переключиться? 8. Как открыть панель свойств/событий компонента? 9. Перечислите основные свойства и события компонентов, которые вам понадобились при выполне- нии упражнений. Поясните особенности работы с ними. 46 Тестовые задания по программированию в С++ В каждом вопросе выберите один вариант ответа. 1. Идентификатор не может содержать ... a) символов подчеркивания; b) пробельных символов; c) цифр; d) латинских букв; e) прописных латинских букв. 2. Первым символом идентификатора в С++ может быть ... a) только буква; b) только цифра; c) буква или символ подчеркивания; d) только символ подчеркивания; e) только прописная буква. 3. Длина идентификатора ... a) ограничена 255 символами; b) ограничена 256 символами; c) не может быть длиннее 512 символов; d) не может быть короче 512 символов; e) не ограничена и зависит от реализации системы. 4. Регистр букв в идентификаторах ... a) не различается; b) не различается, если идентификатор на- чинается с символа подчеркивания; c) различается, если это название функции; d) различается; e) первая буква всегда должна быть пропис- ной. 5. Область видимости идентификатора - это ... a) часть программы, которая видна в редак- торе кода; b) область программы, в которой данный идентификатор можно скрыть; c) область программы, в которой на данный идентификатор можно сослаться; d) область программы, не доступная из дру- гого модуля; e) область программы, доступная из другого модуля. 6. Комментарии в С++ обозначаются ... a) символами // текст комментария // и не могут быть вложенными; b) символами /* текст комментария */ и не могут быть вложенными; c) символами /* текст комментария */ и мо- гут быть вложенными; d) символами { текст комментария } и могут быть вложенными; e) символами */ текст комментария /* и мо- гут быть вложенными. 7. Модификатор signed указывает, что ... a) переменная может принимать только от- рицательные значения; b) переменная может принимать неотрица- тельные значения; c) переменная может принимать только по- ложительные значения; d) переменная может принимать как поло- жительные, так и неотрицательные значе- ния; e) переменная может принимать как поло- жительные, так и отрицательные значе- ния. 8. Модификатор unsigned указывает, что ... a) переменная может принимать неотрица- тельные значения; b) переменная может принимать как поло- жительные, так и отрицательные значе- ния; c) переменная может принимать только по- ложительные значения; d) переменная может принимать только от- рицательные значения; e) переменная может принимать как отрица- тельные, так и неотрицательные значения. 47 9. Даны два числа c плавающей точкой a и b, необ- ходимо сравнить их на равенство. Выберите наиболее корректный вариант сравнения ... a) a == b b) a = b c) a – b ==0 d) a – b = 0 e) a – b < 0.0001 10. Явное преобразование типов – это ... a) автоматическое преобразование всех пе- ременных целого типа к переменным с плавающей точкой; b) автоматическое преобразование всех пе- ременных с плавающей точкой к пере- менным целого типа; c) принудительное преобразование всех пе- ременных целого типа к переменным с плавающей точкой с помощью операции приведения типов; d) принудительное преобразование типов, осуществляемое программистом с помо- щью операции приведения типов; e) автоматическое преобразование типов, осуществляемое компилятором в процес- се вычислений. 11. Неявное преобразование типов – это ... a) автоматическое преобразование всех пе- ременных с плавающей точкой к пере- менным целого типа; b) принудительное преобразование типов, осуществляемое программистом с помо- щью операции приведения типов; c) автоматическое преобразование типов, осуществляемое компилятором в процес- се вычислений; d) автоматическое преобразование всех пе- ременных целого типа к переменным с плавающей точкой; e) принудительное преобразование всех пе- ременных целого типа к переменным с плавающей точкой с помощью операции приведения типов. 12. Пусть объявлены переменные int a, b, c; double d; Выберите некорректный вид явного преобразо- вания типа ... с = (double) a /(double) b; (double)c = a/b; d = (double) a /b; d = a /(double) b; c = (double)a/b; 13. Выберите некорректное объявление константы const int ten = 10; const int tenten = 2 * ten; const ten = 10; const tenten = 2 * ten; const int ten; ten = 10; const int ten = 10; const ten = 10; 14. Операция typedef ... a) не приводит к появлению нового типа, просто создает новое имя уже описанного типа typedef int integer; b) не приводит к появлению нового типа, просто создает новое имя уже описанного типа typedef integer int; c) позволяет образовать новый тип typedef int integer; d) позволяет образовать новый тип typedef integer int; e) позволяет образовать новый тип typedef integer; 15. Дана функция int Summa (int a=0, int b=10, int c=5) { return a+b+c; } и приведены примеры вызовов функции и ре- зультат. Выберите верный вариант: a) int Summa(1,2,3); a=1, b=2, c=3, результат 6; b) Summa(); a=0, b=10, c=5, результат 15; 48 c) Summa(2,9); a=0, b=2, c=9, результат 11; d) Summa(9); a=9, b=10, c=5, результат 24; e) Summa(); a=0, b=0, c=0, результат 0. 16. Даны два числа с плавающей точкой и два це- лых числа: int a=5, b; float c=4.5, d; Выберите корректный вариант деления с на а (в скобках указан результат частного)... a) b:= c/a; (b=0.89999); b) d=c/a; (d=0.89999); c) b:=c/a; (b=0); d) b=c/a; (b=0.89999); e) d=c/a; (d=0). 17. Даны два массива: int Array1[5] = {0}; int Array2[] = {1, 3, 5, 7, 9}; Необходимо, чтобы массив Array1 получил значения массива Array2. Выберите корректный вариант ... a) Array1 = Array2; b) Array1 == Array2; c) for (int i=1; i 18. Выберите некорректное объявление переменной a) int a; int b; int d; b) int a=b=c=6; c) int a, b, d; d) long int a, b = 1; float d = 2.5; e) int a=7, b=8, c; 19. Логические выражения в С++ задаются с помо- щью ... a) типа boolean; b) целых значений, где истина представляет- ся как 1, а ложь обозначается как 0; c) целых значений, где истина представляет- ся как любое ненулевое значение, а ложь обозначается как 0; d) целых значений, где ложь представляется как любое ненулевое значение, а истина обозначается через 0; e) целых значений, где ложь представляется как 1, а истина обозначается через 0. 20. Переменным x, y, z, sh необходимо задать сле- дующие значения: переменные x и у должны получить значение 6; переменная z должна получить значение 3; переменная sh должна получить значение 15. Выберите некорректный вариант присваивания a) sh=(x=y=6)+(z=3)+6 b) sh=(x=y=(z=3)+3)+9; c) sh=x=y=6+(z=3)+6; d) sh=6+3+(x=y=(z=3)+3); e) sh=(x=y=3+(z=3))+9; 21. Операция логического “или” ... a) обозначается && и возвращает значение 0, когда выполняются все условия; b) обозначается && и возвращает значение 0, когда одно из условий не выполняется; c) обозначается || и возвращает значение 0, когда ни одно из условий не выполняется; d) обозначается || и возвращает значение 0, когда выполняются оба условия; e) обозначается || и возвращает значение 0, когда одно из условий не выполняется. 22. Операция логического “и” ... a) обозначается && и возвращает значение 0, когда выполняются все условия; b) обозначается && и возвращает значение 0, когда одно из условий не выполняется; c) обозначается || и возвращает значение 0, когда выполняются все условия; d) обозначается || и возвращает значение 0, когда ни одно из условий не выполняется; e) обозначается || и возвращает значение 0, когда одно из условий не выполняется. 49 23. Операция отрицания ... является бинарной операцией и обозначается ?; является унарной операцией и обозначается !; является бинарной операцией и обозначается | ; является унарной операцией и обозначается ?; является унарной операцией и обозначается | . 24. В приведенных ниже операциях инкремента и декремента исключите некорректные выраже- ние и соответствующее ему описание: a) b = b + ++а; величина а возрастает на 1 и это новое значение а используется в вы- ражении, в котором оно встретилось; b) b = b + --а; величина а уменьшается на 1 и это новое значение а используется в вы- ражении, в котором оно встретилось; c) b = b + а--; в выражении используется те- кущее значение а, а затем величина а уменьшается на 1; d) b = b + а++; в выражении используется текущее значение а, а затем величина а возрастает на 1; e) b = b + а++; величина а возрастает на 1 и это новое значение а используется в вы- ражении, в котором оно встретилось. 25. Выберите случай некорректного синтаксиса структуры if... a) if (условное_выражение) {оператор1; оператор2; оператор3;} b) if (условное_выражение) оператор1; else оператор2; c) if (условное_выражение) {оператор} d) if (условное_выражение); {оператор;} e) if (условное_выражение1) оператор1; else if (условное_выражение2) оператор2; 26. Операторные скобки в С++ задаются с помощью a) фигурных скобок; b) ключевых слов begin и end; c) комбинации квадратных и круглых ско- бок; d) ключевых слов finish и start; e) квадратных скобок. 27. Выберите корректное описание условной опера- ции ... a) условие_1 ? условие_2 : выражение; условие_1 содержит значение условного выражения в случае, если условие “лож- но”; а условие_2 равен значению услов- ного выражения, если условие “истинно”; b) условие ? выражение_1 : выражение_2; выражение_1 содержит значение услов- ного выражения в случае, если условие «истинно», а выражение_2 равен значе- нию условного выражения, если условие «ложно»; c) выражение ? условие_1 : условие_2; условие_1 содержит значение условного выражения в случае, если условие «ис- тинно», а условие_2 равен значению ус- ловного выражения, если условие «лож- но»; d) условие ? выражение_1 : выражение_2; выражение_1 содержит значение услов- ного выражения в случае, если условие «ложно», а выражение_2 равен значению условного выражения, если условие «ис- тинно»; e) выражение_1: выражение_2: условие ?; выражение_1 содержит значение услов- ного выражения в случае, если условие «истинно», а выражение_2 равен значе- нию условного выражения, если условие «ложно». 28. Выберите некорректное описание структуры switch ... a) switch (выражение) {case конст1: операторы; break; case конст2: операторы; break; case конст3: операторы; break; default: операторы; } b) switch (выражение) {case конст_1, конст_2: операторы; break; case конст: операторы; break; default: операторы; } c) switch (выражение) {case конст: операторы; break; case конст: операторы; break; case конст: операторы; break; } d) все указанные описания некорректны; 50 e) switch (выражение) {default: операторы; case конст1: операторы; break; case конст2: операторы; break; case конст3: операторы; break; } 29. Метка default в структуре оператора switch ... a) является необязательной, может ставиться как в начале, так и в конце блока switch; b) является необязательной, может ставиться только в конце блока switch; c) является необязательной, может ставиться только в начале блока switch; d) является обязательной, может ставиться только в конце блока switch; e) является обязательной, может ставиться только в начале блока switch. 30. Выберите корректное описание оператора goto a) goto L1:; L1 - метка, может располагаться как до оператора goto, так и после него; b) goto L1; L1 - метка, может располагаться только после оператора goto; c) goto : L1; L1 - метка, может располагаться как до оператора goto, так и после него; d) goto L1; L1 - метка, может располагаться как до оператора goto, так и после него; e) goto :L1; L1 - метка, может располагаться только до оператора goto. 31. Областью действия метки в операторе goto яв- ляется ... a) блок, в котором находится метка; b) блок, в котором находится оператор goto; c) функция; d) весь файл; e) вся программа и подгружаемые модули. 32. Выберите случай корректного синтаксиса структуры for ... a) for (инициализация; условное_выражение; список_выражений); тело_цикла; b) for (инициализация, условное_выражение, список_выражений) тело_цикла; c) for (инициализация; условное_выражение; список_выражений) тело_цикла; d) for (список_выражений, инициализация, условное_выражение;) тело_цикла; e) for (условное_выражение; инициализация; список_выражений) тело_цикла; 33. Областью действия переменной, объявленной в заголовке структуры for, является ... структура for; файл; функция; подгружаемый модуль; прототип функции. 34. Список выражений в структуре for ... a) может быть частично пустым, порядок выражений при этом произволен; b) всегда должен быть записан полностью; c) всегда должен быть записан полностью, но порядок выражений может быть про- извольным; d) всегда должен быть пустым; e) может быть пустым. 35. Выберите случай корректного синтаксиса структуры while ... a) while (условие) тело_цикла; выполняется, когда условие ложно; b) while (условие); тело_цикла; выполняется, когда условие истинно; c) while (условие); тело_цикла; выполняется, когда условие ложно; d) while (условие) тело_цикла; выполняется, когда условие истинно; e) while (тело_цикла) 51 условие; выполняется, когда условие истинно. 36. Выберите случай корректной записи структуры do while ... a) do тело_цикла while (условие); выполняется, когда условие ложно; b) do тело_цикла while (условие); выполняется, когда условие истинно; c) do тело_цикла while; (условие); выполняется, когда условие истинно; d) do тело_цикла while; (условие); выполняется, когда условие ложно; e) do (условное_выражение) while; те- ло_цикла; выполняется, когда условие истинно. 37. Оператор break нужен для ... a) выхода из структуры; b) выхода из цикла; c) выхода из программы; d) выхода из функции; e) выхода из Windows. 38. Оператор return нужен для ... a) выхода из структуры; b) выхода из цикла; c) выхода из программы; d) выхода из функции; e) выхода из Windows. 39. Оператор continue нужен для ... a) пропуска функции; b) пропуска итерации в цикле; c) пропуска структуры; d) досрочного завершения программы; e) выхода из функции. 40. Для инициализации элементов массива нулями необходимо ... a) каждому элементу массива присвоить ну- левое значение; b) не нужно ничего делать – массив запол- няется нулями автоматически; c) обнулить первую строчку массива, если массив двумерный; d) достаточно присвоить нулевое значение одному элементу массива, остальные эле- менты обнулятся автоматически; e) названию массива присвоить нулевое зна- чение. 41. Доступ к элементам двумерного массива IntArray осуществляется следующим образом: a) IntArray[i],[j]; b) IntArray[[i],[j]]; c) IntArray[i];[j]; d) IntArray[i][j]; e) IntArray [i,j]; 42. Тип возвращаемого значения функции void ука- зывает, что ... a) функция не возвращает значения; b) функция возвращает значение произволь- ного типа; c) функция может работать только с пара- метрами типа void; d) функция определена неверно; e) функция может работать только с типом void, определенным программистом. 43. Встраиваемая функция описывается с помощью спецификатора... a) inline; b) in; c) into; d) inside; e) infunc. 44. Операция sizeof ... a) определяет размер, занимаемый про- граммными файлами в байтах; b) определяет размер любого типа данных в байтах; c) задает размер типов данных в гигабайтах; d) увеличивает размер типа int до 1 мегабай- та; e) возвращает размер массива. 45. Операция new ... a) очищает значение переменной; b) добавляет в массив новую строку или столбец; c) выделяет память для хранения перемен- ной; d) используется для создания нового типа; 52 e) используется для описания прототипа функции. 46. Операция delete ... a) удаляет строку символьного массива; b) освобождает память; c) завершает работу программы при нажа- тии на кнопку Delete на клавиатуре; d) очищает файл программы; e) уменьшает размер файлов с кодом про- граммы. 47. Перегрузка функций ... a) нужна для выполнения одних и тех же действий с разными типами данных; b) нужна для загрузки в память функций, выполняющихся большое количество раз; c) нужна для выполнения одних и тех же действий с разными типами данных, ко- личество параметров должно быть раз- ным; d) нужна для использования функций с оди- наковыми именами для различных дейст- вий, но параметры функций должны быть разными; e) нужна для использования функций с оди- наковыми именами для различных дейст- вий, но параметры функций должны пол- ностью совпадать. 48. Выберите вариант неправильной записи прото- типов двух перегруженных функций ... a) int MyFunction (int, int); float MyFunction (float, float); b) int MyFunction (int, int); float MyFunction (float, int); c) int MyFunction (int a, int b); float MyFunction (float a); d) int MyFunction (int, int); int MyFunction (int, float, int); e) int MyFunction (int, int); float MyFunction (int, int); 49. Выберите случай некорректного объявления одномерного массива: a) int MyArray[3]; b) int MyArray[]={1,2,3}; c) #define Dim 3; int MyArray[Dim]; d) const int Dim = 3; int MyArray[Dim]; e) int Dim = 3; int MyArray[Dim]; 50. Шаблоны функций ... a) необходимы для выполнения одних и тех же действий с разными типами данных; b) необходимы для загрузки в память функ- ций, выполняющихся большое количест- во раз; c) необходимы для использования функций с одинаковыми именами для различных действий, параметры функций должны быть разными; d) необходимы для выполнения одних и тех же действий с разными типами данных, количество параметров должно быть раз- ным; e) необходимы для использования функций с одинаковыми именами для различных действий, параметры функций должны полностью совпадать. 51. С помощью блоков try... catch() в С++ обра- батываются a) синхронные исключения; b) асинхронные исключения; c) пассивные ошибки; d) активные ошибки; e) прерывания. 52. Пассивный (реактивный) метод обработки исключений подразумевает, что a) исключение игнорируется; b) исключение обрабатывается только в режиме отладки программы; c) исключению не дают возникнуть в мо- мент работы программы, заранее предусмот- рев все ошибочные ситуации; d) исключению позволяют возникнуть при выполнении программы, но программа не за- вершается аварийно, т.к. исключение обраба- тывается; e) исключению позволяют возникнуть при выполнении программы, программа заверша- ется аварийно. 53 53. Выберите корректную форму записи блока перехвата исключений: a) catch(){операторы;} b) catch {операторы;} c) catch (тип_исключения& имя_исключения) {операторы;} d) catch (имя_исключения){операторы;} e) catcth (спи- сок_исключений_через_запятую) {операто- ры;} f) catch (all) {операторы;} 54. Что происходит в программе, если для те- кущего блока try не находится подходящий обработчик? a) управление передается операторам, идущим после блоков catch; b) работа программы завершается аварий- но; c) генерируется обработчик для исключе- ния unexpected; d) поиск обработчиков продолжается для вложенных блоков try, если подходящий catch не будет найден, работа программы завершается аварийно; e) поиск обработчиков продолжается для внешних блоков try, если подходящий catch не будет найден, работа программы завер- шается аварийно. 55. Повторная генерация исключений исполь- зуется, чтобы a) сначала освободить ресурсы, потом об- работать ту же самую исключительную си- туацию; b) проверить, что исключительная ситуа- ция была обработана корректно; c) гарантированно обработать исключи- тельную ситуацию; d) повторная генерация исключений не используется; e) сначала освободить ресурсы, потом об- работать остальные исключительные ситуа- ции. 56. Дано следующее описание заголовка функ- ции: void someFunction() throw (); Что означает такое описание? a) внутри функции обязательно присутст- вуют блоки try-catch; b) функция не генерирует никаких ис- ключений; c) функция может сгенерировать любое исключение; d) функцию обязательно надо заключить в блоки try-catch; e) в функции переопределяется исключе- ние unexpected и впоследствии генерирует- ся; f) такое описание неверное, после заго- ловка функции не может идти ключевое слово throw. 57. Дано следующее описание заголовка функ- ции: void someFunction() throw (myException1, myException2); Что означает такое описание? a) внутри функции обязательно присутст- вуют блоки try-catch; b) функция не генерирует никаких ис- ключений; c) функция может сгенерировать любое исключение; d) функция гарантированно генерирует только исключения вида myException1, myException2; e) функция может сгенерировать исклю- чения вида myException1, myException2; f) в функции переопределяется исключе- ние unexpected и впоследствии генерирует- ся; g) такое описание неверное, после заго- ловка функции не может идти ключевое слово throw. |