- •1.Базовые элементы языка с. Алфавит и словарь языка
- •2. Основные типы данных. Классификация их типов. Модификация базовых типов.
- •3. Константы.
- •4. Переменные.
- •5. Структура с - программы. Понятие локальных и глобальных переменных. Функция main().Директивы препроцессора (#include и #define). Комментарии.
- •6. Операции языка с. Арифметические, логические операции. Поразрядные операции.
- •7. Операции языка с. Операция присваивания и отношения. Операция определения размера. Оператор последовательного вычисления.
- •8. Операции языка с. Условная операция. Операция (), операция [].
- •9. Приоритет операций и порядок вычислений.
- •11. Ввод-вывод символов
- •12. Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода.
- •13. Операторы языка с. Условные операторы (if и switch).
- •16. Одномерные массивы.
- •17. Строковый литерал. Чтение и запись строк.
- •18. Двухмерные массивы. Массивы строк.
- •20.Способы доступа к элементам массива
- •21. Понятие указателя. Инициализация указателей.
- •22. Указательные переменные. Операции получения адреса (&) и раскрытия ссылки(*).
- •23. Указательные выражения. Адресная арифметика.
- •Динамическое выделение памяти для массивов.
- •Функции. Определения функций. Оператор return.
- •Тип_результата id_функции (список);
- •Функции. Прототипы функций.
- •Тип_результата id_функции (список);
- •Функции. Вызов функций: вызов по значению и по ссылке.
- •Тип_результата id_функции (список);
- •Передача массива в функцию.
- •Классы памяти. Область видимости.
- •Аргументы функции main(): argv и argc.
- •Вызов библиотечных функций.
- •Директива препроцессора #define: создание макрофункций с помощью директивы #define.
- •Директивы условной компиляции #if, #else, #elif, #endif, #ifdef, #ifndef.
- •Понятие структуры. Доступ к членам структуры.
- •Присваивание структур.
- •Id_структуры . Id_поля
- •Передача членов структур функциям. Передача целых структур функциям.
- •Указатели на структуры. Средство typedef.
- •Понятия объединения и перечисления. Битовые поля.
- •Основы файловой системы. Стандартные потоки. Указатель файла. Открытие файла. Закрытие файла.
16. Одномерные массивы.
Массивы – это группа элементов одинакового типа (double, float, int и т.п.). Из объявления массива компилятор должен получить информацию о типе элементов массива и их количестве. Объявление массива имеет два формата:
спецификатор-типа описатель [константное - выражение];
спецификатор-типа описатель [ ];
Описатель – это идентификатор массива.
Спецификатор-типа задает тип элементов объявляемого массива. Элементами массива не могут быть функции и элементы типа void.
Константное-выражение в квадратных скобках задает количество элементов массива. Константное-выражение при объявлении массива может быть опущено в следующих случаях:
- при объявлении массив инициализируется,
- массив объявлен как формальный параметр функции,
- массив объявлен как ссылка на массив, явно определенный в другом файле.
Одномерные массивы
Одномерный массив будет записан как:
тип <имя массива>[размер];
Тип – базовый тип элементов массива.
Размер – количество элементов одномерного массива.
Пример:
int x[] = { 1, 3, 5 };
double b[10]; // вектор из 10 элементов, имеющий тип double
Существует 2 способа описания массивов:
Инициализированный
int x[] = { 1, 3, 5 };
Неинициализированный
double b[10];
int i, mas[10];
for (i=0;i<10;i++)
mas[i]=i;
Ввод элементов массива осуществляется следующим образом:
for (i=0;i<n;i++)
{ printf (“\n a[%d]=,i);
scanf (“%d,&a[i]);}
Задать массив можно с помощью случайных чисел, те автоматическим заполнением массива. Функция RANDOM(K).
Randomize(); //инициализация базы случайных чисел
for (i=0;i<n;i++)
a[i]=random(100);
Вывод элементов массива можно осуществить следующим образом:
for (i=0;i<n;i++)
printf (“a[%d]=%d\t”,i+1,a[i]);
printf(“\n”);
17. Строковый литерал. Чтение и запись строк.
Строковый литерал
В С работа со строками реализована путем использования одномерного массива типа char.
Символьная строка – одномерный массив типа char, заканчивающийся нулевым байтом. Нулевой байт – байт, кождый бит которого равен 0. Для него определена символьная константа ’\0’, т.е. если строка должна содержать n символов, то в описании массива следует указывать n+1 элемент.
Пример:
char str[11];
Строковая константа – последовательность символов, заключенных в ковычки.
Пример:
str = "Строка";
В конце строки не ставится "\0" – это делает компилятор. При инициализации строки символов ее
можно рассматривать как одномерный массив.
char str[] = "Строка";
Можно инициализировать строку через указатель на тип char (присвоить указателю значение строковой константы). При этом не нужно заранее выделять память для строки:
char *p;
p = "строка" или char *p = "Строка";
Чтение и запись строк
1. Функция scanf() со спецификатором ввода %s – вводит символы до первого пробельного символа.
2. Специальная библиотечная функция gets(), объявленная в файле , позволяет вводить строки,
содержащие пробелы. Ввод оканчивается нажатием клавиши Enter.
Все эти функции ввода строковых данных автоматически ставят в конец нулевой байт. В качестве параметров в этих функциях используется имя символьного массива.
Пример:
main()
{
//объявление трехсимвольных массивов (трех строк), максимальное количество символов 9
char str1[10], str2[10], str3[10];
clrscr(); // очистка экрана
printf("Пример ввода строк разными способами");
// ввод строки с помощью функции gets
printf("Введите строку 1: ");
gets(str1);
// ввод строки с помощью функции scanf
printf("Велите строку 2: ");
scanf("%s", str2);
printf("Введите строку 3: ");
scanf("%s", str3);
}
Вывод строковых данных производится функциями: printf, puts, cout. Данные функции выводят содержание символьного массива до нулевого байта. Также вывод строка можно осуществить с помощью указателя на строку, представляя строку как набор отдельных символов, связанных общим символом.
Тогда строка будет в цикле посимвольно выводиться в помощью функции putchar.
Пример:
// объявление указателя p на строку с инициализацией
char *p = "Hello! ";
/* в цикле while, пока значение указателя не равно концу строки, осуществляется
посимвольный вывод строки с "передвижения" указателя на следующий символ строки */
while (*p! = ’\0’)
putchar(*(p++));