Функции exit() и atexit().




Логические операции и операции сравнения.

В С определены константы FALSE и TRUE, которые соответственно равны 0 и 1.

К логическим операциям относят

== - возвращает 1 если сравниваемые значения равны.

!= - возвращает 1 если сравниваемые значения не равны

> - 1, если левый операнд больше правого.

< - 1, если левый операнд меньше правого.

>= - 1, если левый операнд больше либо равен правого.

<= - 1, если левый операнд меньше либо равен правого.

&& - 1, если оба операнда не равны 0 (логическое И).

|| - 1, если один из операндов не равен 0 (логическое ИЛИ).

! – 1, если операнд равен 0 (логическое отрицание).

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

Примечание 2. В С любое ненулевое значение интерпретируется как логическая истина.

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

В С имеется два условных оператора – if и switch.

Условный оператор if имеет следующий формат:

if{выражение}{

выражение_если_истина 1;

выражение_если_истина N;

}[else{

выражение_если_ложь 1;

выражение_если_ложь N;

}]

Пример:

if (a>10){

printf(“%d”,a);

a*=4;

}else{

a-=10;

}

Если в блоке if или else находится только одно выражение, то фигурные скобки можно опускать.

Допускается также вложение операторов if.

Оператор условного перехода switch имеет формат:

switch(выражение){

case константа1:

операторы1;

break;

case константа2:

операторы2;

break;

…..

default: операторы;

}

Оператор switch сравнивает результат выражения с константами, указанными после каждого ключевого слова case и, в случае равенства, выполняет соответствующий блок выражений, ограниченный ключевым словом break. В случае, если совпадений не было обнаружено, выполняется блок выражений, следующий за ключевым словом default. Пример:

switch ((a%d)*10){

case 20:

a = d/5;

break;

case 30:

a>>=1;

d-=35;

break;

default:

printf(“%d”,a);

}

Спецификатор типа в printf

Тип указывает не только на тип величины (с точки зрения языка программирования Си), но и на конкретное представление выводимой величины (например, числа могут выводить в десятичном или шестнадцатеричном виде). Записывается в виде одного символа. В отличие от остальных полей, является обязательным. Максимальный поддерживаемый размер вывода от единичной управляющей последовательности составляет по стандартам как минимум 4095 символов; на практике большинство компиляторов поддерживают существенно большие объёмы данных.

Значения типов:

· d, i — десятичное знаковое число, размер по умолчанию, sizeof(int). По умолчанию записывается с правым выравниванием, знак пишется только для отрицательных чисел.

· o — восьмеричное беззнаковое число

· u — десятичное беззнаковое число

· x и X — шестнадцатеричное беззнаковое число, x использует маленькие буквы (abcdef), X большие (ABCDEF)

· f и F — числа с плавающей запятой. По умолчанию выводятся с точностью 6, если число по модулю меньше единицы, перед десятичной точкой пишется 0. Величины ±∞ представляются в форме [-]infили [-]infinity, Величина Nan представляется как [-]nan или [-]nan(любой текст далее). Использование F выводит указанные величины заглавными буквами (-INF, NAN). Аргумент по умолчанию имеет размер double.

· e и E — числа с плавающей запятой в экспоненциальной форме записи (вида 1.1e+44); e выводит символ «e» в нижнем регистре, E — в верхнем (3.14E+0);

· g и G — число с плавающей запятой; форма представления зависит от значения величины (f или e);

· a и A — число с плавающей запятой в шестнадцатеричном виде;

· c — вывод символа с кодом, соответствующим переданному аргументу; переданное число приводится к типу unsigned char (или wchar t, если был указан модификатор длины l);

· s — вывод строки с нулевым завершающим байтом;

· S — то же самое, что и s

· p — вывод указателя, внешний вид может существенно различаться в зависимости от внутреннего представления в компиляторе и платформе

· n — запись по указателю, переданному в качестве аргумента, количества символов, записанных на момент появления командной последовательности, содержащей n;

· % — символ для вывода знака процента (%), используется для возможности вывода символов процента в строке printf, всегда используется в виде %%.

Операторы цикла.

В С имеются три набора операторов цикла: for, while, и do-while.

1)

for(инициализация; проверка условия; коррекция){

оператор 1;

…..

оператор N;

}

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

Пример:

for (i=0; i<5; i++){ printf(“%d”, i); }

for (i=0; i<5; i++) printf(“%d”, i);

Операция запятая позволяет использовать в одном цикле несколько индексов, а также несколько выражений.

Любой из трех операндов цикла for при необходимости можно пропускать.

Пример:

for (int i=3; i--;){

printf(«%d», i);//на экран выводятся цифры от 3 до 1

}

Данная часть программы выводит на экран числа от 3 до 1.

 

2) while имеет следующий формат:

while(условие){

блок_выражений_если_истина:

}

Пример:

c=0;

while(c<5){

c++;

printf(“%n”,c);

};

Так же как и для цикла for, если в цикле выполняется только один оператор, скобки после while можно не писать.

Если цикл while или for не содержат тела, то скобки также можно не писать. Пример:

Int i,h;

for (i=5; i<10; i++, h=i*i);

i=5; while (((i++)<10) && (h+=i*i));

 

3) Цикл с постусловием do{}whle имеет следующий формат:

do {

}while(условие);

Пример:

int c=5;

do{

c--;

}while(c);

 

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

for (int i=6;; i--){

if (!i){ continue;} //если i равен нулю

printf(“%d”, 34%i);

if (i<-6){ break; }

}

 

Функции exit() и atexit().

Для выхода из программы можно использовать функцию exit(). При помощи функции atexit() можно определить функции, которые будут вызваны при завершении работы программы



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-05-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: