- •Предисловие.
- •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).
- •Литература.
- •Оглавление.
3. Определение размеров типов данных и объектов.
/* ПРОГРАММА:
dim_data.c – определение размеров типов данных.
*/
/*#############################################*/
/*============================= include */
#include<stdio.h>
/*============================= main() */
main()
{/*.---------------------------.begin main() */
printf(“Данные типа char занимают %d байт.\n”,sizeof(char));
printf(“Данные типа int занимают %d байт.\n”,sizeof(int));
printf(“Данные типа long занимают %d байт.\n”,sizeof(long));
printf(“Данные типа float занимают %d байт.\n”,sizeof(float));
printf(“Данные типа double занимают %d байт.\n”,sizeof(double));
return 0;
}/*.---------------------------.end main() */
/*#############################################*/
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.
Данные типа char занимают 1 байт.
Данные типа int занимают 2 байт.
Данные типа long занимают 4 байт.
Данные типа float занимают 4 байт.
Данные типа double занимают 8 байт.
ПОЯСНЕНИЯ К ПРОГРАММЕ.
Для определения размеров типов данных в байтах используется операция sizeof(тип данных). В скобках указывается тип данных.
***************************************************************
/* ПРОГРАММА:
talk.c – разговор (определение размеров объектов и длины строк).
*/
/*#############################################*/
/*============================= include */
#include<stdio.h>
/*============================= define */
# define DENSITY 62.4
/* плотность тела человека в фунтах на кубический фут */
/* строка обрабатывается препроцессором */
/*============================= main() */
main()
{/*.---------------------------.begin main() */
/*------------- переменные */
char name [40]; /* буфер для ввода имени, состоящий из 40 байт */
/* 1 символ хранится в 1 байте */
float weight; /* вес в фунтах, 1 фунт = 453.59 г.*/
float volume; /* объем в кубических футах 1 куб. фут = 3.04 куб. м */
int size; /* размер буфера в байтах */
int letters; /* размер строки символов в байтах */
/*------------- */
printf(" Привет! Как Вас зовут?\n" );
scanf(" %s" , name); /* ввод имени, например, Анжелика */
/* при вводе в массив обозначение указателя & не используется */
printf("%s, каков Ваш вес в фунтах?\n",name);
scanf("%f", &weight); /* ввод веса, например, 102.5 */
size = sizeof name; /* определение размера объекта (буфера name) */
letters = strlen (name); /* определение размера строки в буфере name) */
volume = weight/DENSITY;
printf
(" Прекрасно, %s, Ваш объем %3.2f кубических фута.\n", name, volume);
printf(" Ваше имя состоит из %d букв,\n", letters);
printf(" Для его размещения в памяти имеется %d байт.\n", size);
return 0;
}/*.---------------------------.end main() */
/*#############################################*/
РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ.
Привет! Как Вас зовут?
Анжелика
Анжелика, каков Ваш вес в фунтах?
102,5
Прекрасно, Aнжелика, ваш объем 1,64 кубических фута.
Ваше имя состоит из 8 букв
Для его размещения в памяти имеется 40 байт.
ПОЯСНЕНИЯ К ПРОГРАММЕ.
-
Для хранения символьной строки - в данном случае некоторого имени - используется буфер – массив, описанный оператором char name [40]. Квадратные скобки указывают, что переменная name - массив, 40 - число его элементов, a char задает тип каждого элемента. Массив можно представить себе как совокупность нескольких ячеек памяти, объединенных в одну строку. Массив - это упорядоченная последовательность элементов данных одного типа. В данном примере имеется массив из 40 ячеек памяти, в каждую из которых можно поместить один элемент типа char. Последним элементом строки символов, записанных в массив, является "нуль-символ" \0. Нуль-символ - не цифра 0; он не выводится на печать и в таблице кода ASCII имеет номер 0. Наличие нуль - символа означает, что количество ячеек массива должно быть, по крайней мере, на одну больше, чем число символов, которые необходимо размещать в памяти.
-
При вводе и выводе строки используется преобразование %s.
-
Для определения константы DENSITY используется препроцессор.
-
Для определения размеров объекта (переменной, константы, в данном случае массива) в байтах используется операция sizeof без скобок. Например: sizeof name; sizeof 6.28.
-
Для определения длины строки используется функция strlen().
***************************************************************