- •Вопросы к экзамену по дисциплине
- •6. Типы данных: целый, вещественный, символьный. Размеры данных.
- •7.Правила определения переменных в программе. Инициализация переменных.
- •10.Операции сдвига.
- •11.Операции отношения, логические операции.
- •Int I, j, k;
- •15.Приоритет операций и порядок вычисления выражений.
- •16.Функция форматированного вывода printf.
- •18.Операторы преобразования данных и операторы управления. Оператор простой и составной, блок.
- •(Последовательно выполняемые операторы)
- •19.Виды управляющих конструкций программы.
- •20.Операторы ветвления, условный оператор.
- •21.Оператор переключения(Switch).
- •22.Оператор цикла с заданным числом повторений.
- •23.Оператор цикла с предусловием.
- •24.Оператор цикла с постусловием.
- •25.Операторы прерывания и продолжения цикла.
- •26.Одномерные и многомерные массивы, их инициализация.
- •27.Указатели. Связь между указателями и массивами.
- •28.Операции над указателями и массивами.
- •29.Операции взятия адреса, обращения по адресу.
- •30.Определение функции. Возвращение значения: оператор return. Описание функции, вызов функции.
- •31.Аргументы функции: формальные и фактические. Передача аргументов, стек.
- •32.Рекурсивные программы.
- •33.Функции для работы со строками: сравнение, копирование.
- •47. Функции для работы со строками: поиск в строке.
- •34.Функции для работы со строками: преобразование форматов.
- •35.Локальные и глобальные переменные.
- •36.Классы памяти. Автоматические переменные. Внешние и статические переменные.
- •37. Декларация структур.
- •38. Инициализация и доступ к элементам структуры.
- •39. Вложенные структуры и массивы структур.
- •40. Указатели на структуры.
- •41.Файлы.Функции работы с указателем текущей позиции файла.
- •43.Функция чтения и записи в файл в построчном режиме.
- •44.Функция чтения и записи в файл в посимвольном режиме.
- •45.Функция чтения и записи двоичных файлов.
- •46.Списки.Операции над списками. Односвязные и двусвязные списки.
- •47.Реализация списка на основе массива структур.
- •48.Реализация списка на основе массива данных.
- •49.Очереди. Операции над очередями.
- •50.Реализация очереди на основе массива.
- •51.Стеки. Операции над стеками.
- •52.Реализация стека на основе массива.
- •53.Сортировка методом обмена(пузырька).
- •Анализ пузырьковой сортировки. Пузырьковая сортировка обладает несколькими характеристиками:
- •54.Методом выбора.
- •55.Методом вставки.
- •56.Методом Шелла.
- •57.Метод быстрой сортировки(Хоара).
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 + y – z;
Примеры недопустимых выражений:
– присваивание константе: 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
floatdouble
При этом действуют следующие правила:
значения типов 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 <<= выражение и т.д. | |
, |
Последовательное вычисление |
выражение, выражение |
Слева направо |