Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2к3с Языки программирования / Экзамен / Программирование.docx
Скачиваний:
5
Добавлен:
27.11.2024
Размер:
699.67 Кб
Скачать

Вопрос № 6. Символьные типы данных в языке си

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

Под величину символьного типа отводится количество байт, достаточное для размещения десятичного кода любого символа из набора символов для данного компьютера, что и обусловило название типа. Как правило, это 1 байт. Тип char, как и другие целые типы, может быть со знаком или без знака. В величинах со знаком можно хранить значения в диапазоне от -128 до 127. При использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255. Этого достаточно для хранения любого символа из 256-символьного набора ASCII. Величины типа char применяются также для хранения целых чисел, не превышающих границы указанных диапазонов.

0 – nul

32 – пробел

33 - !

Вопрос №7. Модификаторы типов в языке си.

Четыре типа данных (char, int, float и double) являются основными и используются для представления данных в памяти компьютера. Однако, в отдельных ситуациях, эти типы данных можно изменить. Для этой цели используются модификаторы типов. Они применимы ко всем типам данных, за исключением void. В СИ существует 4 модификатора типов. Это signed, unsigned, long и short. Все эти модификаторы применимы к символьным и целочисленным переменным. Модификатор long также может быть применен к типу double. Типы данных и их размер приведены в таблице.

Тип данных

Размер памяти, бит (байт)

Диапазон значений

char (символьный)

8(1)

–128 до 127

signed char (знаковый символьный)

8(1)

–128 до 127

unsigned char (беззнаковый символьный)

8(1)

0 до 255

short int (короткое целое)

16(2)

–32768 до 32767

unsigned int (беззнаковое целое)

16(2)

0 до 65535 (16-битная платформа)

0 до 4 294 967 295 (32-битная платформа)

int (целое)

16 (2)

32 (4)

–32768 до 32767 (16-битная платформа)

–2 147 483 648 до 2 147 483 647 (32-битная)

long int (длинное целое)

32(4)

–2 147 483 647 до 2 147 483 647

unsigned long (длинное целое без знака)

32(4)

0 до 4 294 967 295

float (вещественное)

32(4)

3.4*10-38 до 3.4*1038

double (двойное вещественное)

64(8)

1.7*10-308 до 1.7*10308

long double (длинное вещественное)

80(10)

3.4*10-4932 до 3.4*104932

bool (C++)

8(1)

true(1), false(0)

Вопрос №8. Требования к идентификаторам на языке си

Идентификатор – это имя программного объекта (имя переменной, имя функции, метка). В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются, например, sysop, SySoP и SYSOP – три различных имени. Первым символом идентификатора может быть буква или знак подчеркивания, но не цифра. Пробелы внутри имен не допускаются. Для улучшения читаемости программы следует давать объектам осмысленные имена. Существует соглашение о правилах создания имен, называемое венгерской нотацией (поскольку предложил ее сотрудник компании Microsoft венгр по национальности), по которому каждое слово, составляющее идентификатор, начинается с прописной буквы, а вначале ставится префикс, соответствующий типу величины, например, iMaxLength, lpfnSetFirstDialog. Другая традиция – разделять слова, составляющие имя, знаками подчеркивания: max_length, number_of_galosh. Длина идентификатора по стандарту языка не ограничена, но компиляторы и компоновщики налагают на нее ограничения. При выборе идентификатора необходимо иметь в виду следующее: -    идентификатор не должен совпадать с ключевыми словами и именами используемых стандартных объектов языка; -    не рекомендуется начинать идентификаторы с символа подчеркивания, поскольку они могут совпасть с именами системных функций или переменных;

Вопрос №9. Запись выражений на языке СИ

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

Арифметические выражения.

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

Числа можно складывать, вычитать, умножать, делить. Из разных величин можно составлять выражения, результат вычисления которых – новая величина. Пример выражений:

X * 12 + Y // значение X умножить на 12 и к результату прибавить значение Y

val < 3 // сравнить значение val с 3

-9 // константное выражение -9

Выражение, после которого стоит точка с запятой – это оператор-выражение. Его смысл состоит в том, что компьютер должен выполнить все действия, записанные в данном выражении, иначе говоря, вычислитьвыражение.

x + y – 12; // сложить значения x и y и затем вычесть 12

a = b + 1; // прибавить единицу к значению b и запомнить результат в переменной a

Выражения – это переменные, функции и константы, называемые операндами, объединенные знаками операций. Операции могут быть унарными – с одним операндом, например, минус;

могут быть бинарные – с двумя операндами, например сложение или деление.

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

В типизированном языке, которым является Си++, у переменных и констант есть определенный тип. Есть он и у результата выражения. Например, операции сложения ( + ), умножения ( * ), вычитания ( - ) и деления ( / ), примененные к целым числам, выполняются по общепринятым математическим правилам и дают в результате целое значение. Те же операции можно применить к вещественным числам и получить вещественное значение.

Операции сравнения: больше ( > ), меньше ( < ), равно ( == ), не равно ( != ) сравнивают значения чисел и выдают логическое значение: истина ( true ) или ложь ( false ).

Вопрос №10. Типы и характеристики операторов на языке СИ

Оператор присваивания.

Оператор присваивания служит для помещения в переменную результата вычисления выражения. В общем виде оператор присваивания (=) записывается следующим образом:

имя_переменной = выражение;

Операторы сравнения.

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

Логические операторы.

Логические операторы – это операторы, позволяющие создавать сложные выражения из операторов сравнения. Результатом вычисления логического выражения является значение логического типа (0 или 1). В таблице 4 приведены логические операторы и их действие.

Логические операторы и операторы сравнения выполняются после арифметических операторов.

Вопрос №11. Арифметические операторы

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

Вопрос № 12. Бинарные операторы

Билет № 13. Битовые операторы.

Битовые операторы работают в двоичной системе счисления. В таблице 5 приведены битовые операторы и их действие.

Битовые операторы конвертируют операнды в двоичные числа длиной 32 бита, выполняют необходимые преобразования, а затем переводят обратно.

Билет № 14. Преобразование типов данных в СИ

Выражения, содержащее в себе переменные и значения различных типов, называют смешанными. Такие выражения приходится видоизменять, осуществляя преобразование типов. При преобразовании типы изменяются от меньшего к большему. Ниже приведен порядок следования типов по возрастанию их старшинства:

char < int < long < float < double

Автоматически выполняются следующие преобразования типов:

- char преобразуется в int, float – в double;

- если старшим типом является double, то все остальные типы преобразуются в double, таким же будет и тип результата;

- если старшим типом является long, то все остальные типы преобразуются в long, таким же будет и тип результата;

- если старшим типом является unsigned, то все остальные типы преобразуются в unsigned, таким же будет и тип результата.

Если не выполняется ни одно из предыдущих условий и выражение содержит значение типа int, то результат будет int.

Существует одно исключение из этих правил. Если выражение содержит типы long и unsigned, то unsigned не преобразуется в long. Типом результата будет unsigned long.

Билет № 15. Приоритет операторов в СИ

Приоритет определяет порядок выполнения операторов в выражении. Для арифметических операторов этот порядок приведен в таблице 6.

Приоритет операторов сравнения. Взаимный приоритет операторов сравнения представлен в таблице 7.

Приоритет логических операторов. В таблице 8 представлен приоритет логических операторов.

При наличии одинакового приоритета все логические операторы вычисляются справа налево.

Билет №16. Приоритет логических операторов.

Приоритет логических операторов. В таблице 8 представлен приоритет логических операторов.

При наличии одинакового приоритета все логические операторы вычисляются справа налево.

Билет № 17. Взаимный приоритет групп операторов.

Билет № 18. Операторы инкремента и декремента в языке СИ

Инкремент ++ – это увеличение на единицу. Декремент -- – это уменьшение на единицу.

Билет № 19. Синтаксис оператора ввода на языке СИ

Функция scanf() используется для ввода данных. Она имеет следующий формат:

scanf(“control_string”, argument_list);

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

1. Различия в списке аргументов. scanf() использует адреса переменных. Адрес позволяет узнать местоположение переменной в памяти компьютера. Элементы списка аргументов функции scanf() должны подчиняться следующим правилам:

- если происходит чтение с клавиатуры значения одного из базовых типов данных языка СИ, то перед именем переменной необходимо поставить знак амперсанд (&);

- если происходит чтение с клавиатуры значения в переменную строкового типа, то знак & не ставится.

2. Различия в форматных командах:

- не используется спецификатор %g;

- спецификаторы %f и %e работают абсолютно одинаково.

Соседние файлы в папке Экзамен