Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Базовые типы данных языка Си
В языке Си определены следующие простейшие, или базовые, типы данных: char - символьный тип; int - целочисленный тип; float - тип данных с плавающей точкой; double - тип данных с плавающей точкой и повышенной точностью. Кроме того, при описании переменных могут использоваться специальные ключевые слова (модификаторы), изменяющие некоторые свойства базовых типов. Можно выделить две группы модификаторов: модификаторы знака signed (знаковое) и unsigned (беззнаковое); модификаторы длины short (короткое) и long (длинное). Любой из этих модификаторов может быть применен с базовым типом int. Модификаторы знака signed и unsigned могут быть также применены с базовым типом char. Модификатор long может применяться с базовым типом double. Функции printf и scanf Функции printf и scanf обеспечивают соответственно форматированный вывод и ввод информации. Рассмотрим функцию printf более подробно. Общее описание функции printf выглядит следующим образом: printf (Управляющаястрока, аргумент1, аргумент2,..., ); Аргумент1, аргумент2 и т.д. - это параметры, которые могут быть переменными, константами, выражениями, вычисляемыми перед выводом информации. Управляющая_строка - это строка символов, заключенных между кавычками. В состав этой строки могут входить спецификаторы форматов, поэтому строка называется форматной строкой. Спецификатор формата - это шаблон, на место которого при выводе строки на экран будет подставлено конкретное значение, принадлежащее тому или иному типу данных. Спецификатор формата определяет, как будет отображено это значение. При выводе на экран параметра аргумент1 функция printf применяет первый спецификатор формата из управляющей строки, при выводе параметра аргумент2 -второй спецификатор формата, и т. д. Таким образом, во избежание непредсказуемого результата необходимо обеспечить точное соответствие количества спецификаторов форматов и параметров, подставляемых на их место. Формат представляет собой последовательность символов, следующих за знаком %. Наиболее существенную роль при описании формата играют символы типа, обозначаемые латинскими буквами. Приведем перечень основных символов типов: - для целочисленных значений: d, i (целое десятичное знаковое), o (целое восьмеричное беззнаковое), u (целое десятичное беззнаковое), x, X, (целое шестнадцатеричное беззнаковое); - для чисел с плавающей точкой: f (число с плавающей точкой в десятичной записи) ^^ (число с плавающей точкой в экспоненциальной записи), g, G (более компактный вариант форматов %f или %e); - для символов и строк: c (одиночный символ), s (строка символов), % (используется для вывода знака %). Спецификаторы форматов в последнем вызове функции printf из программы-примера содержат не только символы типа, но также числа и знак минус. Знак минус означает выравнивание по левому краю. Числа задают минимальную ширину поля вывода. Для значений с плавающей точкой может быть также указано количество знаков после запятой (указывается после ширины поля вывода через точку). Форматная строка может также содержать обозначения неграфических символов, начинающиеся с '\': '\n' - переход на новую строку; '\r' - возврат каретки; '\t' - табуляция; '\\' - символ '\'; 'V" - символ ". Обращение к функции scanf во многом сходно с обращением к printf. Для scanf также необходимо указывать форматную строку и следующий за ней список аргументов. Однако для scanf список аргументов должен содержать указатели на переменные. Для получения указателя на любую переменную базового типа необходимо перед именем переменной записать символ &. Для получения указателя на строку достаточно указать имя строки, символ & не нужен.
Порядок выполнения работы 1. Набрать текст программы, приведенной в теоретической части лабораторной работы. 2. Осуществить компиляцию программы и ее выполнение. 3. В последнем обращении к функции printf, для всех выводимых значений изменить способы выравнивания на противоположные, затем откомпилировать и выполнить программу. 4. По указанию преподавателя, в последнем обращении к функции printf изменить символы типов и ширину полей, отводимых для вывода значений. Откомпилировать и выполнить полученную программу. 5. Разработать программу, содержащую описания переменных типов int, float, char, long int, short int, unsigned long int, unsigned short int, unsigned char. Программа должна вводить значения всех описанных переменных с клавиатуры, а затем выводить их на экран, при этом для каждой переменной использовать все спецификации форматов, соответствующие ее типу (например, при выводе переменной float необходимо использовать спецификации f, e, E, g, G). 6. Проанализировать полученные результаты. Задания
Контрольные вопросы 1. Охарактеризуйте назначение и особенности языка Си. 2. Какие символы образуют алфавит языка Си? 3. Что называется лексемами, идентификаторами, литералами? Приведите примеры. 4. Какие типы данных используются в Си? Приведите примеры описания переменных. 5. Охарактеризуйте арифметические, логические и битовые операции Си. 6. Какие разновидности оператора присваивания имеются в Си? 7. Какие операторы управления имеются в Си? 8. Какова структура программы на Си? Что такое функция?
ЛАБОРАТОРНАЯ РАБОТА №2 Операции языка Си Цель работы: Разработка алгоритмов линейной и разветвляющейся структуры. Овладение приемами математической формализации и навыками алгоритмизации задач различного характера с использованием основных алгоритмических структур и типовых алгоритмов обработки информации. Краткие теоретические сведения Список операций языка Си приведен в табл.1. Приоритет операций языка Си дан в табл.2. Таблица 1 - Операций языка Си
Таблица 2 -Приоритет операций языка Си
Операторы if и if-else Оператор условия с неполным предписанием задается в языке Си в форме if (выражение) оператор Оператор (простой или составной) выполняется в случае, если выражение истинно. Для условия с полным предписанием используется форма if (выражение) оператор1 else оператор2 Оператор1 выполняется в случае, если выражение истинно, а оператор2 - если ложно. Возможно построение более сложных конструкций: if (выражение1) оператор1 else if (выражение2) оператор2 else оператор3 Выражение означает любое числовое или совместимое с числовым типом выражение. В языке Си нет специального логического типа данных, поэтому выражение считается ложным, если его значение равно нулю. В случае, когда имеется переменная, которой нужно присвоить одно из двух возможных значений, предпочтительнее применить не конструкцию if-else, а операцию условия?:. Пример: absolutX = (x> 0)? x: -x; |
Последнее изменение этой страницы: 2017-04-12; Просмотров: 1238; Нарушение авторского права страницы