Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Решенные оветы на теорию Си.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
166.91 Кб
Скачать

Язык программирования Си

1. Лексические основы языка Си. Константы и модификаторы3. Выражения

2. Структура программы на языке Си. Функция main.

3. Функции. Структура функций. Разновидности. Особенности использования.

4. Типы данных. Классификация типов.

5. Базовые типы данных. Определение имени типа. Перечисление.

6. Представление данных в памяти компьютера.

7. Явное / Неявное преобразование типов. Абстрактный описатель.

8. Операторы. Классификация операторов. Приоритеты операторов и порядок их

выполнения.

9. Инструкции языка Си, их классификация. Простые инструкции.

10. Инструкции языка Си, их классификация. Составные инструкции.

11. Производные типы данных. Статические массивы. Особенности использования

массивов в функциях.

12. Динамические массивы. Особенности обработки динамических массивов.

13. Производные типы данных. Указатели. Особенности использования. Адресная

арифметика.

14. Операции над указателями. Указатели и модели памяти. Модификаторы.

15. Массивы и указатели. Передача и возврат параметров в функцию.

16. Указатели на функции. Особенности использования.

17. Указатели на указатели. Косвенная адресация. Многоуровневые ссылки.

18. Динамические структуры данных. Списки. Особенности использования.

19. Строки. Операции над строками. Указатели на строки.

20. Структурные типы данных: структуры. Особенности использования.

21. Структуры и объединения. Особенности использования.

22. Структуры. Массивы структур. Передача массивов структур в функции.

23. Указатели и структуры. Передача структур по указателю.

24. Структура битовых полей. Особенности использования.

25. Основы файловой системы: файл, каталог, дисковод, полное имя файла, внутреннее

представление информации в файле. Типы файлов.

26. Файлы. Особенности обработки файлов последовательного доступа.

27. Файлы. Особенности обработки файлов произвольного доступа.

28. Память. Классы памяти. Модификаторы классов памяти. Область видимости,

время жизни и место размещения объекта в памяти.

29. Передача параметров в функцию main. Аргументы командной строки. Директивы

препроцессора.

30. Функции с переменным списком параметров. Механизмы передачи параметров в

функции с переменным списком параметров.

31. Перегрузка функций. Встроенные функции.

32. Передача в функции аргументов по умолчанию.

33. Шаблоны функций. Особенности и использования.

Структурное программирование

1. Достоинства, отличительные особенности и сравнительная характеристика языка

программирования Си.

2. Особенности отладки программ в среде Visual C++ Studio .NET.

3. Этапы разработки программы на языке Си в среде Visual C++ Studio .NET.

4. Основные принципы и подходы структурного программирования:.

5. Идеология модульного программирования, уровни абстракции.

6. Базовые структуры управления, сквозной структурный контроль.

7. Модульное программирование. Структура модуля. Законы видимости

идентификаторов.

8. Точка входа в программу.

9. Создание файла проекта. Заголовочные файлы и файлы реализации. Законы видимости

идентификаторов.

10. Создание файла проекта. Объектные файлы. Раздельная компиляция. Make-файлы.

Создание библиотек пользователя.

11. Оптимизация кода – алгоритмы, методы и приемы программирования.

12. Этапы сборки приложения с использованием компилятора GCC в среде разработки

Linux / QT Creator. .

13. Особенности сборки программы в среде разработки QT-Creator.

14. Контроль ошибок в процессе сборки программы: ошибки сборки, ошибки компиляции,

утечки памяти, выход за границы,…

15. Интеграция программ. Использование ассемблерных вставок, вставок для МК. Си-код

для гаджетов.

16. Особенности использования, преимущества и недостатки кроссплатформенной среды

разработки QT creator.

17. Особенности использования, преимущества и недостатки компилятора GCC.

Визуальное программирование.

18. Основные принципы и подходы технологии событийного программирования.

19. Особенности среды визуального программирования WFA (Windows Forms

Application). Создание графического интерфейса.

20.Управляемый код и данные. Особенности создания приложений в среде CLR.

1. Лексические основы языка Си. Константы и модификаторы3. Выражения

Лексические основы Си

Программа, написанная на языке Си, состоит из операторов. Каждый оператор вызывает выполнение некоторых действий на соответствующем шаге выполнения программы.

При написании операторов применяются латинские прописные и строчные буквы, цифры и специальные знаки. К таким знакам, например, относятся: точка (.), запятая (,), двоеточие (:), точка с запятой (;) и др. Совокупность символов, используемых в языке, называется алфавитом языка.

Из символов алфавита формируются лексемы языка:

  • идентификаторы, которые используются в качестве имени объекта;

  • ключевые (служебные, иначе зарезервированные) слова;

  • константы;

  • знаки операций;

  • разделители (знаки пунктуации).

Комментарии обрамляются символами /* и */. Их можно записывать в любом месте программы.

Пробелы, символы табуляции и перехода на новую строку в программах на Си игнорируются. Это позволяет записывать различные выражения в хорошо читаемом виде.

Константы

Константа — это фиксированное значение, которое не может быть изменено программой. Константа может относиться к любому базовому типу. Способ представления константы определяется ее типом.

Символьные константы заключаются в одинарные кавычки.

Используя суффикс, можно явно указать тип числовой константы.

Шестнадцатеричная константа начинается с 0х, а восьмеричная — с 0.

В языке С определены специальные символьные константы - ESC-последовательности( \n, \t, \r \b и т.д.). Их можно использовать вместо ASCII-кодов для обеспечения лучшей переносимости программы.

Модификаторы

Объект некоторого базового типа может быть модифицирован. С этой целью используются специальные ключевые слова, называемые модификаторами. В стандарте ANSI языка Си имеются следующие модификаторы типа:

  • unsigned

  • signed

  • short

  • long

Модификаторы записываются перед спецификаторами типа, например: unsigned char. Если после модификатора опущен спецификатор, то компилятор предполагает, что этим спецификатором является int.

Выражения

Выражения состоят из операторов, констант, функций и переменных. В языке С выражением является любая правильная последовательность этих элементов.

Большинство выражений в языке С по форме очень похожи на алгебраические, часто их и пишут, руководствуясь правилами алгебры.

Порядок вычисления подвыражений в выражениях языка С не определен. Компилятор может самостоятельно перестроить выражение с целью создания оптимального объектного кода.

Если в выражении встречаются переменные и константы разных типов, они преобразуются к одному типу. Компилятор преобразует "меньший" тип в "больший".

Для повышения удобочитаемости программы при записи выражений можно использовать пробелы и символы табуляции. Например, следующие два оператора эквивалентны:

x=10/y~(127/x);

x = 10 / y ~(127/x);

Лишние скобки, если они не изменяют приоритет операций, не приводят к ошибке и не замедляют вычисление выражения.

2. Структура программы на языке Си. Функция main.

Программа на языке Си это текстовый файл с расширением <имя>.cpp

Текст программы имеет определенную структуру:

1. заголовок

2. включение необходимых внешних файлов

3. пользовательские определения

4. объявление глобальных переменных

5. описание функций - обработчиков прерываний

6. описание других функций используемых в программе

7. функция main - это единственный обязательный пункт !

Программа на Си начинает работу с функции main(), по необходимости из main() вызываются другие функции программы, по завершении работы функции программа возвращается в main(), в то место, откуда функция была вызвана.

Функция main

<директивы процессора>

//глобальные параметры

<объявление и определение констант, типов, переменных, функций>

[int\void] main ([<список параметров>])

{

//локальные параметры

<объявление и определение констант, типов, переменных >

<инструкции языка>

[return 0];

}