
- •Московский государственный социальный университет академия информатики и информационных технологий
- •Введение
- •Часть. Основы программирования на Си
- •1.1. Структура простейшей Си-программы
- •1.2. Данные в Си и операции над ними
- •1.2.1. Свойства ячейки памяти. Переменные и константы
- •1.2.2. Типы данных в Си
- •1.2.3. Правила записи констант в Си
- •1.2.4. Описание переменных и именованных констант в Си.
- •1.2.5. Выражения в Си
- •1.3. Операторы преобразования данных
- •1.3.1. Общие положения
- •1.3.2. Функция форматного выводаprintf()
- •1.3.3. Функция форматного вводаscanf()
- •1.4. Разработка программ на Си
- •1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
- •1.4.2. Алгоритм и способы его записи.
- •1.4.3. Изображение алгоритмов в виде блок-схем
- •1.4.4. Базовые структуры алгоритмов и их кодирование на Си.
- •1. Следование
- •2. Разветвление (развилка)
- •If (условие)
- •If (условие)
- •3. Цикл
- •1.4.4. Примеры разработки программ
- •1.5. Массивы и указатели
- •1.5.1. Понятие массива. Основные правила работы с массивами в Си
- •1.5.2. Примеры программ с массивами.
- •1.5.3. Инициализация массивов
- •1.5.4. Указатели в Си10
- •1.5.5. Связь массивов с указателями в Си
- •Часть. Функции и многофайловые программы в Си
- •2.1. Общие сведения о подпрограммах и функциях
- •2.2. Функции си
- •2.2.1. Описание функции
- •2.2.2. Обращение к функции
- •2.2.3. Место описания функции в программе
- •2.2.4. Примеры программ, использующих функции
- •2.3. Краткие сведения о препроцессоре Си
- •2.3.2.Директива макроопределения #define
- •2.3.3. Директива #include включения файлов
- •2.3.4. Директивы условной компиляции
- •2.415. Многофайловые си-программы
- •2.4.1. Структура программы на Си. Область действия переменных
- •2.4.2. Время жизни и класс памяти переменных
- •Описатели класса памяти
- •2.4.3 Понятие о файле проекта
- •Часть. Обработка символьной информации и документов сложной структуры
- •3.1. Обработка символьной информации на Си
- •3.1.1. Символьный тип
- •3.1.2. Работа со строками символов в Си. Строковые литералы. .
- •3.1.3. Функции и макросы для работы с символьной информацией
- •3.1.4. Примеры программ
- •3.2. Тип "структура" в Си
- •Структура
- •3.3. Файлы в Си
- •3.3.1. Общие понятия.
- •3.2.Функции Си для работы с файлами
- •3.3.3. Примеры программ, использующих файлы
- •Литература
- •Содержание
1.3.2. Функция форматного выводаprintf()
Оператор вызова этой функции имеет вид:
printf(форматная_строка,список_вывода)
Список вывода содержит перечисленные через запятую имена выводимых переменных, т. е. показывает, чтовыводить. В список вывода можно включать не только переменные, но и произвольные выражения (в частном случае константы).
Форматная строка показывает, в каком виде значения переменных будут выведены на экран. В простейшем случае форматная строка - это строковая константа, т. е. она ограничена двойными кавычками (см. п.1.2.3). Форматная строка может содержать:
произвольный текст (обычно он поясняет значения выводимых переменных); среди символов этого текста могут быть и управляющие; в несложных программах этого пособия часто будет использоваться управляющий символ '\n'(перевод строки - п.1.2.3);
спецификации форматов, показывающие, в каком виде должны выводиться значения переменных; каждая спецификация соответствует одной переменной; спецификации встречаются в форматной строке в том порядке, в каком перечисляются выводимые переменные в списке вывода; каждая спецификация начинается с символа %; спецификация стоит в том месте текста, где должно выводиться значение соответствующей переменной.
В простейшем виде спецификация формата имеет вид:
%ширина_поля.точность спецификатор
Ширина поля- положительное целое число, задающее минимальное количество позиций, занимаемых выводимым значением; если число символов в выводимом значении меньше, чем ширина поля, то выводимое значение дополняется пробелами до минимальной длины; если число символов в выводимом значении больше ширины поля или ширина поля не задана, то печатаются все символы значения (ширина поля игнорируется).
Точность - положительное целое число, указывается в основном для вещественных чисел, означая в этом случае количество выводимых после десятичной точки цифр.
На первых этапах обучения программированию достаточно следующих спецификаторов:
d - для целых значений (типовint, char, unsigned);
f- для вещественных значений (типовfloat, double);
e - для вещественных значений (типовfloat, double)с указанием порядка, т. е. в виде:
знак_числаm.ddddeзнак_порядкаxxx,
где m.dddd - изображение мантиссы числа;m- одна десятичная цифра;dddd- последовательность десятичных цифр;е- признак порядка (десятичного);xxx - десятичные цифры для представления порядка числа.
c- для одиночного символа (типовint, char, unsigned);
s- для строк.
Cполным набором спецификаторов языка Си можно ознакомиться, например, в[2].
Пример.
float s; int a,b;...
printf("a=%2d b=%4d\n s=%4.1\n", a,b,s);
На экран будет выведена информация в виде:
a=<a> b=<b>
s=<s>
Здесь конструкция <имя переменной>означает значение этой переменной. Заметим, что следующие значения будут выводиться с новой строки, так как форматная строка заканчивается символом'\n'. Такое схематичное изображение выводимой (или вводимой) информации называетсяформой вывода (ввода).
Если a=-2, b=93, s=3.22, то на экране получим:
a=-2 b= 93
s= 3.2
Другие примеры оператора printf() представлены на рис.1.