Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Язык Си. Лабораторные работы / Справочник. Часть 2 (СПбГУТ).doc
Скачиваний:
47
Добавлен:
10.09.2019
Размер:
801.79 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное

образовательное бюджетное учреждение

высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ

ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ

им. проф. М. А. БОНЧ-БРУЕВИЧА»

С. В. Козин, Н. А. Матиясевич

ПРАКТИКУМ ПО

ПРОГРАММИРОВАНИЮ

НА ЯЗЫКЕ СИ

Часть 2

УЧЕБНОЕ ПОСОБИЕ

СПб ГУТ)))

САНКТ-ПЕТЕРБУРГ

2015

УДК 37.026(075.8)

ББК 71.0я73

Д 69

Рецензенты:

Утверждено редакционно-издательским советом СПбГУТ

в качестве учебного пособия

Козин, С. В., Матиясевич Н. А.

Д16

Практикум по программированию на языке Си ч.2: учебное пособие / С. В. Козин, Н. А. Матиясевич; СПбГУТ. – СПб., 2015. – 105с.

Приведённый материал соответствует государственным стандартам и изложен на основе программы дисциплины «Программирование».

Настоящее пособие является продолжением «Практикума по программированию на языке Си» ч.1. Здесь также сначала рассматриваются основы программирования, а во втором разделе приводятся примеры решенных задач, предназначенные для закрепления изученного материала. В пособии подробно обсуждаются указатели и их связь с массивами, организация функций, работа со строками, структурами, файлами и модулями. Рассматриваются типичные ошибки при программировании на языке СИ.

Предназначено для студентов специальностей 231000, 230100, 210700

УДК 37.026(075.8)

ББК 71.0я73

Ó Козин С. В., Матиясевич Н. А. 2015

Ó Федеральное государственное образовательное

бюджетное учреждение высшего профессионального

образования «Санкт-Петербургский

государственный университет телекоммуникаций

им. проф. М. А. Бонч-Бруевича», 2015

Содержание

Введение

1. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ ………….....6

1.30. Цикл, управляемый инструкцией while…………………………...6

1.31. Цикл, управляемый инструкцией do while………………………..6

1.32. Цикл с выходом……………………………………………………..7

1.33. Вложенные циклы…………………………………………………..8

1.34. Перечисление………………………………………………………..9

1.35. Функция……………………………………………………………...9

1.35.1. Назначение функции………………………………………10

1.35.2. Определение функции……………………………………..10

1.35.3. Вызов фунции………………………………………………12

1.35.4. Прототип функции………………………………………....12

1.35.5. Способы передача параметров……………………………13

1.35.6. Понятие о встраиваемых (inline) функциях……………...13

1.36. Организация модулей в языке Си………………………………..14

1.36.1. Пример организации модуля……………………………...14

1.36.2. Защита от повторного включения заголовочного файла16

1.37. Массивы и указатели…………………………………………...….17

1.37.1. Массивы. Общие сведения………………………………...17

1.37.1.1. Классификация массивов……………………...……..17

1.37.1.2. Определение и инициализация массива…………….18

1.37.1.3. Операции с массивами……………………………….19

1.37.2. Указатели. Общие сведения……………………...……….20

1.37.2.1. Области применения указателей………………….....20

1.37.2.2. Классификация указателей…………………………..20

1.37.2.3. Понятие о нулевом указателе………………………..21

1.37.2.4. Понятие о недействительном указателе…………….21

1.37.2.5. Определение переменной – указателя………………21

1.37.2.6. Операции с указателями……………………………..22

1.37.2.7. Указатели и динамическая память…………………..26

1.37.3. Указатели и квалификатор const………………………….27

1.37.4. Указатели и квалификатор restrict………………………...28

1.37.5. Связь между указателями и массивами…………………..28

1.37.6. Указатели – параметры функций……………………...….29

1.37.7. Массивы – параметры функций…………………………..30

1.37.8. Ошибки при работе с указателями ………………………31

1.37.8.1. Ошибки при объявлении указателей………………...31

1.37.8.2. Использование неинициализированного указателя..31

1.37.8.3. Присваивание несовместимых указателей…….........32

1.37.8.4. Разыменование нулевого указателя…………………32