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

1.1Простая программа

1: #include <stdio.h>3: int main(void)4: {5: printf(″Welcome to C Programming!\n″);6: return 0;7: }

Строка 1 – это директива включения. Имя директивы (#include

«вкл») указывает компилятору на чтение текста из заданного файла. Файл stdio.h называется заголовочным и обычно имеет расширение “.h”. Если имя файла заключено в угловые скобки (#include <stdio.h>),осуществляется поиск в стандартных каталогах, заданных в настройках среды разработки программ, если в кавычки(#include “anyfile.h”), компилятор ищет файл в текущем каталоге; Все С-программы начинаются одинаково:первый оператор содержит функциюmain(). В строках 4 и 7 образуют блок- группу элементов, с которой компилятор будет обращаться, как с единым целым. 1-ый оператор (стр5) вызывает стандартную ф-цию форматированного выводаprintf(). Стр 6 содержит оператор возврата return. Он завершает выполнение программы и возвращает некоторое значение операционной системе. Обычно ненулевые значения свидетельствуют об ошибках, нулевые- об успешном завершении программы.

Алфавит включает:-строчные и прописные буквы латинского алфавита;- цифры от 0 до 9;- символ «_» (нижнее подчеркивание);- набор специальных символов: " { } , | [ ] + - % / \ ; ' : ? < > = ! & # ~ ^ . *- прочие символы.Данные в языке Си разделяются на две категории: простые (скалярные), будем их называть базовыми, и сложные (составные) типы данных.Основные типы базовых данных: целый – int (integer), вещественный с одинарной точностью – float и символьный – char (character).

2. Константами называют величины, которые не изменяют своего значения во время выполнения программы. Константы в Си можно задавать двумя способами: 1. с помощью директивы препроцессора #define. #define MILLENIUM 1000 задает символическое имя MILLENIUM для константы 1000. Препроцессор всюду в тексте заменяет это имя на константу 1000. 2. с помощью модификатора const. cons int MILLENIUM = 1000. Сущ 5 видов констант: символьные, целые, вещественные, строковые, константы перечисляемого типа. Целые константы определяются как числа без дробной части. Бывают десятичные, 16-ричные, 8-ричные. Десятичные константы – это последовательность цифр 0...9, первая из которых не должна быть 0. Восьмеричные константы – это последовательность цифр от 0 до 7, первая из которых должна быть 0. Шестнадцатеричные константы – последовательность цифр от 0 до 9 и букв от A до F (a...f), начинающаяся символами 0Х (0х). Восьмеричные и шестнадцатеричные константы могут также заканчиваться буквой L(l) – long. Константы вещественного типаДанные константы размещаются в памяти по формату double, а во внешнем представлении могут иметь две формы:1) с фиксированной десятичной точкой, формат записи: –3.125 ;2) с плавающей десятичной точкой 100е–10 Символьная константа – это символ, заключенный в одинарные кавычки: 'A', 'х' При присваивании символьной переменной они должны быть заключены в апострофы.строковая константа – это массив символов.Во внутреннем представлении к строковым константам добавляется нулевой символ '\0', является признаком окончания строки.

11. Операция условия?Оператор ? часто можно использовать вместо оператора вида if-then-else.Выражение1 ? Выражение2 : Выражение3;Сначала вычисляется Выражение1, если оно истинно, то вычисляется Выражение2 и его значение присваивается всему выражение; если Выражение1 ложно, то вычисляется Выражение3 и всему выражению присваивается его значение.x=10;y=x>9 ? 100:200; переменной у будет присвоено значение 100. Операция «,» (запятая) Данная операция используется при организации строго гарантированной последовательности вычисления выражений. выражения 1, 2,…, N вычисляются последовательно друг за другом и результатом операции становится значение последнего выражения N, например: m = ( i = 1, j = i ++, k = 6, n = i + j + k ); получим последовательность вычислений: i =1, j =i =1, i =2, k=6, n=2+1+6, и в результате m=n=9.

5. printf( управляющая строка , список объектов вывода); где:

«УС» поясняющий текст (комментарии); список модификаторов форматов, указывающих компилятору способ вывода объектов (признак модификатора формата – символ %).

СОВ указываются идентификаторы печатаемых объектов, разделенных запятыми: переменные, константы или выражения, вычисляемые перед выводом.

Если признака модификации (%) нет, то вся информация выводится как комментарии. Если нужно напечатать сам символ %, то его нужно указать 2 раза:printf ("Только %d%% предприятий не работало. \n",5); Только 5% предприятий не работало. %d (%i) – десятичное целое число;

%c– один символ; %s– строка символов; %f– число с плавающей точкой, десятичная запись; – экспоненциальная запись; %g– используется вместо f, e для исключения незначащих нулей; \n – новая строка; \b – шаг назад; \\ – обратная косая; \' – апостроф; \" – кавычки; \0 – нулевой символ (пусто).

В модификаторах формата функции printf после символа % можно указывать число, задающее минимальную ширину поля вывода, например, %5d – для целых, %4.2f – для вещественных – две цифры после запятой для поля, шириной 4 символа. Если указанных позиций для вывода целой части числа не хватает, то происходит автоматическое расширение.

Если после «%» указан знак «минус», то выводимое значение будет печататься с левой позиции поля вывода, заданной ширины, например: % – 10d.

Использование функции printf для преобразования данных: printf("%d", 336.65); получим: 336;

Функция puts(ID строки); выводит на экран дисплея строку символов, автоматически добавляя к ней символ перехода на начало новой строки (\n).

Аналогом такой функции будет: printf(“%s \n”, ID строки);

Функция putchar() выдает на экран дисплея один символ без добавления символа ‘\n’.

scanf (управляющая строка , список адресов объектов ввода);

УП только модификаторы форматов, количество и порядок следования которых должны совпадать с количеством и порядком следования вводимых объектов, а тип данных будет преобразовываться в соответствии с модификаторами.

САОВ -- адреса переменных, разделенные запятыми, т.е. для ввода значения переменной перед ее идентификатором указывается символ &, обозначающий операцию «взять адрес».

Если нужно ввести значение строковой переменной, то использовать символ & не нужно, т.к. строка – это массив символов, а ID массива является адресом его первого элемента. Например: 1) int course; 2)float grant; 3)char name[20]; 4)printf (" Укажите курс, стипендию, имя \n "); 5)scanf ("%d%f%s", &course, &grant, name);

Функция scanf() использует практически тот же набор модификаторов форматов, что и printf(), отличия от функции вывода следующие: отсутствует формат %g, форматы %e,%f – эквивалентны. Для ввода коротких целых чисел введен модификатор формата %h.

Внимание, функцией scanf() по формату %s строка вводится только до первого пробела.

Для ввода фраз, состоящих из слов, разделенных пробелами, используется функция: gets (ID строковой переменной);

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

С началом работы любой программы автоматически открываются стандартные потоки для ввода данных – stdin, который по умолчанию связан с клавиатурой, и вывод – stdout, связанный с экраном монитора.

Потоковый ввод-вывод .Поток – это абстрактное понятие, которое относится к любому переносу данных от источника к приемнику. Потоки С++ обеспечивают надежную работу как со стандартными (stdin, stdout), так и с определенными пользователем типами данных. Для ввода-вывода в языке С++ используются два объекта класса iostream: cin (класс istream), cout (класс ostream) и две переопределенные операции побитового сдвига. Для их работы необходимо подключить заголовочный файл iostream.h. Стандартный поток вывода cout по умолчанию связан со стандартным устройством вывода stdout (дисплей монитора), а ввода cin – со стандартным устройством ввода stdin, т.е. клавиатурой.

14. Функция exit выполняет прерывание программы и используется для нормального, корректного завершения работы программы. Пр: ошибка при открытии файла. При этом записываются все буферы в соответствующие файлы, закрываются все потоки и вызываются все зарегистрированные стандартные функции завершения. void exit ( int exit_code); или void abort (void).

3. операции задают действия, которые необходимо выполнить. Внутри знака операции пробелы не допускаются. В языке Си используются четыре первичных операции:– операция доступа к полям структур и объединений при помощи идентификаторов «.» – точка;– операция доступа к полям структур и объединений при помощи указателей «->» – стрелка;– операция [ ] индексации ID[целое выражение], используемая при декларации массива и при обращении к его элементам; – операция ( ) обращения к функции.Операции делятся на унарные, бинарные и тернарные – по количеству участвующих в них операндов.Арифметические операции – бинарные, Операндами традиционных арифметических операций (+ – * /) могут быть константы, переменные, функции, элементы массивов, указатели, любые арифметические выражения. Присваивание значения рассматривается как выражение, имеющее значение левого операнда после присваивания. Таким образом, присваивание может включать несколько операций присваивания, изменяя значения нескольких операндов. Операция приведения типа. В любом выражении преобразование типов может быть осуществлено явно, для этого достаточно перед выражением поставить в круглых скобках атрибут соответствующего типа. Пр x = (double)(n + k)/3;Операции отношения :==; >; <; <=; >=; !=. Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции отношений.

8. Арифметические операции – бинарные, Операндами традиционных арифметических операций (+ – * /%(остаток от деления)) могут быть константы, переменные, функции, элементы массивов, указатели, любые арифметические выражения. Преобразование типов. Если в выражении встречаются переменные и константы разных типов, они преобразуются к одному типу. Компилятор преобразует «меньший» тип в «больший». Этот процесс называется продвижением типов (type promotion). Все переменные типов char и short int автоматически продвигаются в int. Это называется целочисленным расширением. Кроме того, действует следующее правило: если один из операндов имеет тип long, а второй – unsigned int, притом значение unsigned int не может быть представлено типом long, то оба операнда преобразуются в unsigned long. После выполнения преобразований оба операнда относятся к одному и тому же типу, к этому типу относится и результат операции. Программист может «принудительно» преобразовать значение выражения к нужному ему типу, используя операцию приведения типов. Общая форма оператора явного приведения типа:(тип) выражение Здесь тип – это любой поддерживаемый тип данных. Например, следующая запись преобразует значение выражения x/2 к типу float:(float) x/2 Явное преобразование типа – это операция. Оператор приведения типа является унарным и имеет тот же приоритет, что и остальные унарные операторы. Операции присваивания.Общая форма оператора присваивания: имя переменной=выражение;В одном операторе присваивания можно присвоить одно и то же значение многим переменным. Для этого используется оператор множественного присваивания: х=y=z=0;Составное присваивание – разновидность оператора присваивания, в которой запись сокращается и становится более удобной в написании. Например, оператор x=x+10; можно записать

11. Операция условия?Оператор ? часто можно использовать вместо оператора вида if-then-else.Выражение1 ? Выражение2 : Выражение3;Сначала вычисляется Выражение1, если оно истинно, то вычисляется Выражение2 и его значение присваивается всему выражение; если Выражение1 ложно, то вычисляется Выражение3 и всему выражению присваивается его значение.x=10;y=x>9 ? 100:200; переменной у будет присвоено значение 100. Операция «,» (запятая) Данная операция используется при организации строго гарантированной последовательности вычисления выражений. выражения 1, 2,…, N вычисляются последовательно друг за другом и результатом операции становится значение последнего выражения N, например: m = ( i = 1, j = i ++, k = 6, n = i + j + k ); получим последовательность вычислений: i =1, j =i =1, i =2, k=6, n=2+1+6, и в результате m=n=9.

12. Имеются следующие базовые типы: char (символьный), int (целый), float (вещественный), double (вещественный с двойной точностью), void (пустой тип). К модификатором относятся: unsigned (беззнаковый), signed (знаковый), short (короткий), long (длинный). Данные целого типа (signed char, unsigned char, signed int, unsigned int, signed short int, unsigned short int, signed long int, unsigned short int) . По умолчанию все переменные целого типа считаются signed. Ключевые слова signed и unsigned могут употребляться самостоятельно при определении переменной. В этом случае они рассматриваются соответственно как signed int и unsigned int. Вещественные типы данных. Для объявления переменных плавающего типа используются ключевые слова float, double, long double. Все числа с плавающей точкой представляются в виде двух частей – мантиссы М и порядка Р числа в двоичной системе счисления:C=M*2(в степени Р).Величины типа float занимают 4 байта. Величины типа double занимают 8 байт в памяти. Признаком константы с плавающей точкой является наличие в ее записи точки, символа Е или е. Символьные данные. Данные типа char занимают в памяти 1 байт. Код от 0 до 255 в этом байте задает один из 256 возможных символов. Тип char является типом «целое». Данные типа char могут рассматриваться и как данные со знаком (signed char) и без знака (unsigned char). В случае signed char диапазон значений от -128 до 127, а unsigned char от 0 до 255. Константа типа char – это символ заключенный в одиночные кавычки. Каждому символу ставится в соответствие некоторый код. По этому коду из таблицы описания конфигурации символа выбирается изображение этого символа, которое выводится на экран. Значением символьной константы является целое число. Например, символ '0' в коде ASCII имеет значение равное 48 в 10с/с. Символьные константы (точнее их коды) могут участвовать в операциях над числами так же, как и существующие другие целые. Коды цифр и латинских букв идут в порядке возрастания, т.е.'0'<'1'<'2'<…<’9’ …<’A’<’B’<’C ’<…<’Z’<’a’<’b …<’z’.В символьных и строковых константах могут использоваться специальные управляющие знаки:\n – переход на новую строку;\t – горизонтальная табуляция;\v – вертикальная табуляция;\а – сигнал;\' – одиночная кавычка;\» двойная кавычка.

17. Стандартные математические функции math.h В приведенных здесь функциях аргументы и возвращаемый результат имеют тип double. Аргументы тригонометрических функций должны быть заданы в радианах (2π радиан = 3600).(|x| -- fabs(x); ex -- exp(x); xy -- pow(x,y); ln(x) -- log(x); lg10(x) -- log10(x); sin(x) -- sin(x; остаток от деления x на y -- fmod(x,y); наименьшее целое >=x -- ceil(x); наибольшее целое <=x -- floor(x); cos(x) -- cos(x); tg(x) -- tan(x); arctg(x / y)-- atan2(x) ; sh(x)=0.5 (ex–e-x) -- sinh(x) ) Единственной исключительной (контролируемой) ситуацией при выпол-нении арифметических операций является деление на нуль, другие виды оши-бочных ситуаций (переполнение, исчезновение порядка или потеря значимо-сти) игнорируются.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]