Определите назначение операций ? , (тип) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Определите назначение операций ? , (тип)



? - краткая условия: (условие)? (выражение, которое вернёт, если верно): (выражение, которое вернёт, если ложь). Можно записать модуль b = abs(a) ó b = (a < 0)? –a: a

, - задание последовательности.
Это бинарный оператор, то есть, ему нужны два операнда. Обрабатываются операнды слева направо. Результат работы - второй операнд.
Например, если вы напишете i = (1,2); то в переменной i окажется значение 2. Разумеется, можно поставить в выражение и несколько таких операторов.
Так, строка i = (1, 3, -4); зашлет в i значение -4. Обратите внимание на круглые скобки - они, как обычно, помогают бороться с приоритетами операций, и в данном случае они совершенно необходимы.
Если вы попытаетесь написать, например, так: i = 1, 3, -4; то с удивлением обнаружите, что переменная i стала равна единице, а не -4. А все дело в том, что у оператора присваивания приоритет повыше, так что написать последнюю строку все равно, что написать result = ((i=1), 3, -4); а потом забыть про result и использовать значение i.
Зачем понадобился такой необычный оператор? Прежде всего, есть в программах на С такие места, куда можно поставить только одно выражение, а надо ставить несколько. Вот в таких случаях и пишут что-нибудь в таком духе:
f(((i=1), (j=2), i*j)));
То, что вы видите - вызов функции с одним аргументом. В конечном итоге, в качестве аргумента функция получит i*j. И правила языка не нарушены, и несколько выражений стоит. Эта же строка показывает и второе полезное применение этого оператора - мы прямо в вызове функции присвоили новые значения переменным i и j, и только после этого сосчитали значение аргумента i*j; То есть, с помощью оператора запятая можно гарантировать, что обработаются все операнды, причем обработаются они последовательно - слева направо. Еще один пример, чтобы вам этот оператор получше запомнился. В строке программы
f(), g(), h(); последовательно будут вызваны все три функции f(), g(), h();

(тип) - это оператор приведение, позволяющий переменную 1 типа привести к другому типу например double d = 2.0; int i = (int)d;

34. Укажите особенности выполнения операций % <<

% - работает стандартно только для целых, и в математике остаток от деления ­-3 на 2 будет 1, а (-3) % 2 будет равно -1

<< – выполняется намного быстрее, чем операция умножения. При этом операнды должны быть целыми.

Можно ли сравнивать указатели?

int x=100;

double y;

int* p=&x;

if (p!=NULL) x=y;

36. Приведите примеры использования операции преобразования типа.

double d = 2.0;

int k = (int)d;

char ch = (char)k;

int x= static_cast<double> d*10;

Определите понятие «пустой оператор».

оператор, в котором ничего не выполняется, может использоваться в циклах

int i;

for (i = 0; ar[i]!= 0; i++);

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

Каждый ли оператор заканчивается «точкой с запятой»?

Нет, например:

{ [oбъявление]: оператор; [оператор];: } – составной оператор

Опишите синтаксис оператора if. Как интерпретировать вложенные if?

if (условие) { оператор 1; оператор 2; оператор 3;}// если оператор один фигурные скобки не ставятся

if(a == b)

if(b == c)

cout << ”a, b и c равны \n”;

else

cout << “b и c не равны \n”;

 

40. Как интерпретировать следующее выражение if (a=b) выражение;?

Cначала переменной a присваивается значение b, а потом если а не NULL или не 0, то выполняется «выражение».

41. Как интерпретировать следующее выражение if (a<x<b) выражение;?

Вначале выполниться проверка первого условия, а потом bool результат приведётся к int (0 или 1) и произойдет проверка второго условия. Т.е. например if (-5<-3<-1) будет всегда интерпретировано как false.

42. Как интерпретировать следующее выражение if (int i=fun(t)) выражение;?

i=fun(t). Если fun(t)!=0, то выражение будет интерпретированно как true, иначе false;

Опишите синтаксис оператора switch. Как организовать выход из оператора switch?

switch – оператор множественного выбора

switch (переменная) {
case значение 1: оператор1; break;

case значение 2: оператор2; break;

case значение 3: оператор3; break;

default: оператор;

}



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 353; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.143.168.172 (0.026 с.)