
- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Учреждение образования
- •«Белорусский государственный университет
- •Информатики и радиоэлектроники»
- •Часть 2 __184__
- •Содержание дисциплины
- •1. Индивидуальные практические занятия, их характеристика
- •2. Контрольные работы, их характеристика
- •3. Курсовой проект, его характеристика
- •4. Литература
- •4.1. Основная
- •4.2. Дополнительная
- •5. Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Протокол согласования учЕбной программы по изучаемой учебной дисциплине с другими дисциплинами специальности
- •Теоретический раздел Введение
- •1. Основные типы данных
- •1.1. Общие сведения
- •1.2. Данные типа int
- •1.3. Данные типа char
- •1.4. Модификаторы доступа const и volatile
- •1.5. Данные вещественного типа (с плавающей точкой)
- •1.6. Элементарный ввод-вывод
- •1.7. Структура простой программы на языке Си
- •2. Операции и выражения
- •2.1. Выражение и его интерпретация
- •2.2. Основные операции
- •2.2.1. Арифметические операции
- •2.2.2. Побитовые логические операции
- •2.2.3. Операции сдвига
- •2.2.4. Операция присваивания
- •2.2.5. Операция sizeof
- •2.2.6. Преобразование типов в выражениях
- •2.2.7. Операция преобразования типов
- •2.2.8. Приоритеты в языке Си
- •3. Операторы управления вычислительным процессом
- •3.1. Оператор if
- •3.2. Операции отношения
- •3.3. Логические операции
- •3.4. Операция запятая
- •3.5. Операция условия ?:
- •3.6. Оператор безусловного перехода goto
- •3.7. Оператор switch
- •`` ` `3.8. Операторы цикла
- •3.8.1. Оператор for
- •3.8.2. Оператор while
- •3.8.3. Оператор do...While
- •3.9. Оператор break
- •3.10. Оператор continue
- •4. Массивы и указатели
- •4.1. Одномерные массивы и их инициализация
- •4.2. Многомерные массивы и их инициализация
- •4.3. Объявление указателей
- •4.4. Операции над указателями
- •1) Взятие адреса
- •2) Косвенная адресация или разыменование указателя
- •3) Увеличение или уменьшение значения указателя на целое число
- •4) Разность указателей
- •5) Сравнение указателей
- •6) Присваивание указателей друг другу
- •4.6. Связь между указателями и массивами
- •4.7. Динамическое распределение памяти
- •4.8. Массивы указателей
- •5. Функции
- •5.1. Общие сведения
- •5.2. Область видимости переменных
- •5.2.1. Локальные переменные
- •5.2.2. Глобальные переменные
- •5.3. Передача параметров в функцию
- •5.4. Рекурсивные функции
- •5.5. Использование функций в качестве параметров функций
- •5.6. Указатели на функции
- •5.7. Структура программы на Си
- •5.8. Передача параметров в функцию main()
- •6. Строки
- •7. Классы хранения и видимость переменных
- •7.1. Общие сведения
- •7.2. Автоматический класс хранения (auto)
- •7.3. Регистровый класс хранения (register)
- •7.4. Статический класс хранения (static)
- •7.5. Внешний класс хранения (extern)
- •7.6. Заключение
- •8. Структуры, объединения и перечисления
- •8.1. Общие сведения
- •8.2. Инициализация структурных переменных
- •8.3. Вложенные структуры
- •8.4. Указатели на структуры
- •8.5. Массивы структурных переменных
- •8.6. Передача функциям структурных переменных
- •8.7. Оператор typedef
- •8.8. Поля битов в структурах
- •8.9. Объединения
- •8.10. Перечисления
- •9. Динамические структуры данных
- •9.1. Общие сведения
- •9.2. Связные списки
- •9.2.1. Односвязные списки
- •9.2.2. Двусвязные списки
- •9.2.3. Циклические списки
- •9.3. Стеки
- •9.4. Очереди
- •9.5. Деревья
- •9.5.1. Понятие графа
- •9.5.2. Бинарные деревья
- •10. Файлы
- •10.1. Общие сведения
- •10.2. Открытие и закрытие файлов
- •10.3. Функции ввода-вывода для работы с текстовыми файлами
- •10.4. Произвольный доступ к файлу
- •10.5. Функции ввода-вывода для работы с бинарными файлами
- •11. Директивы препроцессора
- •11.1. Основные понятия
- •11.2. Директива #include
- •11.3. Директивы препроцессора #define и #undef
- •11.3.1. Символические константы
- •11.3.2. Макросы с параметрами
- •11.3.3. Директива #undef
- •11.4. Условная компиляция
- •11.5. Директивы # и ##
- •12. Модульное программирование
- •13. Введение в объектно-ориентированное программирование
- •13.1. Постановка задачи
- •13.2. Решение задачи средствами Си
- •13.5. Наследование
- •13.6. Перегрузка
- •13.7. Ссылочный тип
- •Литература
- •Приложение 1. Рекомендации по оформлению текстов программ
- •Тесты к теоретическому разделу Вопросы к разделу 1. Основные типы данных
- •Вопросы к разделу 2. Операции и выражения
- •Вопросы к разделу 3. Операторы управления вычислительным процессом
- •Вопросы к разделу 4. Массивы и указатели
- •Вопросы к разделу 5. Функции
- •Вопросы к разделу 6. Строки
- •Вопросы к разделу 7. Классы хранения и видимость переменных
- •Вопросы к разделу 8. Структуры, объединения и перечисления
- •Вопросы к разделу 9. Динамические структуры данных
- •Вопросы к разделу 10. Файлы
- •Вопросы к разделу 11. Директивы препроцессора
- •Вопросы к разделу 12. Модульное программирование
- •Вопросы к разделу 13. Введение в ооп
- •Правильные ответы на вопросы тестов к теоретическому разделу
- •Вопросы к теоретическому зачету
- •Варианты индивидуальных заданий
- •Контрольная работа №2
- •Варианты индивидуальных заданий
- •Индивидуальные практические работы Указания к выбору варианта индивидуальных практических работ
- •Индивидуальная практическая работа № 1. Массивы и строки
- •Варианты индивидуальных заданий
- •Индивидуальная практическая работа № 2. Динамические структуры данных
- •Варианты индивидуальных заданий
Вопросы к разделу 9. Динамические структуры данных
1. Чем отличаются динамические структуры данных от статических?
а) под статические структуры можно выделить неограниченное количество памяти;
б) статические структуры данных обеспечивают хранение информации на более длительный срок;
в) динамические структуры данных увеличиваются или уменьшаются в процессе выполнения программы, а размер статических структур строго определен в процессе компиляции;
г) динамические структуры требуют меньшее количество памяти, чем статические.
2. Что представляет собой связный список?
а) это линейная динамическая структура данных, последовательность связных между собой узлов, где их количество изменяется по мере добавления и удаления;
б) это нелинейная структура, элементы в которой следуют друг за другом;
в) это динамическая структура, из которой, после ее заполнения, нельзя удалять элементы;
г) это линейная динамическая структура, в которую, после ее заполнения, нельзя добавлять элементы.
3. Чем отличаются однонаправленный и двунаправленный списки?
а) двунаправленный список состоит из двух полей данных и указателя на следующий элемент, однонаправленный – из двух указателей на следующие элементы и двух полей данных;
б) однонаправленный список состоит из поля данных и указателя на следующий элемент, двунаправленный – из поля данных и двух указателей на следующий и предыдущий элемент списка;
в) двунаправленный список состоит из поля данных и двух указателей на следующий элемент справа и слева, однонаправленный – поля данных и одного указателя на левый элемент или правый;
г) однонаправленный список состоит из нескольких полей данных и одного указателя на одно из них, а двунаправленный – из нескольких полей данных и двух указателей, на элементы, находящиеся слева и справа.
4. Какое значение имеет указатель последнего элемента циклического списка?
a) он указывает на первый узел данного списка, то есть на начало списка;
б) имеет значение NULL;
в) указывает на предыдущий элемент списка;
г) указывает на еще не заполненную ячейку памяти.
5. Что представляет собой стек?
a) это упорядоченный набор элементов, доступ к которым осуществляется только с одного конца, называемого вершиной стека;
б) это подвид списка, где удалять можно с одного конца, а добавлять с другого;
в) это упорядоченный набор элементов с произвольным к ним доступом;
г) это список, из которого нельзя удалять элементы.
6. Основные функции работы со стеком:
а) функции копирования и создания стека;
б) функция перемещения по стеку;
в) функция удаления стека;
г) функции занесения элемента в стек и извлечения элемента из стека.
7. Что такое очередь?
а) динамическая структура, набор связных данных, где удаление и запись производится с одного конца;
б) подвид списка, где добавлять элементы можно в любое место списка;
в) подвид списка, где удаление осуществляется из начала списка, а запись – с конца;
г) структура с ограниченным числом операций удаления и добавления.
8. В чем отличие очереди от стека?
a) в принципе организации и функциях работы с ними;
б) в количестве элементов, которые они могут себя вместить;
в) в разности эффективности доступа к данным;
г) только в функциях работы с ними.
9. Дерево – это…
а) нелинейная структура данных с особыми свойствами;
б) нелинейная структура, вид направленного графа;
в) линейная структура, являющаяся разновидностью списка с особыми свойствами;
г) линейная структура, в которую можно добавлять элементы только с одного конца.
10. В чем особенность бинарных деревьев?
а) из бинарного дерева нельзя удалять узлы;
б) бинарное дерево нельзя изменить;
в) бинарное дерево состоит из ограниченного количества узлов;
г) бинарное дерево состоит из узлов, каждый из которых имеет 0, 1 или 2 потомка.
11. Как организованы бинарные деревья?
а) значения в узлах поддеревьев меньше значения в корне дерева;
б) значения в узлах поддеревьев больше значения в корне дерева;
в) значение в левом узле-потомке меньше значения в данном узле, а значение в правом узле-потомке больше значения в данном узле.