Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по дисциплине АОП.docx
Скачиваний:
66
Добавлен:
24.04.2019
Размер:
2.91 Mб
Скачать

#Define имя текст_для_подстановки

Например: #define STEP 20

Вопрос №10. Понятие «тип данных». Базовые типы данных и модификаторы типов (на примере типа int).

Каждая переменная относится к определенному типу данных. Такая принадлежность устанавливается при объявлении переменной: int k;

Все переменные одного типа данных имеют одинаковый размер, одинаковое «внутреннее устройство» и одинаковый набор операций, которые можно к ним применить.

В языке С определены 4 базовых типа данных:

char - один байт, содержащий один символ,

int - целое число стандартной длины (для данной системы),

float - вещественное число одинарной точности с плавающей точкой,

double - вещественное число двойной точности с плавающей точкой.

Кроме того, имеется 4 модификатора:

short - «короткий»: short int,

long - «длинный»: long int, long double,

signed - «со знаком», т.е. величина имеет знаковый разряд,

unsigned - «без знака», т.е. величина не имеет знакового разряда.

32

Пусть для конкретной вычислительной платформы переменные типа int имеют длину 4 байта и текущее значение некоторой переменной таково:

или в формате шестнадцатеричной константы: 0xffffffff

Тогда, если считать эти байты значением переменной типа signed int, будем иметь значение -1 .

32

Если же в этой области памяти хранится переменная типа unsigned int, её значением будет 232-1 = 4 294 967 295.

Другой пример:

или в формате шестнадцатеричной константы: 0x80000000

Для переменной типа signed int имеем значение -2 147 483 648 .

А для переменной типа unsigned int: 231 = 2 147 483 648.

Вопрос №11. Определение понятия «константа». Числовые константы. Определение символических числовых констант в файле limits.h

Фундаментальные объекты данных, с которыми работает программа – это переменные и константы. Константы, в отличие от переменных, не имеют имён.

Запись константы в виде цепочки символов одновременно является и значением этой константы.

Для каждого типа данных существуют свои правила записи констант.

Целочисленные константы записывают, как правило, с помощью десятичных цифр, хотя возможна их запись в восьмеричной и шестнадцатеричной системах:

123, 67543, 037, 07777, 0Xabf7, 0xffff, …

Допускается использование суффиксов l или L (long), а также u или U (unsigned):

123456789L, 0xful (это просто число 15).

Вещественные константы содержат десятичную точку, а также степенную часть (экспоненту) или и то, и другое:

1234.5, 1e-2, 12.3E1, …

Такие константы имеют тип double, однако имеется возможность записи констант float и long double :

1.2f, 23.45F, 1e-1L, …

Определение символических констант в limits.H

#define CHAR_BIT 8

#define SCHAR_MIN (-128)

#define SCHAR_MAX 127

#define UCHAR_MAX 255

#define CHAR_MIN SCHAR_MIN

#define CHAR_MAX SCHAR_MAX

#define INT_MAX 2147483647

#define INT_MIN (-INT_MAX-1)

#define UINT_MAX 0xffffffff

#define SHRT_MAX 32767

#define SHRT_MIN (-SHRT_MAX-1)

#define USHRT_MAX 0xffff

#define LONG_MAX 2147483647L

#define LONG_MIN (-LONG_MAX-1)

#define ULONG_MAX 0xffffffffUL

Вопрос №12. Символьные константы. Управляющие последовательности.

Символьная константа – это целое число, записываемое в форме одиночного символа в одинарных кавычках: ‘x’, ‘0’ и т.п.

Значением символьной константы является числовое значение кода символа. Например, значением константы ‘0’ является число 48. Символьные константы могут участвовать в арифметических операциях.

Для записи «неграфических» символов используют управляющие последовательности:

\a – подача звукового сигнала, \b – возврат назад и затирание

\f – прогон страницы, \n – конец строки

\r – возврат каретки, \t – горизонтальная табуляция

\v – вертикальная табуляция, \\ - обратная косая черта

\? – вопросительный знак, \’ – одинарная кавычка

\” – двойная кавычка \000 – восьмеричное число

\xhh – шестнадцатеричное число \0 – нулевой байт

Лекция 3. Типы данных, операции и выражения.

Вопрос №13. Строковые константы. Длина строковой константы. Строковые константы и массивы символов.

Строковая константа – это последовательность из нескольких символов, заключенная в кавычки:

Это строка”, “” (а это – пустая строка)

Фактически строковая константа является массивом символов (массивом типа char), причем в конце массива автоматически добавляется нулевой байт (признак конца строки) и поэтому длина массива всегда на 1 больше размера строки.

Пустая строка имеет нулевую длину и занимает в памяти 1 байт!

Внимание! Нельзя путать символьные константы и строковые константы из одного символа: ‘x’ и “x” – это совершенно разные вещи!

Вопрос №14. Перечисления и константы перечислимого типа. Анонимные перечисления. Переменные перечислимого типа.

Средства языка С позволяют программисту создавать собственные типы данных с фиксированным множеством целочисленных значений, причем для каждого из значений должно быть задано некоторое имя, которое будет играть роль константы данного типа.

Такие типы называются перечислениями.

Например:

enum boolean {FALSE, TRUE};

enum months {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC};

enum escapes {BELL=‘\a’, BACKSPACE=‘\b’, TAB=‘\t’, NEWLINE=‘\n’, RETURN=‘\r’};

Числовые значения таким константам задаются либо явно путем их инициализации, либо автоматически – значение текущей константы на 1 больше значения предыдущей (первая константа в списке получает значение 0)

Перечислимая константа – это просто целая константа!

Допустимы анонимные перечисления: enum {FALSE, TRUE};

Можно описывать переменные перечислимого типа: enum months x;

Вопрос №15. Объявления переменных. Инициализация. Модификатор const.

Любая переменная в программе на языке С должна быть объявлена до первого обращения к ней. При объявлении переменной указывается её тип, имя и, возможно, начальное значение. Переменные одно типа можно объявлять списком: