Книга Стивена Праты "Язык программирования C. Лекции и упражнения. Учебник" - подробный учебник по языку C, построенный на основе принципа "от простого к сложному". В начальных главах описываются элементарные конструкции языка (операторы, выражения и т.д.), в последних главах рассматриваются сложные структуры данных. Здесь вы найдете полное описание синтаксиса языка, основных приемов и методов программирования, а также примеры реальных коммерческих программ. Все примеры протестированы, а исходные коды программ можно найти на web-сайте www.diasoft.kiev.ua . Рассмотрены все нововведения, привнесенные в язык C новейшим стандартом C99. Причем теоретические положения иллюстрируются конкретными практическими примерами. Книга будет полезна начинающим и опытным программистам, использующим язык программирования C в своей повседневной деятельности.
Предисловие
Глава 1. Готовимся изучать язык С
Как возник язык С?
Почему был выбран язык С?
Эволюция языка программирования С
Использование языка С: семь этапов по созданию программы
Технология программирования
Стандарты языка С
Некоторые соглашения
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 2. Введение в язык С
Простая программа на языке С
Объяснение
Структура простой программы
Советы по упрощению восприятия программ пользователями
Следующий шаг
Программа, включающая несколько функций
Отладка
Ключевые слова и зарезервированные идентификаторы
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 3. Представление данных в языке С
Учебная программа
Переменные и константы
Ключевые слова, обозначающие типы данных
Типы данных языка С
Использование типов данных
Опасности, связанные с использованием аргументов
Еще один пример программы
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 4. Строки символов и форматированный ввод/вывод
Вводная программа
Строки символов: введение
Константы и препроцессор С
Исследование и использование функций printf() и scanf()
Советы по применению методов форматирования
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 5. Операции, выражения и операторы
Начальные сведения о циклах
Фундаментальные операции
Некоторые дополнительные операции
Выражения и операторы
Преобразования типов
Функции и аргументы
Пример программы
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 6. Управляющие операторы языка С: циклы
Начальный пример Оператор while
Использование условных операций и выражений
Новый тип данных_Bool
Неопределенные циклы и циклы со счетчиком
Цикл for
Дополнительные операции присваивания: +=,- =,*=,/=,%
Операция "запятая"
Цикл с постусловием: do while
Проблема с выбором цикла
Вложенные циклы
Массивы
Пример цикла, использующего возвращаемые значения функции
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 7. Управляющие операторы языка С: ветвление и безусловные переходы
Оператор if
Добавление else в оператор if
Давайте будем логичными
Программа подсчета количества слов
Условная операция: ?
Дополнительные средства организации циклов: операторы continue и break
Множественный выбор: операторы switch и break
Оператор goto
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 8. Символьный ввод/вывод и перенаправление
Односимвольные функции ввода/вывода: getchar() и putchar()
Буферы
Прерывание ввода с клавиатуры
Перенаправление и файлы
Создание дружественного интерфейса пользователя
Организация меню
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 9. Функции
Введение
Прототипирование функций ANSI С
Рекурсия
Все функции языка С равноправны
Компиляция программ, содержащих две и более функции
Определение адресов: операция &
Изменение переменных в вызывающей функции
Указатели: первое знакомство
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 10. Массивы и указатели
Массивы
Указатели и массивы
Операции с указателями
Защита содержимого массивов
Указатели и многомерные массивы
Указатели на многомерные массивы
Совместимость указателей
Массивы переменной длины (VLA)
Составные литералы
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 11. Символьные строки и строковые функции
Определение строк внутри программы
Массивы символьных строк и инициализация
Массивы и указатели
Ввод строк
Вывод строк
Создание собственных функций
Строковые функции
Пример обработки строк: сортировка строк
Символьные функции и строки из семейства ctype.h
Аргументы командной строки
Преобразования строк в цифры
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 12. Классы хранения, связывание и управление памятью
Классы хранения
Область видимости
Функции генерирования случайных чисел и статические переменные
Игра в кости
Распределенная память: функции malloc() и free()
Спецификаторы типов ANSI С
Новая роль хорошо известных ключевых слов
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 13. Файловый ввод/вывод
Взаимодействие с файлами
Стандартный ввод/вывод
Простая программа сжатия файлов
Ввод/вывод файлов: функции fprintf(), fscanf(), fgets() и fputsQ
Произвольный доступ к файлам: функции fseek() и itell()
Дополнительные сведения о стандартном вводе/выводе
Другие функции стандартного ввода/вывода
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 14. Структуры и другие формы данных
Практический пример: инвентарный перечень книг
Объявление структуры
Описание переменных-структур
Доступ к элементам структуры
Массивы структур
Вложенные структуры
Указатели на структуры
Передача функциям информации о структурах
Сохранение содержимого структуры в файле
Структуры: заключительные замечания
Краткий обзор объединений
Краткий обзор свойства typedef
Эффектные объявления
Функции и указатели
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 15. Дополнительные сведения о битах
Двоичные числа, биты и байты
Системы счисления с другими основаниями
Поразрядные операции языка С
Битовые поля
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 16. Препроцессор и библиотека языка С
Первые таги
Именованные константы: #define
Использование аргументов для #define
Макрос или функция?
Включаемый файл: #include
Другие директивы
Встроенные функции
Библиотека языка С
Библиотека математических функций
Библиотека утилит общего назначения
Библиотека утверждений
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Глава 17. Расширенное представление данных
Исследование представления данных
От массива к связанному списку
Абстрактные типы данных (АТД)
Реализация очереди с помощью АТД
Имитация реальных ситуаций с помощью очереди
Деревья двоичного поиска
Другие направ.чения
Ключевые понятия
Резюме
Контрольные вопросы
Упражнения по программированию
Приложение А. Ответы на контрольные вопросы
Приложение В. Справочник по языку С
Раздел 1
Дополнительная литература
Раздел II
Операции языка С
Раздел III
Основные типы данных и классы хранения
Раздел IV
Выражения, операторы и контроль выполнения программы
Раздел V
Библиотеки языка С стандарта ANSI и дополнения С99
Раздел VI
Расширенные целочисленные типы данных
Раздел VII
Поддержка дополнительных символов
Раздел VIII
Усовершенствованные вычислительные возможности, определяемые стандартом С99
Раздел IX
Различия между С и C++
Прототипы функций
Глоссарий. Словарь терминов по языку С
Предметный указатель