- •1) Базовые элементы языка с. Алфавит и словарь языка (в1б1, в3б3)
- •2) Основные типы данных. Классификация их типов. Модификация базовых типов. (в1б2, в3б17)
- •3) Константы (в1б3, в3б2)
- •4) Переменные (в1б4, в3б16)
- •5) Структура с-программы. Понятие локальных и глобальных переменных. Функция main(). Директивы препроцессора (# include и #define). Комментарии. (в1б5, в3б1)
- •6) Операции языка с. Арифметические, логические операции. Поразрядные операции. (в1б6, в3б15)
- •7. Операции языка с. Операция присваивания и отношения. Операция определения размера. Оператор последовательного вычисления. (в1б7, в2б30)
- •8. Операции языка с. Условная операция. Операция (), операция []. (в1б8, в3б14)
- •9) Приоритет операций и порядок вычислений (в1б9, в2б29)
- •10) Основные сведения о вводе-выводе. (в1б10, в3б13)
- •11) Ввод-вывод символов (в1б11, в2б28)
- •12) Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода. (в3б12, в1б12)
- •13) Операторы языка с. Условные операторы (if, switch). (в1б13, в2б27)
- •14) Операторы цикла (while, for, do while )(в1б14, в3б11)
- •15) Операторы безусловного перехода ( break, continue, go to, return) (в1б15, в2б26)
- •16) Одномерные массивы. (в1б16, в3б10)
- •17) Строковый литерал. Чтение и запись строк. (в1б17, в2б25)
- •18)Двухмерные массивы. Массивы строк (в1б18, в3б9)
- •19) Инициализация массива. (в1б19, в2б24)
- •20) Способы доступа к элементом массива. (в1б20, в3б8)
- •22) Указательные переменные. Операции получения адреса (&) и раскрытие ссылка (*) (в1б22, в3б7)
- •23) Указательные выражения. Адресная арифметика. (в1б23, в2б22)
- •24) Связь массивов и указателей (в1б24,в3б6)
- •25) Функции динамического распределения памяти (в1б25, в2б21)
- •26) Динамическое выделение памяти для массивов. (в1б26, в3б5)
- •27) Функции. Определения функций. Оператор return.( в1б27, в3б20)
- •28) Функции. Прототипы функции. (в1б28, в3б4)
- •29) Функции. Вызов функций: вызов по значению и по ссылке. (в1б29, в2б19)
- •30) Передача массива в функцию. (в1б30, в3б27)
- •31) Классы памяти. Область видимости. (в2б1, в3б28)
- •32) Аргумент функции main(): argv и argc (в2б2, в3б26)
- •33) Рекурсия. (в2б3, в3б29)
- •34) Вызов библиотечных функций(в2б4, в3б25)
- •35) Директива препроцессора #define: создание макрофункций с помощью директивы #define (в2б5, в3б30)
- •36) Директивы условной компиляции #if, #else, #elif, #endif, #ifdef, #ifndef (в2б6, в3б24)
- •37) Понятие структуры. Доступ к членом структуры (в2б7)
- •38) Присваивание структур (в2б8, в3б23)
- •39) Массивы структуры(в2б9)
- •40) Передача членов структур функциям. Передача целых структур функциям. (в2б10, в3б22)
- •41) Указатели на структуры. Средство typedef (в2б11)
- •42) Понятие объединение и перечисления. Битовые поля. (в2б12,в3б21)
- •44) Методы поиска: последовательный и двоичный поиск. (в2б14, в3б20)
- •45) Основы файловой системы. Стандартные потоки. Указатель файла. Открытые файлы. Закрытые файлы. (в2б15)
- •46) Форматированный ввод-вывод в файл (в2б16, в2б17, в3б19)
- •48) Понятие очереди, стеков, связанных списков и деревьев. (в2б12, в3б18)
4) Переменные (в1б4, в3б16)
Переменная – именованный участок памяти, в котором хранится значение, которое должно быть изменено
программой. Все переменные перед их использованием должны быть объявлены.
В языке СИ для хранения различных данных используются переменные. Каждая переменная имеет свое имя, и ей можно присваивать различные значения. Используя переменные, можно строить различные выражения. Каждое выражения представляет собой одну или несколько переменных и числовых констант, связанных арифметическими и (или) логическими операциями. В языке СИ переменные делятся на типы. Переменная каждого типа может принимать значения из одного определенного диапазона. Например: переменная типа char — это только целые числа. В языке СИ любая переменная, прежде чем она будет использована, должна быть описана. При описании задается ее тип. В дальнейшем диапазон принимаемых значений должен строго соответствовать выбранному типу переменной. Описание переменной и задание ее типа необходимы потому, что оттранслированная с языка СИ программа выделяет для хранения значений каждой переменной определенные ресурсы памяти. Посмотрим, как выглядит строка описания переменной в программе. Она представляет собой запись следующего вида: Тип Имя. Имя переменной выбирает программист. Допускается использование только латинских букв, цифр и символа подчеркивания. Начинаться имя должно с буквы или символа подчеркивания.
5) Структура с-программы. Понятие локальных и глобальных переменных. Функция main(). Директивы препроцессора (# include и #define). Комментарии. (в1б5, в3б1)
Комментарий не явл лексемой. Внутри комментария м/исп-ть любые допустимые символы. Компилятор комментарий игнорирует. В С комментарий ограничивается парами символов (*…*). Такой комментарий м записывать в неск строк. В С++ был введен 1-строчный коммент-й, начинающийся с //.
Программа написанная на языке С состоит из одной или нескольких функций. Причем одна функция обязательно имеет имя main() –это главная функция ее назначение управление всей работой программы. Данная функция не имеет параметров и не возвращает результат, но наличие () обязательно.
Общая структура программы имеет вид:
<директива препроцессора>
<определение типов пользователей-typedef>
< описание прототипов функции >
<определение главных переменных>
<функции>
Структура функции:
<класс памяти>_<тип результата>_<имя функции> (объявление параметров)
{// начало функции
<операторы >
}// конец функции
Перед компиляцией программа на языке С обрабатывает спец. программой-препроцессором, который работает под управлением директив они начинаются с # , за которым следует наименование директивы, указывающие текущую операцию препроцессора. Он решает ряд задач по предварительной обработке программы основной из которых явл. подключение к подпрограмме заголовочных файлов с объявлением стандартных библиотечных функций, которые используются в программе. Наименование такой директивы include. Общий формат записи:
#include<имя файла. h> h- расширение заголовочных файлов.
Если имя файла заключено а < > то поиск файла происходит в стандартном каталоге с этим файлом, если же в “ ”, то его поиск производится в текущем каталоге.
Заголовочные файлы:
1. stdio.h-поддерживает ввод\вывод данных
2.conio.h- управляет текстовым режимом экрана. Содержит описание функций: clrscr()-очистка экрана.
getch()-ожидание ввода какого-либо символа. С помощью этой функции осуществляется задержка экрана до нажатия какой-либо клавиши.
3. math.h- содержит прототипы матем. функций.
Второе основное назначения препроцессора-это обработка макроопределений. Макроподстановка #define(определить) имеет вид:
#define идентификатор значений
Например: #define PI 3,14157……, которой определяется константой PI действует до конца программы, в ходе препроцессорной обработки программы появление в тексте идентификатора PI везде заменяется указанным значением.
Понятие локальных и глобальных переменных
Для того, чтобы определяемая функция могла выполнять какие-либо действия, она должна использовать переменные. В языке С все переменные должны быть объявлены до их использования. Объявления устанавливают соответствие имени и атрибутов переменной, функции или типа. Определение переменной вызывает выделение памяти для хранения ее значения.
Область действия переменных – правила, которые устанавливают, какие данные доступны из данного места программы.
В языке С каждая функция – отдельный блок программы. Попасть в тело функции нельзя иначе как через вызов данной функции, в частности, нельзя операторам локального перехода goto перейти в середину другой функции.
Локальная переменная – переменная, объявленная внутри блока, в частности – внутри функции.
Язык С поддерживают правило: переменная может быть объявлена внутри любого блока программы.
Локальная переменная доступна внутри блока, в котором она объявлена. При выходе из блока эта переменная (и ее значение) теряется.
Глобальная переменная – переменная, объявленная вне какой-либо функции. В отличие от локальной переменной, глобальная переменная может быть использована в любом месте программы, но перед ее первым использованием она должна быть объявлена. Область видимости глобальной переменной – вся программа.
Комментарий – это набор символов, которые игнорируются компилятором, на этот набор символов, однако, накладываются следующие ограничения. Внутри набора символов, который представляет комментарий не может быть специальных символов определяющих начало и конец комментариев, соответственно (/* и */). Отметим, что комментарии могут заменить как одну строку, так и несколько. Например:
/* комментарии к программе */
/* начало алгоритма */
или
/* комментарии можно записать в следующем виде, однако надо быть осторожным, чтобы внутри последовательности, которая игнорируется компилятором, не попались операторы программы, которые также будут игнорироваться */
Неправильное определение комментариев.
/* комментарии к алгоритму /* решение краевой задачи */ */
или
/* комментарии к алгоритму решения */ краевой задачи */