
- •Часть 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. Динамические структуры данных
- •Варианты индивидуальных заданий
Тесты к теоретическому разделу Вопросы к разделу 1. Основные типы данных
1. Какой объём памяти занимает переменная типа char?
а) 1 байт
б) 2 байта
в) 4 байта
г) 8 байт
2. Переменная типа float занимает в памяти компьютера
а) 16 бит
б) 32 бита
в) 64 бита
3. Какой из нижеперечисленных типов данных относится к скалярным?
а) тип void
б) массивы
в) тип “функция”
г) арифметические типы
4. Где ставится нуль-символ?
а) как первый символ в строке
б) после пробела
в) в конце файла
г) автоматически в конце строки
5. Какие действия выполняет функция printf?
а) присваивает значение символьной переменной
б) выводит форматированные данные на экран монитора
в) читает данные с клавиатуры
г) преобразовывает типы данных
6. Какой модификатор формата надо использовать для вывода с помощью функции printf на экран значения типа int?
а) x;
б) g;
в) d;
г) f.
7. Какие параметры передаются функции scanf?
а) переменные
б) адреса переменных
в) константы
г) эта функция используется без параметров
8. Какой функции система передает управление при запуске программы?
а) расположенной раньше всех в коде программы
б) идентификатор которой начинается с символа ‘_’
в) функции main
г) не определено
9. Какой раздел системной библиотеки надо подключить к программе для использования функций стандартного ввода/вывода?
а) stdio.h
б) conio.h
в) stdlib.h
10. Какой диапазон представления переменной типа signed int для 16-разрядных микропроцессоров Intel?
а) от -32768 до 32767
б) от 0 до 65535
в) от -2 147 483 648 до 2 147 483 647
г) от 0 до 4 294 967 295
Вопросы к разделу 2. Операции и выражения
1. Каков будет результат побитовой операции 7 & 2?
а) 5;
б) 9;
в) 2.
2. Что такое выражение?
а) Выражение в языке Си – это последовательность операндов, операций и символов-разделителей;
б) Выражение в языке Си – это совокупность функций и процедур;
в) Выражение в языке Си – это последовательность переменных, арифметических и логических операций.
3. Каково значение выражения 201 / 4?
а) 50;
б) 51;
в) 50,25.
4. Каково значение выражения 201%4?
а) 50;
б) 1;
в) 0,25.
5. Если переменные myAge, a и b имеют тип int, то каковы будут их значения после выполнения выражения:
myAge = 39;
a = myAge++;
b = ++ myAge;
а) а = 39, b = 41, myAge = 41;
б) а = 40, b = 39, myAge = 39;
в) а = 40, b = 40, myAge = 39;
г) а = 40, b = 41, myAge = 41.
6. Какая разница между выражениями if (x = 3) и if(x == 3)?
а) В первом выражении выполняется операция сравнения, а во втором – операция присваивания;
б) В первом выражении выполняется операция присваивания, а во втором – операция сравнения;
в) Выражения идентичны, т. к. и в первом, и во втором выражениях выполняется операция присваивания.
7. Результатом выполнения операции x = x >> 2, при x = 24 будет:
а) 12;
б) 48;
в) 96;
г) 6.
8. К какому типу будет преобразован результат вычисления выражения в правой части операции присваивания:
char ch;
int i;
float f;
double d;
result = (f / i) + (f * i) – (ch + d);
а) double;
б) int;
в) float.
9. Необходимо ли в данной операции использование скобок, если нужно сравнить значение x & MASK с нулем?
if ((x & MASK) == 0)
а) Скобки не нужны, т. к. логический оператор & имеет более высокий приоритет по отношению к оператору сравнения ==.
б) Скобки нужны, т. к. логический оператор & имеет более низкий приоритет по отношению к оператору сравнения ==.
в) Скобки нужны, т. к. без скобок логическая операция выполняться не будет.
10. Для чего используется оператор sizeof в языке Си?
а) Это унарный оператор, возвращающий длину в байтах переменной или типа;
б) Это унарный оператор, служащий для арифметических операций;
в) Это унарный оператор, возвращающий объём выделенной памяти.