Хелпикс

Главная

Контакты

Случайная статья





Основные вопросы к экзамену (развернутые).



Основные вопросы к экзамену (развернутые).

1. Процесс создания выполняемого кода (препроцессор, компилятор, компоновщик). Сборка проекта, состоящего из нескольких файлов.Показать каким образом и каком порядке происходит сборка проекта.

2.Встроенные типы данных. Представление данных в памяти. Дополнительный код. Числа с плавающей точкой. Пояснить, каким образом физически могут храниться числа в памяти компьютера.

3. Идентификаторы. Объявление. Инициализация. Пояснить, что такое идентификатор, каков синтаксис объявления. Область видимости переменных.

4. Оформление кода, форматирование. Рассказать об общепринятых принципах форматирования. Пояснить на примерах к каким ошибкам может приводить неправильное форматирование.

5. Расположение данных в памяти. Доступ к данным, адреса, указатели. Операции с указателями. Рассказать каким образом располагаются данные в памяти, что такое адрес в памяти, что такое указатель, какие операции возможны над указателями.

6. Строки в Си. Операции со строками стандартной библиотеки. Особенности хранения строк в Си. Основные операции со строками с помощью стандартной библиотеки (сравнение, копирование, объединение, поиск). Необходимо понимание реализации этих функций (то есть будьте готовы написать примерный код стандартных функций).

7. Операции. Типы операций, приоритеты.

8. Битовые и логические операции.

9. Операторы ветвления. Синтаксис, особенности. Смежные вопросы: понятие итерации, условия, пред- и пост- условия, инварианты циклов.

10. Массивы. Объявления, инициализация. Внутреннее устройство массивов, связь с указателями и памятью. Понятие массива с математической точки зрения. Операции над массивами данных в стандартной библиотеке (memcpy). Динамическое выделение памяти (malloc, calloc, free).

11. Двумерные массивы.

12. Подпрограммы. Объявления, реализация. Механизмы передачи и возврата данных. Механизм вызова подпрограмм. Синтаксис объявления и реализации функций. Случай объявления и реализации в разных файлах ­– пояснить работу компилятора и компоновщика.

13. Пользовательские типы данных. Перечисляемый тип. Структуры. Псевдонимы для типов. То есть enum, struct, typedef. Отличия typedef от макросов (#define).

14. Препроцессор языка Си. Макросы (с параметрами и без), недостатки использования макросов, альтернатива макросам. Удаление макросов. Условная компиляция. Include guard. Комментарии.

15. Работа с файлами. Режимы открытия файлов. Чтение и запись в текстовом (форматированном) и в бинарном режимах. То есть fopen, fclose, fprintf, fscanf, fread, fwrite. Общие сведения о потоках ввода-вывода в языке Си.

 

Дополнительные вопросы.

16. Место языка Си среди других языков программирования.

17. Понятие спецификации языка.

18. Явное и неявное преобразование типов.

19. Функции printf, scanf – синтаксис, особенности.

20. Безусловные циклы. Инварианты циклов.

21. Проверка границ массивов.

22. Копирование массивов.

23. Операция копирования (присвоения) для структур.

24. Принцип работы диспетчера памяти.

25. Рекурсия.

26. Жизненный цикл локальных переменных.

27. Обобщение потоков ввода-вывода. Стандартные потоки.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.