
- •Вопросы к экзамену по дисциплине программирование
- •Основные этапы решения задач на эвм. Критерии качества программы.
- •2. Жизненный цикл программы. Постановка задачи и спецификация программы.
- •3. Алгоритм и его свойства. Блок-схемы алгоритмов
- •4. Линейная алгоритмическая структура. Типовые примеры
- •5. Циклические алгоритмические структуры. Основные операторы ветвления. Типовые примеры
- •8. Общая характеристика языка Си. Возможности и особенности языка Си. Элементы, алфавит языка Си.
- •9. Программа, функция, оператор. Константы и переменные.
- •10. Категории типов данных. Представление чисел в эвм с фиксированной и плавающей точкой.
- •11. Представление символов в эвм. Основные типы данных, инициализация данных.
- •Категории типов данных
- •Инициализация данных
- •12. Операции и выражения. Выражения и присваивания. Операнды. Операции. Приоритеты операций и порядок вычисления. Побочные эффекты.
- •Выражения и присваивания
- •1.3.1. Операнды и операции
- •Приоритеты операций и порядок вычислений
- •13 Преобразование типов. Пустой оператор. Составной оператор. Преобразование типов
- •Пустой оператор
- •Составной оператор
- •14. Операторы управления вычислительным процессом. Условные операторы условия if.
- •15. Операторы циклов (for, while, do- while).
- •Оператор for
- •Оператор while
- •Оператор do while
- •16. Операторы переходов (break, continue, return, goto). Оператор break
- •Оператор continue
- •Оператор goto
- •17. Си. Функции. Основные понятия. Определение функции. Вызовы функций.
- •18. Передача аргументов в функцию и из функции. Определение и описание указателей.
- •19 Функция main()
- •23 Указатели и массивы. Массив как параметр функции.
- •25. Типы программного обеспечения
- •Системное программное обеспечение
- •Прикладное программное обеспечение
8. Общая характеристика языка Си. Возможности и особенности языка Си. Элементы, алфавит языка Си.
Си - язык системного программирования; его принято относить к языкам среднего уровня, позволяющим выполнять как стандартные высокоуровневые подпрограммы, так и ассемблерно‑ориентированный код.
Можно выделить следующие основные особенности Си:
легкий доступ к аппаратным средствам компьютера, позволяющий писать высокоэффективные программы;
высокая переносимость написанных на Си программ - как между компьютерами с различной архитектурой, так и между различными операционными средами;
принцип построения "что пишем, то и получаем", т. е., в состав компилятора не включен код, который мог бы проверить корректность работы программыв процессе ее выполнения;
в транслятор не включена информация о стандартных функциях, отсутствуют операции, имеющие дело непосредственно с составными объектами;
компактный синтаксис, потенциально приводящий к трудноуловимым ошибкам.
простую языковую базу, из которой вынесены в библиотеки многие существенные возможности, вроде математических функций или функций управления файлами;
ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования;
систему типов, предохраняющую от бессмысленных операций;
использование препроцессора для, например, определения макросов и включения файлов с исходным кодом;
непосредственный доступ к памяти компьютера через использование указателей;
минимальное число ключевых слов;
передачу параметров в функцию по значению, а не по ссылке (при этом передача по ссылке выполняется с помощью указателей);
указатели на функции и статические переменные
области действия имён;
записи — определяемые пользователем собирательные типы данных (структуры), которыми можно манипулировать как одним целым;
Вот некоторые особенности других языков программирования, которых не имеет Си:
автоматическое управление памятью;
поддержка объектно-ориентированного программирования (при этом первые версии C++ генерировали код программы на языке Си);
замыкание;
вложенные функции (существуют компиляторы языка Си реализующие эту функцию, например компилятор GNU);
полиморфизм функций и операторов;
встроенная поддержка многозадачности и сети
функции высшего порядка
Одним из последствий высокой эффективности и переносимости Си стало то, что многие компиляторы, интерпретаторы и библиотеки других языков высокого уровня часто выполнены на языке Си.
1. Символы, используемые для образования ключевых слов и идентификаторов (табл.1). В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды.
Таблица 1
Прописные буквы латинского алфавита |
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
Строчные буквы латинского алфавита |
a b c d e f g h i j k l m n o p q r s t u v w x y z |
Символ подчеркивания |
_ |
2. Группа прописных и строчных букв русского алфавита и арабские цифры (табл.2).
Таблица 2
Прописные буквы русского алфавита |
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ы Ь Э Ю Я |
Строчные буквы русского алфавита |
а б в г д е ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я |
Арабские цифры |
0 1 2 3 4 5 6 7 8 9 |
3. Знаки нумерации и специальные символы (табл. 3). Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций.
Таблица 2
Символ |
Наименование |
Символ |
Наименование |
, |
запятая |
) |
круглая скобка правая |
. |
точка |
( |
круглая скобка левая |
; |
точка с запятой |
} |
фигурная скобка правая |
: |
двоеточие |
{ |
фигурная скобка левая |
? |
вопросительный знак |
< |
меньше |
' |
апостроф |
> |
больше |
! |
восклицательный знак |
[ |
квадратная скобка |
| |
вертикальная черта |
] |
квадратная скобка |
/ |
дробная черта |
# |
номер |
\ |
обратная черта |
% |
процент |
~ |
тильда |
& |
амперсанд |
* |
звездочка |
^ |
логическое не |
+ |
плюс |
= |
равно |
- |
мину |
" |
кавычки |
4. Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).
5. Кроме выделенных групп символов в языке СИ широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр