- •Вопросы к экзамену по дисциплине «программирование технических средств»
- •1 Основные понятия и определения
- •2 В состав базового программного обеспечения входят:
- •3 Программные модули
- •8 Функциональная и модульная декомпозиции
- •9 Операционная система
- •12 В ходе разработки программы должен быть подготовлен следующий графический материал:
- •13 Алфавит языка
- •14 Различают также следующие виды языков программирования:
- •15 Идентификаторы и ключевые слова
- •17 Декларация объектов
- •18 Данные целого типа (int)
- •19 Данные целого типа (int)
- •20 Данные вещественного типа (float, double)
- •21 Преобразование типов (явное и неявное). Приведение типа
- •24 Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки.
- •25 Операции, выражения
- •26 Арифметические операции. Аддитивные и мультипликативные операции.
- •28 Условная операция «? :»
- •29 Оператор выбора альтернатив (переключатель)
- •30 Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием.
- •31 Оператор цикла с предусловием и коррекцией for
- •32 Оператор безусловного перехода goto
- •33 Побитовые логические операции, операции над битами
- •34 Операции сравнения. Логические операции. Унарные операции.
- •35 Операция присваивания. Сокращенная запись операции присваивания.
- •36 Стандартная библиотека языка Си. Математические функции.
- •37 Строки в языке Си. Функции работы со строками.
- •38 Функции ввода информации
- •39 Функции вывода данных
- •40 Управляющая строка функций ввода/вывода.
- •41 Ввод-вывод потоками
- •42 Препроцессор. Директивы #include, #define, #if…
- •43 Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •44 Многомерные массивы
- •45 Структуры. Вложенные структуры
- •46 Массивы структур. Битовые поля
- •47 Объединения. Перечисления
- •48 Указатели. Указатели и адреса объектов. Указатели и массивы.
- •49 Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей Операция получения адреса
- •50 Операции с указателями: сложение и вычитание, инкремент и декремент, сравнение указателей
- •51 Работа с динамической памятью. Динамические массивы.
- •52 Операции typedef и sizeof
- •53 Функции. Определение функции, объявление функции и вызов функции. Возвращаемое значение функции.
- •54 Функции. Типы передачи параметров функции (по значению, по адресу, по ссылке).
- •55 Функции. Переменные в качестве параметров функций.
- •56 Функции. Массивы в качестве параметров функций.
- •57 Указатели на функции.
- •58 Перегрузка функций.
- •59 Классы памяти. Области действия объектов
- •60 Работа с файлами. Типы файлов (текстовый и бинарный). Дескриптор файла (“указатель на файл”). Режимы работы с файлами.
- •61 Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •62 Работа с файлами. Чтение и запись данных в файл. Посимвольный и построчный ввод-вывод
- •63 Работа с файлами. Чтение и запись данных в файл. Блоковый ввод-вывод
- •64 Работа с файлами. Чтение и запись данных в файл. Форматированный ввод-вывод
- •65 Работа с файлами. Указатель текущей позиции в файле, его перемещение к нужной позиции.
- •Заполнение:
- •67 Графический режим. Функции вывода текста, функции управления цветом. (outtext, outtextxy, setbkcolor, setcolor, settextjustify, settextstyle, textheight, textwidth)
- •68 Среды разработки программ для микроконтроллеров. Особенности написания программ для микроконтроллеров и программирования их периферийных устройств.
- •69 Средства записи программ и отладки для микроконтроллеров. Программаторы, симуляторы и внутрисхемные отладчики.
- •70 Интерфейсы программирования и отладки встроенных систем. Интерфейс jtag
35 Операция присваивания. Сокращенная запись операции присваивания.
Операция присваивания
Формат операции присваивания:
< ID > = <выражение>; Присваивание значения в языке Cи в отличие от традиционной интерпретации рассматривается как выражение, имеющее значение левого операнда после присваивания. Таким образом, присваивание может включать несколько операций присваивания, изменяя значения нескольких операндов, например:
int i, j, k;
float x, y, z;
...
i = j = k = 0; ↔ k = 0, j = k, i = j;
x = i+(y = 3) - (z = 0); ↔ z = 0, y = 3, x = i + y - z;
Внимание! Левым операндом операции присваивания может быть только именованная либо косвенно адресуемая указателем переменная.
Примеры недопустимых выражений:
а) присваивание константе: 2 = x+y;
б) присваивание функции: getch() = i;
в) присваивание результату операции: (i+1) = 2+y;
Сокращенная запись операции присваивания
В языке Cи используются два вида сокращений записи операции
присваивания: a) вместо записи v = v # e; где # - арифметическая операция (операция над битовым представлением операндов), рекомендуется использовать запись v #= e; например, i = i + 2; ↔ i += 2; (знаки операций без пробелов);
б) вместо записи x = x # 1; где # - символы, обозначающие операцию инкремента (+), либо декре-
мента (-), x - целочисленная переменная (переменная-указатель), реко-
мендуется использовать запись: ##x; - префиксную или x##; - постфиксную.
Если эти операции используются в чистом виде, то различий между постфиксной и префиксной формами нет. Если же они используются в выражении, то в префиксной форме (##x) сначала значение x изменится на 1, а
затем будет использовано в выражении; в постфиксной форме (x##) сначала значение используется в выражении, а затем изменяется на 1.
36 Стандартная библиотека языка Си. Математические функции.
Стандартная библиотека языка Си
В
любой программе кроме операторов и
операций используются средства библиотек,
входящих в среду программирования,
которые облегчают создание программ.
Часть библиотек стандартизована и поставляется с компилятором.
В стандартную библиотеку входят функции, макросы, глобальные константы. Это файлы с расширением *.h, хранящиеся в папке include.
Стандартные математические функции
Математические функции языка Си декларированы в файлах math.h и stdlib.h.
В большинстве приведенных здесь функций аргументы x,y и результат выполнения имеют тип double. Аргументы тригонометрических функций должны быть заданы в радианах (2π радиан = 3600),
37 Строки в языке Си. Функции работы со строками.
Строки в языке Си
В языке C, в отличие от языка Pascal, отсутствует специальный строковый тип данных. Строка представляет
собой последовательность (одномерный массив) из одного или более символов, последним из которых
является нулевой символ таблицы ASCII '\0'. Это единственный вид строки, определенный в C.
Язык C поддерживает строковые константы, называемые строковыми литералами. Строковый литерал – это любая последовательность символов, заключенная в двойные кавычки ("…"). В конце литерала компилятор автоматически добавляет нулевой символ.
Не следует путать понятия строки и символа. Символьная константа заключается в одинарные кавычки, а строковая – в двойные.
Например, 'c' – символьная константа, а "c" – строковая константа.
Литерал можно задать с помощью директивы препроцессора define:
# define STR "…"
Строковая переменная может быть сформирована как одномерный массив типа char либо с помощью указателя на переменную типа char. Количество символов в массиве (объем выделяемой памяти) должно быть не меньше, чем количество символов в строке плюс один символ для хранения символа нуль.
Функции работы состроками
Язык C определяет строки как особый вид массивов, позволяя осуществлять их ввод/вывод как единого целого. Встроенные средства обработки строк в языке C отсутствуют, но строки настолько широко используются в программировании, что большинство компиляторов имеет специальные функции для работы со строками. Эти функции входят в состав заголовочного файла <string.h>.
Отметим ряд основных функций.
Определение длины строки:
strlen (S1) – длина строки S1, исключая нулевой символ.
Копирование строк:
strcpy (S1,S2), где S1 – указатель, S2 – указатель или константа.
Строка S2 копируется посимвольно в строку S1. Необходимо иметь в виду, что размер строк компилятором не сравнивается, и это возлагается на программиста.
Слияние строк (конкатенация):
strcat (S1,S2).
К концу строки S1 подсоединяется строка S2. Нулевой символ в конце строки S1 отбрасывается. Компилятор не следит, хватит ли в S1 места для S1 плюс S2.
Сравнение строк:
strcmp (S1,S2).
Сравниваются коды символов, находящихся на одинаковых позициях в строках S1 и S2, начиная с нулевой. В зависимости от компилятора результат работы функции следующий:
· возвращается нуль, если строки одинаковы, и значение отличное от нуля, если строки не совпадают;
· отрицательное число, если строка S1 «меньше» строки S2 с точки зрения алфавита (ASCII-кодов), и положительное, если «больше».
Данная функция используется для упорядочения по какому-либо критерию.
