Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса)




НазваниеКраткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса)
страница2/12
Дата публикации21.03.2013
Размер0.5 Mb.
ТипКонспект
vbibl.ru > Информатика > Конспект
1   2   3   4   5   6   7   8   9   ...   12

ТЕМА 1. Краткая характеристика языка. Базовые типы данных. Квалификаторы. Переменные и константы. Операторы и операции. Таблица приоритетов операций. Выражения. Приведение типов.


Язык Си – язык программирования высокого уровня, тесно связанный с системой UNIX. Разработан Кеном Томпсоном и Денисом Ритчи в 1972 году. В данном пособии рассматривается стандарт ANSI C, принятый в 1989г.

В Си имеются основные управляющие конструкции, используемые в хорошо структурированных программах. Язык Си обеспечивает разнообразие типов данных. Кроме базовых типов: char, int, float и double имеется возможность получать целую иерархию выводимых типов данных из указателей, массивов, структур и объединений.

Базовые типы данных могут быть использованы с квалификаторами: short, long, signed и unsigned. Всегда выполняется соотношение – размер short не больше размера int, а int, в свою очередь, не больше размера long.

Имена переменных могут состоять из букв (знак подчеркивания считается буквой) и цифр. Первая литера обязательно буква. Большие и маленькие буквы различаются. Для внутренних имен значимыми являются первые 31 литера, а для внешних – 6 литер.

Все переменные должны быть описаны до использования, например,

int a;

long b,c,d;

unsigned char s;

double m[100]; /* m - массив из 100 элементов

типа double, индексы принимают

значения от 0 до 99 */

К любой переменной в декларации может быть применен квалификатор const, указывающий на то, что ее значение далее изменяться не будет (для массива это означает, что ни один из его элементов не будет меняться)

const char warnmsg[] = "warning: ";

^ Особенности записи констант: целая константа, например, 123 имеет тип int. Целое значение может также иметь восьмеричное или шестнадцатеричное представление. Восьмеричное начинается с нуля (017), а шестнадцатеричное начинается с 0x или 0X (0x1a). Константа типа long завершается буквой l или L, например, 123L. Беззнаковые константы заканчиваются буквой u или U. Константы типа double имеют десятичную точку или экспоненциальную часть, например, 123.4 или 1.234е2. Константы типа float заканчиваются буквой f или F. Константы типа long double заканчиваются буквой l или L, например, 123.4L.

Константа типа char записывается в виде литеры, обрамленной одиночными кавычками (‘*’, ‘s’). Некоторые литеры записываются с помощью заранее определенных эскейп-последовательностей (‘\n’-новая строка, ‘\t’-табуляция, ‘\a’-сигнал звонок и т.д.). Кроме того, произвольный восьмеричный код можно задать в виде ‘\ooo’, где ooo-одна, две или три восьмеричные цифры или ‘\xhh’, где hh-одна или две шестнадцатеричные цифры.

Строковая константа (строка) это ноль или более литер, заключенных в двойные кавычки (“asdf”). Во внутреннем представлении в конце строки присутствует ‘\0’, поэтому, фактически – это массив типа char из n+1 элементов, где n число значащих символов.

В Си имеются средства описания перечислимого типа, для этого используется ключевое слово enum. При описании перечислимого типа полностью задается набор его значений:
enum palette{whitе, black=10, red, green=-1,

blue};

/* white, black, red, green и blue – константы перечислимого типа palette */

enum palette color;

/*color – переменная типа palette, ей может быть присвоена любая из констант этого типа*/

color = white;
Именование констант перечислимого типа уникально в пределах области видимости. Данные константы ассоциированы с целым типом Си и могут использоваться везде, где используются константы типа int. По умолчанию, константам перечислимого типа присваиваются последовательные значения (0,1,2, ….). Если для константы указано “= значение”, то ей присваивается это значение, а следующая за ней константа получает значения на 1 больше и т.д. Таким образом в примере константы перечислимого типа palette имеют следующие значения:

white - 0

black - 10

red - 11

green - -1

blue - 0

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

  1. Арифметические операции (+, -, *, /, %):

  • унарные операции + и - (изменяет знак стоящей справа величины) имеют более высокий приоритет, чем бинарные операции + и - ;

  • бинарные операции +(сложение) и –(вычитание) имеют одинаковый приоритет, ниже приоритета операций *(умножение), /(деление) и %(остаток от деления);

  • операция / с операндами целых типов выполняется с усечением дробной части;

  • операция % определена только для операндов целых типов;

  • арифметические операции с одинаковым приоритетом выполняются слева направо.

  1. Логические операции (!, &&, ||)

  • результатом унарной операции ! (логическое НЕ) будет 0 для ненулевого операнда и 1 для нуля;

  • приоритет бинарной операции &&(логическое И) выше приоритета бинарной операции ||(логическое ИЛИ).

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

  • операции <, <=, >, >= имеют одинаковый приоритет, ниже приоритета операций сравнения на равенство == и != ;

  • операции отношения имеют более низкий приоритет, чем арифметические операции, но более высокий, чем логические операции && и ||.

  1. Побитовые операции (&, |, ^, <<, >>, ~)

  • все побитовые операции можно применять только к операндам целых типов (знаковым и беззнаковым char, shot, int и long);

  • результат поразрядных операций & и | не совпадает с результатом логических операций && и ||, например, для x=2 и y=5 результатом x&y будет 0, тогда как результатом x&&у будет 1;

  • операции <<(сдвиг влево) и >>(сдвиг вправо) могут использоваться как эффективное умножение и деление на степени 2: x<>n делит x на 2 в n-ой степени, если число неотрицательное.

  1. Операции присваивания (=,+=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=)

  • типом и значением любой операции присваивания является тип и значение ее левого операнда после завершения присваивания.

  1. Инкрементная (++) и декрементная(--) операции

  • могут быть как префиксными, так и постфиксными, так например, ++x увеличивает x на 1 до того, как его значение будет использовано, а x++ - после;

  • эти операции можно применять только к переменным: запись ++(x+y) не верна.

  1. Условная(тернарная) операция (?:)

  • в выражении x?y:z первым вычисляется значение выражения x, и если он не нуль, то результатом считается значение выражения у, иначе – значение выражения z.

Полная таблица операций с правилами их выполнения приведена в Приложении 1.

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



Примечание. Читать схему следует следующим образом: «если один из операндов имеет тип long double, то другой операнд приводится к long double» и т.д. Особого внимания требует случай, когда один из операндов имеет тип long, а другой – unsigned int: если представление типа long включает все значения типа unsigned int, то unsigned int приводится к long, если же это не так – оба операнда приводятся к unsigned long (эта особенность вызвана тем, что стандарт языка Си не накладывает ограничений на машинное представление переменных, кроме того, что машинное представление переменной long должно быть не короче машинного представления переменной int).

При выполнении операции присваивания тип правой части приводится к типу левой, например:

...int x;

double y=2.9;

x=2+y;

Тип правой части – double, а переменной x будет присвоено значение 4.

Кроме автоматического приведения типов в выражении можно использовать операцию явного приведения типа:

(<тип>)<выражение>

Примечание. В языке Си нет логического типа, а любое значение отличное от нуля считается истинным. Выражение-условие принимает значение 1, если оно истинно и 0, если ложно. Например:

...int c,d;

c=getchar();

d=c>=’0’ && c<=’9’;

Если введенный символ – цифра, то переменной d будет присвоено значение 1, в противном случае 0.

Вычисление логического выражения прекращается как только становится известна истинность или ложность результата.
Задачи.

  1. Какое значение примет переменная z?

int x=1, y=2, z;

    1. z=x & y | x && x==y;

    2. z=x & y | (x && y);

  1. Изменятся ли значения переменных x,y,z и какое значение будет присвоено переменной k?

int x, y, z, k;

x=y=z=1;

k=++x && ++y || ++z;

  1. Как будет вычисляться выражение z=x+++y ?

  2. Какое значение примет переменная k?

int k;

k=~(~0<<2);

  1. Определить значение выражения и тип результата.
    а) -3*4L-6/5;

б) (7+6)%5/2;

  1. Какие значения примут целочисленные переменные x,y,z после выполнения следующих операторов:

x=3; y=3; z=1;

z+=x

  1. Реализовать эффективное умножение и деление переменной x на 16, используя операции поразрядного сдвига (указать возможный тип переменной x и диапазон ее начальных значений для корректного выполнения операции).

  2. Используя тернарную операцию, присвоить z наименьшее из значений a, b и c.

  3. int x;

Инвертировать 3 бита переменной x, начиная 5-го, а остальные биты оставить без изменения.

  1. int z;

Обнулить в z все разряды, кроме 5 младших, а в 3 младших разрядах установить 1.

1   2   3   4   5   6   7   8   9   ...   12

Похожие:

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие предназначено для проведения практических...
Учебно-методическое пособие предназначено для проведения практических занятий по дисциплине «Английский язык по специальности», соответствует...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие для студентов 1 курса всех специальностей...
Учебно-методическое пособие предназначено для студентов 1 курса всех специальностей заочной формы обучения. Целью издания является...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие Н. Новгород
...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие для студентов специальностей «История»
Шинаков Е. А., Поляков Г. П., Чубур А. А. Основы восточноевропейской археологии (учебно-методическое пособие). – Брянск, рио бгу,...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconВ сокращении Учебно-методическое пособие Томск 2008 утверждено
Учебно-методическое пособие предназначено для научных руководителей и студентов, выполняющих квалификационные работы и отчеты о нир...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие для студентов заочной (дистанционной) формы обучения Москва 2008
Знаменский В. В. Налоги и налогообложение: Учебно–методическое пособие. – М.: Миир, 68 с., 2008

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие
Составитель Синицына З. М. Написание и защита выпускной квалификационной (дипломной) работы. Учебно-методическое пособие для студентов...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие предназначено для проведения практических...
Оводство, которое поможет студентам лучше освоить теоретический материал по дисциплине «Безопасность жизнедеятельности» в разделе...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУчебно-методическое пособие для самостоятельной работы студентов заочной формы обучения
Учебно-методическое пособие предназначено для организации самостоятельной работы студентов заочной формы обучения по специальности...

Краткий конспект семинарских занятий по языку Си. (учебно-методическое пособие для студентов II курса) iconУстройство автомобиля часть 2 системы питания двигателей учебно-методическое пособие
Учебно-методическое пособие предназначено для студентов дневного и заочного отделений технолого-экономического факультета нгпу, обучающихся...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
vbibl.ru
Главная страница