- •Предисловие.
- •1. Введение.
- •1.1. История создания языка си.
- •1.2. Стандарты языка си.
- •2. Основные сведения, необходимые для создания программ на языке си.
- •2.1 Процесс создания исполняемого файла.
- •2.2 Распределение памяти программы.
- •2.3 Некоторые основные понятия.
- •2.4 Данные.
- •2.5 Структура простой программы.
- •3. Определение размеров типов данных и объектов.
- •4. Строки и строковые константы.
- •5. Директива препроцессора # define.
- •6. Функции форматированного ввода – вывода.
- •6.1 Функция форматированного вывода printf().
- •6.2 Функция форматированного ввода scanf().
- •7. Операции и операторы.
- •7.1 Арифметические операции
- •7.4 Порядок выполнения операций.
- •8. Выражения и операторы
- •8.1 Выражения.
- •8.2 Операторы.
- •8.3 Составные операторы.
- •8.4 Преобразование типов.
- •8.5 Операция приведения типов.
- •9. Функции ввода и вывода символов.
- •9.1 Функции getchar() и putchar().
- •9.2 Функции getch() и getche().
- •9.3 Ввод и вывод последовательности символов.
- •9.4 Подсчет символов, вводимых с клавиатуры.
- •9.5 Вывод символов из вводимого с клавиатуры файла.
- •9.6 Переключение ввода-вывода данных.
- •10. Принятие решений.
- •10.1 Оператор если (if).
- •10.2 Оператор если - иначе (if else).
- •10.3 Множественный выбор на основе операторов if, else.
- •10.5 Приоритеты операций отношения.
- •10.6 Логические операции (and, or, not).
- •10.7 Операция условия ?:.
- •10.8 Множественный выбор на основе операторов switch, break, default.
- •11. Циклы.
- •11.1 Цикл пока (while).
- •11.2 Цикл для (for).
- •11.4 Операция запятая ,.
- •11.5 Цикл делай пока (do while).
- •11.6 Вложенные циклы.
- •11.7 Операторы выход из структуры (break), продолжение (continue), безусловный переход (to go).
- •Литература.
- •Оглавление.
6.2 Функция форматированного ввода scanf().
Так же как для функции printf(), для функции scanf() указываются управляющая строка и следующий за ней список аргументов. Основное различие двух этих функций заключается в особенности данного списка. Функция printf() использует имена переменных, константы и выражения, в то время функция scanf() – использует только указатели на переменные.
Необходимо помнить два правила:
-
Если нужно ввести некоторое значение и присвоить его переменной одного из основных типов, то перед именем nepеменной требуется писать символ &.
-
Если нужно ввести значение строковой переменной, использовать символ & не нужно.
Функция scanf() использует практически тот же набор символов спецификации преобразования, что и функция printf(). Имеются некоторые небольшие отличия и особенности, например:
-
Отсутствует спецификация %g.
-
Для чтения целых чисел типа short применяется спецификация %h.
/* ПРОГРАММА:
regulator_scanf.c – функция scanf() – регулятор входного потока данных.
*/
/*#############################################*/
/*============================= include */
#include<stdio.h>
/*============================= main() */
main()
{/*.---------------------------.begin main() */
int age; /* возраст */
float assets; /* состояние */
char pet[30]; /* название животного */
printf(" Укажите Ваш возраст, состояние и любимое животное.\n" );
scanf(" %d %f" , &age, &assets);
/* ввод возраста и состояния через пробел или знак табуляции */
scanf(" %s", pet); /* ввод названия животного */
/* & отсутствует при указании массива символов */
printf("%d $%.0f %s\n", age, assets, pet);
return 0;
}/*.---------------------------.end main() */
/*#############################################*/
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.
Укажите Ваш возраст, состояние и любимое животное.
82 8345245.19
носорог
82 $8345245 носорог
ПОЯСНЕНИЯ К ПРОГРАММЕ.
-
Функция scanf() использует некоторые специальные знаки (пробелы, символы табуляции и символ "новая строка") для разбиения входного потока символов на отдельные поля. Она согласует последовательность спецификаций преобразования с последовательностью полей, опуская упомянутые специальные знаки между ними.
-
Спецификация %с, обеспечивает чтение каждого следующего символа даже тогда, когда это "пустой символ".
***************************************************************
7. Операции и операторы.
ОСНОВНЫЕ ОПЕРАЦИИ ЯЗЫКА СИ.
= |
Присваивает величину справа от знака переменной слева от него |
+ |
Прибавляет величину справа от знака к величине слева от него |
- |
Вычитает величину справа от знака из величины слева от него |
- |
Унарная операция, изменяет знак величины справа от знака |
* |
Умножает величину справа от знака на величину слева от него |
/ |
Делит величину слева от знака на величину справа от него. Результат усекается, если оба операнда целые числа |
% |
Дает остаток при делении величины слева от знака на величину справа от него (только для целых чисел) |
++ |
Прибавляет 1 к значению переменной. Слева от знака – префиксная форма. Справа от знака - постфиксная форма |
-- |
Вычитает 1 от значения переменной. Слева от знака - префиксная форма. Справа от знака - постфиксная форма |
sizeof |
Дает размер операнда, стоящего справа, в байтах. Операнд может быть спецификацией типа, заключенного в круглые скобки, как, например, sizeof (float), или именем конкретной переменной, массива и т. п., например sizeof name. |
(тип) |
Операция приведения: приводит величину, стоящую справа, к типу, определяемому ключевым словом (или словами) в скобках. Например, (float)9 преобразует целое число 9 в число с плавающей точкой 9.0. |