- •1.Базовые элементы языка с. Алфавит и словарь языка
- •2. Основные типы данных. Классификация их типов. Модификация базовых типов.
- •3. Константы.
- •4. Переменные.
- •5. Структура с - программы. Понятие локальных и глобальных переменных. Функция main().Директивы препроцессора (#include и #define). Комментарии.
- •6. Операции языка с. Арифметические, логические операции. Поразрядные операции.
- •7. Операции языка с. Операция присваивания и отношения. Операция определения размера. Оператор последовательного вычисления.
- •8. Операции языка с. Условная операция. Операция (), операция [].
- •9. Приоритет операций и порядок вычислений.
- •11. Ввод-вывод символов
- •12. Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода.
- •13. Операторы языка с. Условные операторы (if и switch).
- •16. Одномерные массивы.
- •17. Строковый литерал. Чтение и запись строк.
- •18. Двухмерные массивы. Массивы строк.
- •20.Способы доступа к элементам массива
- •21. Понятие указателя. Инициализация указателей.
- •22. Указательные переменные. Операции получения адреса (&) и раскрытия ссылки(*).
- •23. Указательные выражения. Адресная арифметика.
- •Динамическое выделение памяти для массивов.
- •Функции. Определения функций. Оператор return.
- •Тип_результата id_функции (список);
- •Функции. Прототипы функций.
- •Тип_результата id_функции (список);
- •Функции. Вызов функций: вызов по значению и по ссылке.
- •Тип_результата id_функции (список);
- •Передача массива в функцию.
- •Классы памяти. Область видимости.
- •Аргументы функции main(): argv и argc.
- •Вызов библиотечных функций.
- •Директива препроцессора #define: создание макрофункций с помощью директивы #define.
- •Директивы условной компиляции #if, #else, #elif, #endif, #ifdef, #ifndef.
- •Понятие структуры. Доступ к членам структуры.
- •Присваивание структур.
- •Id_структуры . Id_поля
- •Передача членов структур функциям. Передача целых структур функциям.
- •Указатели на структуры. Средство typedef.
- •Понятия объединения и перечисления. Битовые поля.
- •Основы файловой системы. Стандартные потоки. Указатель файла. Открытие файла. Закрытие файла.
11. Ввод-вывод символов
К наиболее простым и распространенным функциям ввода-вывода данных языка С относятся функции printf() и scanf().
Функцию printf() можно использовать для вывода любой комбинации символов целых и вещественных чисел, строк, беззнаковых целых, длинных целых и беззнаковых длинных целых. В общем случае параметры printf() имеют вид:
printf("управляющая строка", [список аргументов]);
Управляющая строка содержит символы, которые следует напечатать в спецификации преобразования, и управляющие символы, перед которыми стоит обратная косая черта.
Функция ввода данных scanf() является одной из многих функций форматированного ввода, имеющихся во внешних библиотеках. Функция scanf() в качестве фактических параметров использует адреса переменных, а не их значения. Для этого перед соответствующим параметром ставят символ взятия адреса &.
&а – означает "адрес переменной а, а не значение, которое переменная имеет в данный момент".
Перед именем строки & не указывается, поскольку имя строки совпадает с ее адресом. Строка формата функции scanf() указывает, какие данные ожидаются на входе. Если функция встречает в форматированной строке знак %, за которым следует знак преобразования, то она будет пропускать на входе символы до тех пор, пока не встретит какой-нибудь не пустой символ.
Пример:
#include <STDIO.H>
#include <CONIO.H>
main()
{
int weight, height;
printf("Введите ваш вес: ");
scanf("%d", &weight);
printf("Введите ваш рост: ");
scanf("%d", &height);
printf("\n\n Вес = %d, рост = %d \n", weight, height);
getch();
}
В общем случае, параметры функции scanf() имеют вид:
scanf("управляющая строка", [список аргументов]);
12. Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода.
Форматированный ввод-вывод
Формат преобразования определяется символом. Все возможные символы формата приведены в таблице 13.
Символ формата |
Тип выводимого объекта |
%c – char |
Символ |
%s – string |
Строка |
%d – int |
Целое число |
%u – unsigned int |
Целое беззнаковое значение |
%o – int |
Беззнаковое число в 8-ричном представлении |
%x – int |
Беззнаковое число в 16-ричном представлении |
%ld – long |
Длинное число в 10-чном представлении |
%lo – long |
Длинное число в 8-ричном представлении |
%lx – long |
Длинное число в 16-ричном представлении |
%lu – unsigned long |
Беззнаковое длинное число |
%f – float/double |
Число с фиксированной точкой |
%e – float/double |
Число в экспоненциальной форме |
%g – float/double |
В виде f или e в зависимости от значения |
%lf – long/float |
Длинное число с фиксированной точкой |
%le – long/float |
Длинное число в экспоненциальной форме |
%p – pointer |
Указатель (16-ричный адрес) |
Каждая спецификация преобразования соответствует одному из аргументов, которые следуют за форматной строкой. Управляющие символы имеют вид:
\b – возврат курсора на шаг назад
\f – новая страница
\n – новая строка
\r – возврат коретки
\t – табуляция или перевод курсора в табличную позицию
\v – вертивальная табуляция
\" – кавычка
\’ – апостроф
\\ – обратная наклонная черта
\ddd – восьмиричный код
\0*dd – 16-ричный код
Список аргументов функции printf() содержит имена переменных, констант или выражения, которые необходимо вывести на экран. Например, при следующей записи на С
printf("%c = %d \n",g, g);
Значение переменной g выводится как символ алфавита, а после знака равенства – как числовое значение, соответствующее машинному коду этого символа. Перед символом преобразования может стоять цифра, явно указывающая количество позиций в выводимой строке, отведенных для элементов вывода:
printf("%c = %5d \n",g, g);
Пример:
#include
#include
main()
{
int age;
float doxod;
age = 23;
doxod = 100;
printf("\n Возраст Андрея – %d. Его доход в $ составляет %.2f", age, doxod);
getch();
}
В данном примере последовательность "возраст Андрея – " будет выведена с новой строки. Символ %d – спецификация для целой переменной age. Вместо этой спецификации в выводимой строке будет подставляться целое число 23. Знак %.2f – спецификация (символ преобразования формата) для вещественного значения переменной доход, а также указание формата для вывода только двух цифр
после десятичной точки. Таким образом, после выполнения программы на экране будет отображено:
Возраст Андрея – 23. Его доход в $ составляет 100.00.
Спецификаторы преобразования
Вид спецификации следующий:
%[флаг][W][D]F
Флаг (–) указывает, что выводимое значение выравнивается в отдельном поле влево, по умолчанию – вправо.
W – число, задающее минимальный размер поля вывода. Если указанного поля для вывода недостаточно,
оно будет увеличено. В избыточных позициях поля печатаются пробелом.
D – указывает количество цифр после запятой для данных вещественных типов float или double. Для строк D задает число печатаемых символов строки поля шириной W.
F – определяет формат преобразования.
Подавление ввода
Спецификация преобразования записывается в виде:
%[флаг][W]F
Флаг (*) – дополнительный признак гашения присваивания, при котором значения пропускаются.