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

Int I, j, k;

float x, y, z;

...

i = j = k = 0;  k = 0, j = 0, i = 0;

x = i + (y = 3) – (z = 0);  z = 0, y = 3, x = i + yz;

Примеры недопустимых выражений:

– присваивание константе: 2 = x + y;

– присваивание функции: getch() = i;

– присваивание результату операции: (i + 1) = 2 + y;

13.Условная трёхместная операция.

Оператор ? часто можно использовать вместо оператора вида if-then-else.

Выражение1 ? Выражение2 : Выражение3;

Сначала вычисляется Выражение1, если оно истинно, то вычисляется Выражение2 и его значение присваивается всему выражение; если Выражение1 ложно, то вычисляется Выражение3 и всему выражению присваивается его значение.

x=10;

y=x>9 ? 100:200; переменной у будет присвоено значение 100.

14.Преобразование типов.

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

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

short, char  int  unsigned  long  double

floatdouble

При этом действуют следующие правила:

  • значения типов char и short всегдапреобразуются в int (даже если оба операнда имеют одинаковый тип);

  • аналогично, значения типа floatвсегдапреобразуются вdouble;

  • после этого определяется "старший" из двух типов операндов, и другой операнд преобразуется к этому типу. Порядок "старшинства":

long double

double

long long

unsigned long

long

unsigned int

int

Внимание:результатом 1/3 будет «0», чтобы избежать такого рода ошибок необходимо явно изменять тип хотя бы одного операнда, т.е. записывать, например: 1. / 3.

Типы char и int могут свободно смешиваться в арифметических выражениях, при этом каждая переменная типа char автоматически преобразуется в int. Это обеспечивает значительную гибкость при проведении определенных преобразований символов.

15.Приоритет операций и порядок вычисления выражений.

Операция

Краткое описание

Использование

Порядок

выполнения

Унарные операции

.

Доступ к полю или методу

объект . поле

Слева

направо

->

Доступ к полю или методу по указателю

указатель -> поле

[]

Индексирование

переменная[выражение]

()

Вызов функции

ID(список_выр.)

++

Префиксный инкремент

++lvalue

Справа

налево

--

Префиксный декремент

--lvalue

++

Постфиксный инкремент

lvalue++

--

Постфиксный декремент

lvalue--

~

Побитовое НЕ

~выражение

!

Логическое НЕ

!выражение

-

Унарный минус

-выражение

+

Унарный плюс

+выражение

*

Раскрытие указателя

*выражение

&

Адрес

&выражение

sizeof

Размер объекта или типа

sizeof(выражение или тип)

()

Приведение типа

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

Бинарные и тернарная операции

*

Умножение

выражение * выражение

Слева

направо

/

Деление

выражение / выражение

%

Получение остатка

выражение % выражение

+

Сложение

выражение + выражение

-

Вычитание

выражениевыражение

<<

Сдвиг влево

выражение << выражение

>>

Сдвиг вправо

выражение >> выражение

<

Меньше

выражение < выражение

<=

Меньше или равно

выражение <= выражение

>

Больше

выражение > выражение

>=

Больше или равно

выражение >= выражение

==

Равно

выражение == выражение

!=

Не равно

выражение != выражение

&

Побитовое И

выражение & выражение

^

Побитовое исключающее ИЛИ

выражение ^ выражение

|

Побитовое ИЛИ

выражение | выражение

&&

Логическое И

выражение && выражение

||

Логическое ИЛИ

выражение || выражение

?:

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

выражение ? выражение : выражение

=

Присваивание

lvalue = выражение

Справа

налево

+= -= *= /= %=

<<= >>=

&= |= ^=

Сложение, умножение и др. с присваиванием

lvalue += выражение

lvalue *= выражение

lvalue <<= выражение

и т.д.

,

Последовательное вычисление

выражение, выражение

Слева

направо

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