- •2.Этапы создания исполняемой проги
- •Целые, вещественные, символьные и строковые константы в языке с
- •Простые типы данных в языке с
- •Диапазоны изменения значений простых типов данных в языке с. Спецификаторы типа: short, long, signed, unsigned
- •Типы данных с плавающей точкой и тип void в языке с
- •Выражения в языке с
- •Переменные в языке с, их описание и инициализация
- •Именованные константы в языке с
- •11.Операции языка с, их классификация и приоритеты
- •14.Операции инкремента и декремента
- •15. Операции явного преобразования типа и определения размера в языке с
- •18.Логические операции не, и, или в языке с (!, &&, //)
- •19.Условная операция (? :) в языке с
- •20.Операция запятая на языке с.
- •21.Операция взятия адреса и разадресации
- •22.Операторы в языке с. Составные операторы
- •23.Структура программы в языке с
- •24.Базовые конструкции структурного программирования
- •26.Операторы ветвления. Оператор switch
- •27.Операторы цикла в языке с
- •28.Цикл с предусловием while
- •29.Цикл с постусловием do-while
- •30.Цикл с параметром for. Операторы break и continue
- •31. Приведение цикла for к эквивалентному ему циклу while.
- •32. Варианты оператора for, связанные с упрощением его заголовка или тела цикла
- •33.Массивы в языке с, их описание и инициализация
- •34.Многомерные массивы в языке с, их описание и инициализация
- •35.Указатели и массивы. Правила адресной арифметики над указателями
- •36. Строки символов в языке с, их описание и инициализация
- •Функции, используемые в операциях ввода и вывода строк символов
- •38.Функции в языке с и их описание
- •40. Параметры функции. Передача параметров по значению и по адресу.
- •41.Передача массивов в качестве параметров функции
- •43. Функции стандартной библиотеки с
- •44.Функции форматного вывода и ввода printf и scanf
- •45.Перечисления в языке с
- •46.Структуры в языке с, их описание и инициализация
- •47.Массивы структур, их описание и инициализация
- •48. Битовые поля
- •49. Объединения в языке с
- •50. Переименование типов в языке с
45.Перечисления в языке с
Перечисление – это список именованных целых констант. Для описания перечисления используется следующий формат:
enum [имяПеречисления] {списокИменованныхКонстант};
Имя перечисления задается в том случае, если в программе требуется определять переменные этого типа. Каждая из констант может быть инициализирована. Если инициализатор не указывается, он вычисляется прибавлением единицы к значению предыдущей константы. Первая константа при отсутствии инициализации получает значение ноль. При выполнении арифметических операций именованные константы заменяются соответствующими им целыми числами. Примеры:
enum boolean {NO, YES}; // NO = 0, YES = 1
boolean bool; //описали переменную bool типа boolean, которая
//может принимать только 2 значения: NO = 0 и YES = 1
enum months {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC};
// FEB=2, MAR=3, APR=4, . . . , DEC=12
enum controls {BELL=’\a’, BACKSPACE=’\b’, NEWLINE=’\n’, RETURN=’\r’, TAB=’\t’, VTAB=’\v’};
char ch;
while(1)
{
if ((ch = getchar()) == NEWLINE) break;
. . .
}
46.Структуры в языке с, их описание и инициализация
В отличии от массива все элементы однотипны, структура может содержать элементы разных типов. Элементы структуры наз. Полями структуры и могут иметь любой тип, кроме типа этой структуры , но могут быть указателями на него . сначала структуру нужно объявить. Объявление структуры начинается с ключевого слова struct и содержит список описаний заключ. В {}
Struct point
{
Int x,y;
Chur color [20;
}
Имена полей структур, а так же её имя могут совпадать с именами обычных переменных программ, т.к. они всегда различны по контексту, более того одни и те же имена полей могут встречаться в разных структурах.
Объявив структуру имя , создаем новый тип данных, кот. Даже можно использовать обычным образом. (напр. Struct point R S T, с точки зрения синтаксиса аналогична записи int a, b, c; и описывает 3 переменных структурного типа с кляксами R, S, T. Одновременно можно выполнить инициализацию полей структур struct point R={50,50, “red”} , S, T= {100,100, “Green” }
Объявление структуры можно совместить с описанием переменных струк. Типа.
Struct point
{
Int x,y;
Chur color [20;
}
R={50,50, “red”}, S, T;
Более того ели кроме r,s,t нам не нужны переменные этого типа, то имя point можно опустить .
Доступ к отдельному полю структуры осущ. По средствам конструкции вида : Имя структуры. Имя поля
47.Массивы структур, их описание и инициализация
В практике программирования большое распространение получили массивы структур, т.е.массивы элементами к-ых явл. Переменные структурного типа. Например оператор: stract point mas[3]; . описывается между прочим такой массив состоящий из 3 элементов типа stract point . описание можно дополнять инициализацией. Stract point mas[3]={{10,10,”Red”}, {20,20,”Green”}, {30,30,”Blue”}}; , когда инициализаторы простые константы или строки символов и все они имеются, в наличие во внутренних скобках нет необходимости. Ввод данных в массив структур выполняется с клавы можно выполнить следующим образом.
Int I;
For (i=0; i<3; i++)
Scanf (“%d%d%s”, & mas[ I ].x, & mas[ I ].y, & mas[ I ].color );
Поскольку элементами массива явл. структуры пишем имя конкретного поля. Тоже самое с использованием механизма указателя.
Stract point *p=nas;
For (i=0; i<3; i++)
Scanf (“%d%d%s”, &(p+i) x, &(p+i) y, &(p+i) color);
Вывод данных из массива структур на экран можно выполнить следующим образом:
For (i=0; i<3; i++)
prinf (“ (%d%d) %s \n”, mas[ I ].x, mas[ I ].y, mas[ I ].color );
или
For (i=0; i<3; i++)
printf (“ (%d%d) %s \n”, (p+i) x, (p+i) y, (p+i) color);
