Учебно-методический комплекс учебной дисциплины сдм. 02 «программирование» подготовки магистров по направлению 050200 «Физико-математическое образование» магистерская программа «Информатика в образовании»

Вид материалаУчебно-методический комплекс

Содержание


Итоговая аттестация
Подобный материал:
1   2   3   4   5   6
Т Е С Т

1. Какие основные типы данных известны вам в языке С++?
  1. стековые, регистровые;
  2. константы, переменные;
  3. char, int, float,double;
  4. символьные, строковые, целые.

2. В каком порядке происходит выравнивание типов при смешивании операндов?
  1. char, short, int, float, double;
  2. short, double, float, char, int;
  3. double, char, int, short, float;
  4. char, int, short, double, float.

3. Каков диапазон значений у типов: float, int, double?
  1. -256-+256, 0-65536, -65536-+65536;
  2. -+-3.4Е+38-3.4Е-38, -32768-32767, -128-+127;
  3. -32768-32767, 0-65536, -128-+127;
  4. -3.4E+308-3.4E+308, 0-65535, 0-+255.

4. В чем разница между понятиями «тип данных» и «модификатор данных»?
  1. Модификатор никогда не пишется явно;
  2. тип определяет знак, модификатор – размер;
  3. тип определяет размер, модификатор – знак;
  4. модификатор можно объявить, тип – нет.

5. Где в языке С++ должны объявляться локальные переменные?
  1. только после инструкций тела функции;
  2. в любом месте локальной (внешней) функции;
  3. только в объявлении прототипа функций;
  4. в любом месте программы.

6. В каком порядке будут выполняться операции: () + && % ?
  1. () ? % && +
  2. () % + ? &&
  3. && ? + () %
  4. ? % () && +

7. Что производит с переменной i при операции i++?
  1. заносит значение переменной i в первые два регистра;
  2. увеличивает значение сегмента памяти на 2;
  3. прибавляет единицу после участия i в другие операции;
  4. прибавляет единицу перед участия i в другие операции.

8. Какие значения будут присвоены X(1) и Y(0) после операции: ?
  1. ;
  2. ;
  3. ;
  4. .

9. В какой из данных строк содержатся только логические операции?
  1. * -> & >= <= | / ?=
  2. += -= *= /= >= <= > < =
  3. && > >= < <= = = || ! !=
  4. += && || >= > <= < != &

10. Чем определяется порядок выполнения операций в выражении?
  1. объемом оперативной памяти и приоритетом;
  2. только расставленными круглыми скобками;
  3. круглыми скобками и приоритетом операций;
  4. приоритетом и размером выражения.

11. Процесс перевода инструкций языка С++ в машинный код называется ________________________.

12. Каким типом данных должны быть объявлены переменные, которые могут хранить вещественную часть:
  1. float;
  2. double;
  3. int;
  4. char.

13. Какой из следующих операторов выводит символ новой строки и символ табуляции?
  1. cout << enl << “\t”;
  2. cout << enl << “\n”;
  3. cout << enl << “\f”;
  4. cout << enl << “\s”;

14. Командой в С++ для печати на экране строки символов, является:
  1. cout >>;
  2. cin <<;
  3. cout <<;
  4. cin >>.

15. Командой в С++ для чтения вводимой информации из стандартного потока ввода, является:
  1. cout >>;
  2. cin <<;
  3. cout <<;
  4. cin >>.

16. Чем линейные вычислительные процессы отличаются от циклических?
  1. тем, что они повторяются много раз;
  2. тем, что они выполняются по порядку следования в программе;
  3. тем, что они идут гораздо медленнее;
  4. тем, что они выполняются только один раз.

17. Каковы основные свойства алгоритма?
  1. непрерывность, идеальность, знаковость;
  2. точность, дискретность, определенность, определяемость;
  3. коммутативность, инициализируемость, массовость, определенность;
  4. всеобщность, дискретность, результативность, определенность.

18. Какие операторы в С++ применяются для организации разветвляющихся вычислительных процессов?
  1. for, while, do while;
  2. continue, go to, switch;
  3. go to, break, continue, switch;
  4. for, go to, while, switch.

19. Какие операторы в С++ применяются для организации циклических вычислительных процессов?
  1. go to, break, continue, switch;
  2. for, while, do while;
  3. go to, for, do while;
  4. for, go to, while, switch.

20. В каком случае оправдано применение оператора GOTO?
  1. в случае написания разделительных программ;
  2. в случае входа внутрь вложенных циклов;
  3. в любом месте, где это удобно;
  4. в случае выхода из вложенных циклов.

21. Какие значения будут присвоены a[i] и i после выполнения выражения: ; (до выполнения операции i=2)?
  1. ;
  2. ;
  3. ;
  4. это зависит от модели используемого компилятора.

22. Как в языке С++ объявить массив целого типа из 10 элементов?
  1. int a(10);
  2. int a[10];
  3. char b[10];
  4. float b(10).

23. Как в языке С++ представляются многомерные массивы?
  1. в виде совокупности многомерных ячеек в памяти;
  2. в виде последовательности символов в памяти;
  3. в виде совокупности регистров стека;
  4. в виде особого одномерного массива.

24. Чем характеризуется любой одномерный массив?
  1. аргументами и именем массива;
  2. числом элементов массива и параметрами;
  3. именем массива и числом элементов;
  4. именем массива и параметрами.

25. Почему в языке С++ выгодно динамическое представление массивов?
  1. так как увеличивается быстродействие компьютера;
  2. так как память никогда не используется зря;
  3. так как остается больше места для других данных;
  4. все приведенные ответы.

26. К чему может привести использование очень больших локальных массивов?
  1. вследствие записи по нулевому адресу будет испорчена оперативная память;
  2. откажется действовать компоновщик;
  3. вследствие переполнения стека программа завершится до начала выполнения;
  4. может произойти любое из указанных действий.

27. Почему нельзя передать двумерный массив функции, ожидающей указатель на указатель?
  1. потому что двумерный массив превращается в указатель на массив;
  2. потому что будет испорчена оперативная память;
  3. потому что возможны сбои в работе программы;
  4. потому что размер массива всегда больше размера указателя.

28. Что вычислит оператор sizeof при попытке определить с его помощью размер массива, который передан функции в качестве параметра?
  1. количество элементов в массиве;
  2. размер указателя на массив;
  3. размер массива указателей;
  4. размер массива указателей на указатель.

29. Что в языке С++ называется указателем?
  1. константа, определяемая в процессе работы;
  2. переменная, содержащая адрес другой переменной;
  3. заголовочная функция программы;
  4. определитель сегмента стека в оперативной памяти.

30. Что в языке С++ означает строка: void *t?
  1. константа void инициализирует тип t;
  2. константа void – указатель на переменную t;
  3. тип void инициализирует переменную t;
  4. тип void инициализирует константу t.

31. К чему в языке С++ может привести использование указателей?
  1. работающая программа зависнет;
  2. будет перегружена память компьютера;
  3. откажется действовать компилятор;
  4. может произойти любое из указанных действий.

32. Какое различие существует между именем массива и соответствующим указателем?
  1. имя массива – константа, указатель – переменная;
  2. указатель оперирует только с константами;
  3. имя массива занимает больший объем памяти;
  4. указатель занимает больший объем памяти.

33. В какой из строк объявляется переменная целого типа и ее адрес сохраняется в другой переменной?
  1. ;
  2. ;
  3. ;
  4. .

34. Массив символов, обрабатываемая как единый модуль – это ________________.

35. Сопоставьте функции – члены класса string и их действия:

  1. char *strcpy (char *s1, const char *s2);
  2. char *strcat (char *s1, const char *s2);
  3. int strcmp (const char *s1, const char *s2);
  4. char *strok (char *s1, const char *s2);
  5. size_t strlen (const char *s).
      1. добавляет строку s2 к строке s1;
      2. определяет длину строки s.
      3. разбивает строку s1 на лексемы, содержащимися в строке s2;
      4. копирует строку s2 в массив символов s1;
      5. сравнивает строки s1 и s2.




36. Какая функция в С++ очищает экран?
  1. delscr();
  2. clrscr();
  3. clsscr();
  4. cleane().

37. В какой из строк аргументы функции main написаны правильно (выберите несколько вариантов)?
  1. (int argc, char *argv[], char *envp[]);
  2. (int argc, char argv[], char envp[]);
  3. (int argc, char *envp);
  4. (int argc, char *argv[]).

38. К чему может привести широкое использование функций в программе?
  1. значительно увеличивается длина исходного файла;
  2. размер исполняемого файла уменьшится;
  3. программа начнет работать гораздо быстрее;
  4. размер исполняемого файла увеличится.

39. Какая из 3-х функций: – будет вызвана первой при вычислении значения переменной a в выражении ?
  1. функции ;
  2. функции ;
  3. функции ;
  4. нельзя точно сказать.

40. Когда функция в языке С++ завершает свое выполнение?
  1. только при достижении оператора return;
  2. только при достижении оператора break;
  3. только при достижении завершающей фигурной скобки;
  4. в случаях а или в.

41. Функция, которая прямо или косвенно вызывает сама себя, называется ____________________________.

42. Повторный запуск рекурсивного механизма вызовов функции приводит:
  1. к нарастающим затратам процессорного времени и требуемого объема памяти;
  2. к отказу действия компилятора;
  3. к завершению программы до начала выполнения;
  4. к перезагрузке программы.

43. Совокупности типов данных, построенные с использованием данных других типов, называются _____________________.

44. Какие из перечисленных ниже утверждений неверны (выберите несколько вариантов)?
  1. компоненты структуры могут быть различных типов;
  2. компоненты структуры должны быть различных типов;
  3. структура представляет собой совокупность данных;
  4. компоненты структуры имеют атрибут private по умолчанию.

45. Какие из перечисленных ниже утверждений неверны?
  1. класс представляет собой набор переменных;
  2. компоненты класса имеют атрибут public по умолчанию;
  3. компоненты класса должны быть различных типов;
  4. в языке С++ недопустима вложенность классов;
  5. описание класса не может производиться в другом классе;
  6. все утверждения верны.

46. Какое ключевое слово начинает определение структуры?
  1. class {};
  2. struct {};
  3. main {};
  4. void {}.

47. Функция определенная внутри класса, называется ________________.

48. Какое ключевое слово начинает определение класса?
  1. class {};
  2. struct {};
  3. void {}.
  4. main {};

49. Препятствиями к созданию новых типов данных с помощью struct являются:
  1. возможность существования данных, не имеющих начальных значений;
  2. возможность существования данных с неправильными начальными значениями;
  3. необходимость изменения всех программ, использующих struct, при изменении реализации struct;
  4. отсутствие средств защиты, гарантирующих, что данные не содержат несогласованных значений;
  5. все утверждения верны.

50. Каково различие между оператором точка и оператором доступа к члену класса по имени класса?
  1. оператор точка именуется оператором доступа к члену класса по имени класса, а оператор доступа – оператором прямого доступа к члену класса;
  2. оператор точка именуется оператором прямого доступа к члену класса, а оператор доступа – оператором доступа к члену класса по имени класса;
  3. оператор точка именуется оператором закрытого доступа к члену класса, а оператор доступа – оператором доступа к члену класса по имени класса;
  4. различий нет.

Правильные ответы:

  1. в
  2. а
  3. б
  4. в
  5. б
  6. б
  7. в
  8. б
  9. в
  10. в
  11. компиляцией
  12. б
  13. а
  14. в
  15. г
  16. б
  17. г
  18. в
  19. б
  20. г
  21. г
  22. б
  23. б
  24. в
  25. г
  26. в
  27. а
  28. б
  29. б
  30. в
  31. г
  32. а
  33. б
  34. строка
  35. 1-г, 2-а, 3-д, 4-в, 5-б
  36. б
  37. а, г
  38. б
  39. г
  40. г
  41. рекурсией
  42. а
  43. структуры
  44. б, г
  45. е
  46. б
  47. членом
  48. а
  49. д
  50. б

Шкала оценки:

Кол-во правильных ответов

Оценка

52

отлично

41 – 51

хорошо

21 – 40

удовлетворительно

до 20

не удовлетворительно

ИТОГОВАЯ АТТЕСТАЦИЯ

ВОПРОСЫ (к экзамену)
  1. История и назначение языка Си++.
  2. Структура программы на языке С++. Примеры. Этапы создания исполняемой программы.
  3. Состав языка С++. Константы и переменные С++.
  4. Типы данных в С++.
  5. Выражения. Знаки операций.
  6. Сводка операций: скобки, порядок вычислений, инкремент и декремент, преобразование типа.
  7. Основные операторы С++ (присваивание, составные, выбора, циклов, перехода). Синтаксис, семантика, примеры.
  8. Этапы решения задачи. Виды ошибок. Тестирование.
  9. Массивы (определение, инициализация, способы перебора).
  10. Сортировка массивов (простой обмен, простое включение, простой выбор).
  11. Поиск в одномерных массивах (дихотомический и линейный).
  12. Указатели. Операции с указателями. Примеры.
  13. Динамические переменные. Операции new и delete. Примеры.
  14. Ссылки. Примеры.
  15. Одномерные массивы и указатели. Примеры.
  16. Многомерные массивы и указатели. Примеры.
  17. Динамические массивы. Примеры.
  18. Символьная информация и строки. Функции для работы со строками (библиотечный файл string.h).
  19. Функции в С++. Рекурсия. Примеры.
  20. Прототип функции. Библиотечные файлы. Директива препроцессора #include.
  21. Передача одномерных массивов в функции. Примеры.
  22. Передача многомерных массивов в функции. Примеры.
  23. Передача строк в функции. Примеры.
  24. Функции с умалчиваемыми параметрами. Примеры.
  25. Подставляемые функции. Примеры.
  26. Функции с переменным числом параметров. Примеры.
  27. Перегрузка функции. Шаблоны функций. Примеры.
  28. Указатели на функции. Примеры.
  29. Ссылки на функции. Примеры.
  30. Типы данных, определяемые пользователем (переименование типов, перечисление, структуры, объединения). Примеры.
  31. Структуры. Определение, инициализация, присваивание структур, доступ к элементам структур, указатели на структуры, битовые поля структур.
  32. Динамические структуры данных (однонаправленные и двунаправленные списки).
  33. Создание списка, печать, удаление, добавление элементов (на примере однонаправленных и двунаправленных списков).
  34. Классы и члены: функции-члены, классы, ссылка на себя, инициализация, удаление, подстановка.
  35. Классы: друзья, уточнение имени члена, вложенные классы, статические члены, указатели на члены, структуры и объединения.
  36. Конструкторы и деструкторы, локальные переменные.
  37. Объекты класса как члены, массивы объектов класса, небольшие объекты.
  38. Потоковый ввод-вывод в С++. Открытие и закрытие потока. Стандартные потоки ввода-вывода.
  39. Прямой доступ к файлам.
  40. Создание бинарных и текстовых файлов, удаление, добавление, корректировка элементов, печать файлов.

Список задач, выносящихся на итоговую аттестацию
  1. Определить, попадет ли точка с координатами (х;у) в указанную область.
  2. Дана последовательность целых чисел из n элементов. Найти:

a) среднее арифметическое;

b) максимальное значение;
  1. Дана последовательность целых чисел из n элементов. Найти:
    1. количество отрицательных элементов;
    2. номер минимального элемента;
  2. Дана последовательность целых чисел из n элементов. Найти:
    1. количество четных чисел;
    2. минимальный из четных элементов этой последовательности.
  3. Дана последовательность целых чисел, за которой следует 0. Найти:
    1. среднее арифметическое;
    2. (максимальное значение;
  4. Дана последовательность целых чисел, за которой следует 0. Найти:
    1. количество отрицательных элементов;
    2. номер минимального элемента;
  5. Найти сумму чисел Фибоначчи, меньших заданного числа Q.
  6. Напечатать N простых чисел.
  7. Найти сумму целых положительных нечетных чисел, меньших 200.
  8. Напишите программу, которая проверяет принадлежность числа диапазону от 0 до 100 включительно.
  9. Напишите программу, которая считывает переменную и выводит ее куб.
  10. Дан массив целых чисел. Найти: а)среднее арифметическое; б) максимальное значение;
  11. Дан массив целых чисел. Найти:
    1. количество четных чисел;
    2. минимальный из четных элементов этого массива.
  12. Дан массив целых чисел. Перевернуть массив.
  13. Дан массив целых чисел. Поменять местами пары элементов в массиве: 1 и 2, 3 и 4, 5 и 6 и т. д.
  14. Циклически сдвинуть массив на k элементов влево (вправо).
  15. Напишите программу, которая вычисляет факториалы, используя рекурсивную функцию.
  16. Определить какое слово встречается в строке чаще всего.
  17. Дана строка символов, состоящая из слов, слова разделены между собой пробелами. Удалить из строки все слова, начинающиеся с цифры.
  18. Преобразовать строку таким образом, чтобы все слова в ней были напечатаны наоборот.
  19. Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию.
  20. Напечатать самое длинное и самое короткое слово в этой строке.
  21. Получите от пользователя три порции информации: имя собаки, ее породу и возраст. Затем напечатайте предложение, используещее эту информацию.
  22. Сформировать динамический массив строк. Удалить из него строку с заданным номером.
  23. Дан массив int *a. Удалить из массива все элементы, совпадающие с первым элементом, используя динамическое выделение памяти.
  24. Найти количество цифр в строке символов, используя функции.
  25. Удалить из однонаправленного (двунаправленного) списка элемент с заданным номером (ключом).
  26. Добавить в однонаправленный (двунаправленный) список элемент с заданным номером.
  27. Создать структуру «Книга»:
  • название;
  • автор;
  • год издания;
  • количество страниц.

Удалить 3 элемента из начала файла, добавить элемент перед элементом с указанным названием.
  1. Удалить из бинарного файла, в котором записаны целые числа все четные элементы.
  2. Добавить в бинарный файл, в который записаны элементы типа struct Student {char name[20];int age;}; k элементов после элемента с заданной фамилией.
  3. Удалить из текстового файла все четные строки.
  4. Добавить порядковый номер в каждую строку текстового файла.
  5. В текстовом файле заменить все строки, начинающиеся с буквы «f» на строки, начинающиеся с буквы «a».

Примерные темы рефератов
  1. История С++.
  2. С++ – язык объектно-ориентированного программирования.
  3. Особенности языка С++.
  4. Дружественные функции и классы С++.
  5. Использование виртуальных функций и полиморфизм С++.
  6. Работа с файлами в языке С++.
  7. Многомерные массивы в С++.
  8. Конструкторы и деструкторы в С++.
  9. Классы контейнеры и итераторы.
  10. Композиция и наследование С++.
  11. Исключения – что это такое?
  12. Потоки ввода-вывода.
  13. Стандартные манипуляторы ввода-вывода.
  14. Проектирование библиотек.