- •Какие типы данных Вы знаете?
- •Как узнать размер типа?
- •Что такое модель памяти? Какие модели памяти Вы знаете?
- •Назовите размеры стандартных типов в используемой Вами модели памяти.
- •Что такое оператор typedef?
- •Для чего предназначена директива препроцессора #define?
- •Что такое сигнатура функции?
- •Что означает директива #include?
- •Что такое #if, #ifdef, #endif? Приведите пример применения.
- •Как можно выделить память?
- •Как можно освободить память?
- •Как проверить, что память выделилась?
- •Как создать массив на стеке? Любой ли массив можно создать на стеке?
- •Что такое "выделение памяти в куче"?
- •Что такое очередь? Как она устроена? Какие операции в ней есть?
- •Что такое куча (пирамида, Heap)?
- •2. "Двусвязный список"
- •3. Задача сортировки n объектов.
- •6. Атд "Очередь с приоритетом"
- •7. Поразрядная сортировка
- •8. Сортировка слиянием
- •9. Сортировка Шелла.
- •10. Список, стек, очередь
- •11. Быстрая сортировка-2
Для чего предназначена директива препроцессора #define?
Команда #define используется для организации замены строки по всему файлу, где она указана. Другими словами, #define приводит к тому, что компилятор (препроцессор) проходит по всему файлу и делает замену имя-макроса на заменяемая-строка.
Директива процессора define используется, чтобы создать константы. Вот её синтаксис: #define идентификатор значение
_______________________________________________________________________________
Что такое сигнатура функции?
Список параметров, которые даются на вход. Спецификация, включающая имя функции, а также статические типы ее параметров и результата.
_______________________________________________________________________________
Что означает директива #include?
#include позволяет включать текст других файлов в текст вашей программы.
Файлы, имена которых находятся в директивах #include, могут в свою очередь содержать другие директивы #include. Они называются вложенными директивами #include.
Количество допустимых уровней вложенности у разных компиляторов может быть разным.
________________________________________________________________________________
В чем отличие использования "" от <> в директиве #include?
Обе директивы #include "stdio.h" и #include <stdio.h> дают компилятору указание читать и компилировать заголовок для библиотечных функций системы ввода/вывода.
Способ поиска файла зависит от того, заключено ли его имя в двойные кавычки или же в угловые скобки.
Если имя заключено в угловые скобки, то поиск файла проводится тем способом, который определен в компиляторе. Часто это означает поиск определенного каталога, специально предназначенного для хранения таких файлов.
Если имя заключено в кавычки, то поиск файла проводится другим способом. Во многих компиляторах это означает поиск файла в текущем рабочем каталоге. Если же файл не найден, то поиск повторяется уже так, как будто имя файла заключено в угловые скобки.
Что такое #if, #ifdef, #endif? Приведите пример применения.
Организация условной обработки директив
Эти директивы позволяют подавить компиляцию части исходного файла, проверяя постоянное выражение или идентификатор.
Результат проверки определяет, какие блоки текста будут переданы в компилятор и какие блоки текста будут удалены из исходного файла при предпроцессорной обработке.
Приведенная ниже программа выполняет подключение библиотек в зависимости от установленных констант.
#ifdef(GRAPH)
#include //подключение графической библиотеки
#endif
Если ранее была задана константа с именем GRAPH через директиву #define, то будет подключена графическая библиотека с помощью директивы #include.
Отличие директивы #if от директивы #ifdef заключается в возможности проверки более разнообразных условий, а не только существуют или нет какие-либо константы. Например, с помощью директивы #if можно проводить такую проверку:
#if SIZE == 1
#include // подключение математической библиотеки
#elif SIZE > 1
#include // подключение библиотеки обработки массивов
#endif
__________________________________________________________________________________
