Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по срсп.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
180.74 Кб
Скачать

Структура простой программы на языке Си

Научиться составлять простые программы на языке Си

Краткие теоретические сведения

Рассмотрим пример простой программы на языке Си.

#include <stdio.h> /* Пример программы на языке Си */

void main ()

{

int x; // Переменная целого типа

float a; // Переменная вещественного типа

char c, str[20]; // Символьная переменная и строка

printf ("\n Введите целое число :"); //Вывод информации на экран scanf

("%d",&x); //Ввод информации с клавиатуры

printf ("\n Введите число c плавающей точкой :");

scanf ("°/of',&a);

printf ("\n Введите символ :");

scanf ("\n%c",&c);

printf ("\n Введите строку символов :");

scanf ("%s",str);

printf ("\n Результаты :");

printf ("\n %-6d \n %-12.4f \n %2c \n %-20s ",x,a,c,str);

}

Первая строка программы содержит директиву include препроцессора языка Си. Препроцессор - это системная программа, которая выполняется перед вызовом компилятора. Все директивы препроцессора начинаются с символа #. В данном случае применение директивы include обеспечит подстановку в исходный текст программы стандартного заголовочного файла <stdio.h>, содержащего описания функций printf и scanf. Если удалить первую строку программы, то компилятор не сможет проверить правильность обращения к функциям printf и scanf и выдаст сообщение об ошибке.

Рассмотрим тело функции main. Первые три строки тела main содержат описания переменных. В языке Си существует правило: все используемые переменные, структуры данных или функции должны быть обязательно описаны до своего использования. В приведенном примере описаны переменные следующих типов: переменная x целого типа, переменная a типа с плавающей точкой, переменная c символьного типа и переменная str строкового типа.

После описания переменных производится обращение к стандартным функциям printf и scanf. Функция printf обеспечивает вывод информации на экран, а scanf - ввод данных с клавиатуры.

Приведенная программа содержит также комментарии, или пояснительный текст. Для языка Си более типично указание комментариев между парами символов /* и */, играющих роль открывающих и закрывающих скобок. В языке Си++ имеется еще одна возможность задания комментариев: с помощью пары символов //. Все символы, следующие за // до конца строки, рассматриваются как комментарий и игнорируются компилятором.

Базовые типы данных языка Си

В языке Си определены следующие простейшие, или базовые, типы данных:

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 из программы-примера содержат не только символы типа, но также числа и знак минус. Знак минус означает выравнивание по левому краю. Числа задают минимальную ширину поля вывода. Для значений с плавающей точкой может быть также указано количество знаков после запятой (указывается после ширины поля вывода через точку).