- •Содержание
- •Лекция 1. Общее знакомство
- •Происхождение языка Си
- •Достоинства языка Си
- •Будущее языка Си
- •Использование языка Си
- •Использование текстового редактора для подготовки программ
- •Исходные и выполняемые файлы
- •Пример простой программы на языке Си
- •Пояснения к программе
- •Первый просмотр
- •Второй просмотр
- •Структура простой программы
- •Дополнительный пример
- •Лекция 2. Данные, символьные строки, директива #define
- •Основные типы данных
- •Описание различных типов, переменные и константы
- •Символьные строки
- •Препроцессор языка Си
- •Лекция 3. Операции
- •Основные операции
- •Операция вычитания: -
- •Операция изменения знака: -
- •Операция умножения: *
- •Операция деления: /
- •Дополнительные операции
- •Операция деления по модулю: %
- •Операция уменьшения: --
- •Перечень операций языка Си
- •Операции, уровень приоритета которых равен 1
- •Операция уменьшения: --
- •Операция вычитания: -
- •Операции, уровень приоритета которых равен 5
- •Операции, уровень приоритета которых равен 6
- •Операции, уровень приоритета которых равен 7
- •Операция, уровень приоритета которой равен 8
- •Операция, уровень приоритета которой равен 12
- •Операция логическое или: ||
- •Операция, уровень приоритета которой равен 13
- •Операция условный оператор: ?
- •Операция, уровень приоритета которой равен 14
- •Операция присваивания
- •Операция, уровень приоритета которой равен 15
- •Операция запятая: ,
- •Лекция 4. Операторы
- •Выражения
- •Простейшие выражения
- •Операторы
- •Составные операторы
- •Оператор цикла while
- •Изучение и использование функций printf( ) и scanf( )
- •Применение функции scanf( )
- •Лекция 5. Преобразование типов
- •Эквивалентность типов
- •Преобразование типов
- •Разбор программы
- •Операция приведения
- •Неявное преобразование типа
- •Арифметические преобразования
- •Явные преобразования типов
- •Синтаксис типов
- •Лекция 6. Функции и переключение ввода-вывода
- •Ввод и вывод одного символа
- •Чтение одной строки
- •Чтение файла
- •Переключение и работа с файлами
- •Переключение ввода
- •Комбинированное переключение
- •Операционные системы, отличные от oc unix
- •Лекция 7. Выбор вариантов
- •Выбор вариантов
- •Оператор if
- •Расширение оператора if
- •Операции отношения
- •Что такое истина
- •Осложнение с понятием истина
- •Логические операции
- •Операция условия: ?:
- •Множественный выбор
- •Лекция 8. Циклы и другие управляющие средства. Структурное программирование
- •Структурное программирование
- •Цикл с предусловием
- •Цикл со счетчиком
- •Цикл с постусловием
- •Другие управляющие операторы
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Лекция 9. Функции
- •Создание и использование функций
- •Аргументы функции
- •Возвращение значений
- •Локальные переменные
- •Нахождение адресов
- •Указатели, первое знакомство
- •Операция косвенной адресации *
- •Описание указателей
- •Подведем итоги по указателям
- •Функции с переменным количеством аргументов
- •Лекция 10. Классы памяти и разработка программ
- •Классы памяти и область действия
- •Автоматические переменные
- •Внешние переменные
- •Статические переменные
- •Внешние статические переменные
- •Регистровые переменные
- •Лекция 11. Препроцессор языка Си
- •Общие сведения
- •Символические константы: #define
- •Замена идентификаторов
- •Использование аргументов с #define
- •Макроопределение или функция?
- •Включение файла: #include
- •Условная компиляция
- •Вспомогательные директивы Номер строки и имя файла
- •Реакция на ошибки
- •Пустая директива
- •Встроенные макроимена
- •Лекция 12. Массивы и указатели
- •Указатели и массивы
- •Массивы
- •Указатели
- •Динамические объекты
- •Создание динамических объектов
- •Доступ к динамическим объектам
- •Время жизни динамического объекта
- •Связь между указателями и массивами
- •Строки - дополнительные сведения о тесной связи между указателями и массивами
- •Инициализация массивов и классы памяти
- •Функции, массивы и указатели
- •Операции с указателями
- •Лекция 13. Символьные строки и функции над ними
- •Строковые константы
- •Массивы символьных строк и их инициализация
- •Массив и указатель: различия
- •Указатели и строки
- •Ввод-вывод строк
- •Обработка строк
- •Лекция 14. Структуры
- •Определение структурных переменных
- •Доступ к компонентам структуры
- •Поля битов в структурах
- •Объединения
- •Перечисления
- •Переменные структуры
- •Указатели и структуры
- •Массив структур
- •Переименование типов
- •Лекция 15. Библиотека языка Си и файлы ввода-вывода
- •Стандартные библиотечные функции
- •Доступ в библиотеку языка Си
- •Открытие файла: fopen( )
- •Закрытие файла: fclose( )
- •Текстовые файлы с буферизацией
- •Ввод-вывод текстового файла: getc( ), putc( )
- •Ввод-вывод файла: fprintf( ), fscanf( ), fgets( ), fputs( )
- •Функции fprintf( ) и fscanf( )
- •Функция fgets( )
- •Функция fputs( )
- •Функция fseek( )
- •Распределение памяти Функция malloc( )
- •Функция calloc( )
- •Лекция 16. Функции в примерах
- •Функция получения случайных чисел
- •Поиск узлов из простых чисел
- •Матрица инцидентности
- •Структуры данных
- •Очереди
- •Связанные списки
- •Все операции со стеком
- •Подведем итог
- •Дополнения
- •Литература
Основы программирования на языке C
Калинина Нина Алексеевна, Костюкова Нина Ивановна
Содержание
Лекция 1. Общее знакомство
Происхождение языка Си
Достоинства языка Си
Будущее языка Си
Использование языка Си
Использование текстового редактора для подготовки программ
Исходные и выполняемые файлы
Пример простой программы на языке Си
Пояснения к программе
Первый просмотр
Второй просмотр
Структура простой программы
Дополнительный пример
Лекция 2. Данные, символьные строки, директива #define
Основные типы данных
Описание различных типов, переменные и константы
Символьные строки
Препроцессор языка Си
Лекция 3. Операции
Основные операции
Операция присваивания "="
Операция сложения: +
Операция вычитания: -
Операция изменения знака: -
Операция умножения: *
Операция деления: /
Дополнительные операции
Операция деления по модулю: %
Операция увеличения: ++
Операция уменьшения: --
Перечень операций языка Си
Операции, уровень приоритета которых равен 1
Операция вызова функции: ( )
Операция индексирования массива: []
Операция выбора компонентов структуры или объединения: .
Операция выбора компонентов структуры с указателем: ->
Операции, уровень приоритета которых равен 2
Операция косвенной ссылки: *
Операция получения адреса: &
Операция отрицания: -
Операция логического отрицания: !
Операция дополнения до 1: ~
Операция увеличения: ++
Операция увеличения, постфиксная: ++
Операция уменьшения: --
Операция уменьшения (постфиксная): --
Операция определения требуемой памяти в байтах: sizeof
Операции, уровень приоритета которых равен 3
Операция умножения: *
Операция деления: /
Операция получения остатка: %
Операции, уровень приоритета которых равен 4
Операция сложения: +
Операция вычитания: -
Операции, уровень приоритета которых равен 5
Операция сдвига влево: <<
Операция сдвига вправо: >>
Операции, уровень приоритета которых равен 6
Операция меньше: <
Операция больше: >
Операция меньше или равно: <=
Операция больше или равно: >=
Операции, уровень приоритета которых равен 7
Операция равенство ==
Операция неравенство: !=
Операция, уровень приоритета которой равен 8
Операция поразрядное И: &
Операция, уровень приоритета которой равен 9
Операция поразрядное исключающее или: ^
Операция, уровень приоритета которой равен 10
Операция поразрядное включающее или: |
Операция, уровень приоритета которой равен 11
Операция логическое И: &&
Операция, уровень приоритета которой равен 12
Операция логическое ИЛИ: ||
Операция, уровень приоритета которой равен 13
Операция условный оператор: ?
Операция, уровень приоритета которой равен 14
Операция простое присваивание "="
Операция сложное присваивание "="
Операция присваивания
Операция, уровень приоритета которой равен 15
Операция запятая: ,
Лекция 4. Операторы
Выражения
Простейшие выражения
Операторы
Составные операторы
Оператор цикла while
Изучение и использование функций printf( ) и scanf( )
Применение функции scanf( )
Лекция 5. Преобразование типов
Эквивалентность типов
Преобразование типов
Разбор программы
Операция приведения
Неявное преобразование типа
Арифметические преобразования
Явные преобразования типов
Синтаксис типов
Лекция 6. Функции и переключение ввода-вывода
Ввод и вывод одного символа
Буферы
Чтение одной строки
Чтение файла
Переключение и работа с файлами
Переключение ввода
Комбинированное переключение
Операционные системы, отличные от OC UNIX
Лекция 7. Выбор вариантов
Выбор вариантов
Оператор if
Расширение оператора if
Операции отношения
Что такое истина
Осложнение с понятием истина
Логические операции
Операция условия: ?:
Множественный выбор
Лекция 8. Циклы и другие управляющие средства. Структурное программирование
Структурное программирование
Цикл с предусловием
Цикл со счетчиком
Цикл с постусловием
Другие управляющие операторы
Оператор break
Оператор continue
Оператор goto
Лекция 9. Функции
Создание и использование функций
Аргументы функции
Возвращение значений
Локальные переменные
Нахождение адресов
Указатели, первое знакомство
Операция косвенной адресации *
Описание указателей
Подведем итоги по указателям
Функции с переменным количеством аргументов
Лекция 10. Классы памяти и разработка программ
Классы памяти и область действия
Автоматические переменные
Внешние переменные
Статические переменные
Внешние статические переменные
Регистровые переменные
Лекция 11. Препроцессор языка Си
Общие сведения
Символические константы: #define
Замена идентификаторов
Использование аргументов с #define
Макроопределение или функция?
Включение файла: #include
Условная компиляция
Вспомогательные директивы
Номер строки и имя файла
Реакция на ошибки
Пустая директива
Прагмы
Встроенные макроимена
Лекция 12. Массивы и указатели
Указатели и массивы
Массивы
Указатели
Динамические объекты
Создание динамических объектов
Доступ к динамическим объектам
Время жизни динамического объекта
Связь между указателями и массивами
Строки - дополнительные сведения о тесной связи между указателями и массивами
Инициализация массивов и классы памяти
Функции, массивы и указатели
Операции с указателями
Лекция 13. Символьные строки и функции над ними
Строковые константы
Массивы символьных строк и их инициализация
Массив и указатель: различия
Указатели и строки
Ввод-вывод строк
Обработка строк
Лекция 14. Структуры
Определение структурных переменных
Доступ к компонентам структуры
Поля битов в структурах
Объединения
Перечисления
Переменные структуры
Указатели и структуры
Массив структур
Переименование типов
Лекция 15. Библиотека языка Си и файлы ввода-вывода
Стандартные библиотечные функции
Доступ в библиотеку языка Си
Автоматический доступ
Включение файла
Включение библиотеки
Связь с файлами
Открытие файла: fopen( )
Закрытие файла: fclose( )
Текстовые файлы с буферизацией
Ввод-вывод текстового файла: getc( ), putc( )
Ввод-вывод файла: fprintf( ), fscanf( ), fgets( ), fputs( )
Функции fprintf( ) и fscanf( )
Функция fgets( )
Функция fputs( )
Функция fseek( )
Распределение памяти
Функция malloc( )
Функция calloc( )
Лекция 16. Функции в примерах
Функция получения случайных чисел
Поиск узлов из простых чисел
Матрица инцидентности
Структуры данных
Стеки
Очереди
Связанные списки
Все операции со стеком
Подведем итог
Дополнения
Литература