Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_praktikum.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
611 Кб
Скачать
☆
  1. Унарные операции:

  • ++ увеличение на 1 (инкремент)

  •  уменьшение на 1 (декремент)

  • ! логическое отрицание

  • - арифметическое отрицание (унарный минус)

  • + унарный плюс

  • & получение адреса операнда

  • * получение значения операнда по его адресу

  • sizeof() размер операнда в байтах

  1. Бинарные операции:

a) аддитивные операции

  • + сложение;

  • – вычитание;

b) мультипликативные операции

  • * умножение;

  • / деление;

  • % остаток от деления целых чисел;

с) операции отношений

  •  равно;

  • ! неравно;

  • > больше;

  •  больше или равно;

  • < меньше;

  •  меньше или равно.

d) логические операции

  • &&  и;

  • ||  или;

e) операции присваивания

  • = простое присваивание

  • *= умножение с присваиванием

  • /= деление с присваиванием

  • += сложение с присваиванием

  • -= вычитание с присваиванием

  • %= остаток от деления с присваиванием

Операции отношения возвращают результат целого типа. Если отношение истинно, то это целое есть 1 и 0, если отношение ложно.

Логические операции возвращают значения целого типа 1 или 0, соответствующие истине или лжи соответственно. Например,

if (y != 0 && x  1000) z = x / y;

здесь переменной z будет присвоено значение выражения x / y, когда одновременно y не равен нулю, а x больше чем 1000.

Кроме того, имеются еще такие операции:

  • Скобки (круглые и квадратные, играют роль бинарных операций)

  • Запятая (например, выражение (х=3, 3*х) равно 9)

  • Условная трехместная операция (например, (x<0? –x : x) – абсолютная величина x)

  • Операции сдвига и поразрядные операции (определены только для битового представления целочисленных операндов)

Приоритет операций:

  1. Операция скобки

  2. Унарные операции

  3. Мультипликативные операции

  4. Аддитивные операции

  5. Операции отношения ( <, <=, >, >= )

  6. Операции отношения ( = =, != )

  7. Логическая операция ( && и )

  8. Логическая операция ( || или )

  9. Условная операция

  10. Операции присваивания.

Примеры выражений:

      1. x=2; b=2; a=x+++b; результат: a=4, x=3 (постфиксная форма)

      2. x=2; b=2; a=++x+b; результат: a=5, x=3 (префиксная форма)

      3. 6>=44 результат: 0

      4. 7/2 результат: 3

      5. 7%2 результат: 1

      6. 5>2 || 4>7 результат: 1

      7. a=1; b=1; c=a || !b && a; результат: 1

Типы данных.

В языке Си все переменные и функции перед их первым использованием типизируются посредством описаний, например, int x, y = 0;

Здесь описаны две переменные x и y целого типа, причем переменной y присваивается начальное значение 0.

В Си используются следующие основные типы данных:

  1. целый тип;

  • int – целый

  • short int – короткий целый

  • long int – длинный целый

  • unsigned int – беззнаковый целый

  1. вещественный тип;

  • float – вещественный одинарной точности

  • double – вещественный удвоенной точности

  • long double - вещественный максимальной точности

  1. символьный тип;

  • char – символы с кодом от -127 до 128

  • unsigned char –символы с кодом от 0 до 255

4) тип void - неопределенный тип, используется при определении функций, не возвращающих значения.

Значениями символьных переменных являются символьные константы, они эквивалентны целым числам, совпадающими с кодами этих символов.

Например, записи: x=’A’ и x=65 для переменной x типа char эквивалентны, так как код символа ‘A’ по таблице ASCII равен 65.

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

Функции ввода-вывода.

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

В частности, функции printf() и scanf() осуществляют форматированный вывод на стандартное устройство вывода (монитор) и ввод со стандартного устройства ввода (клавиатура). Обращение к функции printf() выглядит следующим образом:

printf(format, list);

где строка format выводится без изменений посимвольно, за исключением управляющих символов ввода-вывода и спецификаций формата, начинающихся с символа «%». Последние задают тип и способ преобразования выводимых данных из списка list. Для задания типа могут использоваться следующие символы:

  • d, i - для целых десятичных чисел со знаком;

  • u - для целых десятичных чисел без знака;

  • o - для восьмеричных чисел без знака;

  • x - для шестнадцатеричных чисел без знака;

  • f - для вещественных чисел со знаком с фиксированной точкой;

  • e - для вещественных чисел со знаком в экспоненциальной форме;

  • g - для вещественных чисел двойной точности со знаком;

  • c - одиночные символы;

  • s - строки символов.

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

Так например, если i = 10, x = 1,45 и y = 123,47, то результатом работы следующей конструкции

printf(i = %d, x = %f, y = %f, i, x, y);

будет вывод

i = 10, x = 1.45, y = 123.47

Спецификации формата функции scanf() те же самые, что и для функции printf(), однако список list содержит уже не имена переменных, а их адреса. Например, функция

scanf (%d %f, &i, &x);

осуществляет ввод с клавиатуры значений переменных i и x целого и вещественного типов соответственно.

Если же вводится строка символов, то необходимо использовать спецификацию формата «%s», но применять операцию & (адрес) уже не надо.

Блоки.

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

Блок может использоваться везде, где используется обычный оператор языка. Как правило, блок – это тела функций и операторов if, switch, while, do и for.

Внутри блока могут содержаться описания переменных, которые будут локальными по отношению к этому блоку.

Например,

{ int n; n++; s + = float(n); }

Условные операторы.

Синтаксис условного оператора if имеет вид: