- •1 Билет
- •2 Билет
- •3 Билет
- •4 Билет
- •5 Билет
- •8 Билет
- •9 Билет
- •10 Билет
- •Инициализация
- •Использование одномерного массива
- •Связь массива с указателем
- •Передача в функцию
- •Динамический массив
- •Многомерные массивы Многомерные массивы, как правило, реализованные как одномерные массивы, каждый элемент которых является ссылкой на другой одномерный массив.
- •14 Билет
- •15 Билет. Задача поиска.
- •17 Билет
- •17)Рекурсия(Явная и неявная)
8 Билет
Условный оператор ifиспользуется для разветвления процесса вычислений на два направления.
Его структурная схема:
Формат оператора: if( выражение ) оператор_1; [elseоператор_2; ]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно 0 (имеет значение true), выполняется первый оператор, иначе – второй. После этого управление передается на оператор, следующий за условным.
Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом else. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок.
Конструкция с отсутствующей ветвью else называется «пропуск оператора», поскольку оператор, следующий за условием либо выполняется, либо пропускается в зависимости от выполнения условия. ( пример if ( a>b)b=1;)
Если требуется проверить несколько условий, их объединяют знаками логических операций:
&& - И ; || - ИЛИ ( пример if (a>b&& ( a>d||a==0 ))b++; )
В случае нескольких вложенных условий else относится к ближайшему if и фигурные скобки необязательны ( пример if(a<b)if(a<c)m=a;elsem=c;elseif(b<c)m=b;elsem=c; )
Конструкции типа if(a<b)max=b;elsemax=a; можно записать в виде условной операции:
max = (a<b) ?b:a;
Если какая-то переменная используется только внутри условного оператора, рекомендуется объявить её внутри скобок.
Оператор выбора switch предназначен для разветвления процесса вычислений на несколько направлений. Его структурная схема:
Формат оператора: switch ( выражение ) {
caseконстантное_выражение_1: [ список_операторов_1 ]
caseконстантное_выражение_2: [ список_операторов_2 ]
…
[ default: операторы]
}
Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается первому оператору из списка, помеченного константным выражением, значение которого совпало с вычисленным. После этого, если выход из переключателя явно не указан, последовательно выполняются все остальные ветви.
Выход из переключателя выполняется с помощью break или return. Оператор breakвыполняет выход из самого внутреннего из объемлющих его операторов swith, for , while и do. Оператор return выполняет выход из функции, в теле которой он написан.
Все константные выражения должны иметь разные значения, но быть одного и того же целочисленного типа. Несколько меток могут следовать подряд. Если совпадения не произошло, выполняются операторы после слова default ( а при его отсутствии управление передаётся следующему за switchоператору ).
Примечание: В случае синтаксической ошибки в слове default сообщение об ошибке не выдаётся, поскольку компилятор воспримет это слово как допустимую метку оператора.
Оператор безусловного перехода gotoимеет формат: goto метка;
В теле той же функции должна присутствовать конструкция вида: метка: оператор;
Оператор goto передаёт управление на помеченный оператор. Метка – это идентификатор, областью видимости которого является функция, в теле которой он задан.
Оператор goto используется в двух случаях:
1.Принудительный выход вниз по тексту программы из нескольких вложенных циклов или переключателей;
2.Переход из нескольких мест функции в одно (например, если перед выходом из функции необходимо всегда выполнять какие-либо действия)
Не следует передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию переменных, на операторы, использующие эти переменные, поскольку в этом случае инициализация не будет выполнена.( … goto label; … inta=5;label:intb=a; … )
Оператор перехода к следующей итерации цикла continueпропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации.