
- •5. Кодовые таблицы ascii и ansi. Работа с символами и их кодами.
- •6. Константы в языке Си: целые, вещественные с фиксированной и плавающей точкой, символьные, строковые, null. Именованные константы.
- •8. Ввод информации в консольном стиле. Преобразование вводимых данных.
- •9. Синтаксис операторов языка Cи, операторы-выражения. Ошибки компиляции, времени выполнения, логические (смысловые).
- •10. Последовательность выполнения операций. Приоритет операций. Скобки.
- •12. Арифметические операции
- •15. Условные операторы (if, switch).
- •16. Тернарная операция "?".
- •19. Одномерные массивы. Инициализация одномерных массивов. Инициализация массива символов.
- •21. Циклические алгоритмы. Основные требования при использовании циклических (итерационных) алгоритмов.
- •23. Оператор цикла с предусловием и коррекцией for.
- •24.Вложенные циклы, последовательность выполнения входящих в них операторов. Простейший пример их применения к двумерным массивам.
- •26. Указатели, операции * и &. Указатель на указатель.
- •27. . Операции над указателями.
- •28. Связь указателей с массивами.
- •29. Работа с динамической памятью.
- •30. Строковые данные в языке Си как массивы символов. Стандартные функции работы со строками.
- •31. Тип String. Операции с типом String. Методы класса String.
- •32. Преобразование переменных типа String и массивов char друг в друга и в другие типы.
- •33. Краткая характеристика файлов *.H. Стандартные библиотечные функции. Стандартные арифметические функции.
- •3 4. Функции пользователя - способы описания, операция вызова функции.
- •35. Способы передачи информации в функцию и из нее.
- •36. Область видимости. Понятие блока.
- •37. Классы памяти и время жизни
- •38. Препроцессор, его роль. Директивы препроцессора. Директива #include.
19. Одномерные массивы. Инициализация одномерных массивов. Инициализация массива символов.
В программе одномерный массив объявляется следующим образом:
тип ID_массива [размер] = {список начальных значений};
тип – тип элементов массива;
размер – количество элементов в массиве. Список начальных значений используется при необходимости задать начальные значения (инициализировать элементы массива), он может отсутствовать. Значения в списке разделяются запятыми. (Такое задание списка элементов массива допустимо только при его инициализации и недопустимо в операции присваивания).
Примеры объявления массива:
int a[6];
double x[5]={2, 3.5, -4.5e3, 2.34, -.7 };
Если в группе {…} список значений короче, то оставшимся элементам присваивается 0.
Обращение к конкретному элементу массива в программе осуществляется путем записи имени массива и за ним в квадратных скобках - номера элемента
20. Многомерные (в т.ч. двумерные) массивы. Инициализация многомерных массивов. Многомерные массивы отличаются от одномерных только тем, что каждый элемент характеризуется не одним, а двумя или более индексами. Они используются, например, для хранения таблиц (каждый элемент таблицы имеет 2 индекса - № строки и № столбца).
Декларация многомерного массива имеет следующий формат:
тип ID [размер1] [размер2]…[размерN] =
{ {список начальных значений},
{список начальных значений},
… };
Списки начальных значений – атрибут необязательный.
Пример:
int a[3][3]={ {1,2,3}, {4,5,6}, {7,8,9} };
Аналогично, при обращении к конкретному элементу многомерного массива указывается имя массива и затем - последовательно индексы элемента, каждый в квадратных скобках.
21. Циклические алгоритмы. Основные требования при использовании циклических (итерационных) алгоритмов.
Под циклом понимается организованное повторение некоторой последовательности операторов.
Любой цикл состоит из кода цикла, т.е. тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.
Один проход цикла называется шагом или итерацией. Проверка условия продолжения цикла происходит на каждой итерации либо до выполнения кода цикла (с предусловием), либо после выполнения (с постусловием).
Для организации циклов используются специальные операторы. Перечень разновидностей операторов цикла языка Си следующий:
– оператор цикла с предусловием;
– оператор цикла с постусловием;
–оператор цикла с предусловием и коррекцией.
1. При построении любого цикла надо не забывать тот факт, что в нем всегда явно или неявно присутствуют четыре основных элемента: начальные установки, код цикла, модификация параметра цикла и проверка условия на продолжение цикла.
2. Если количество повторений цикла заранее не известно (реализуется итерационный процесс), необходимо предусмотреть аварийное завершение цикла при получении достаточно большого количества итераций.
3. При использовании бесконечного цикла обязательно необходима организация выхода из цикла по условию.
22. Операторы цикла с предусловием (while) и с постусловием (do - while).
Общий вид записи такой конструкции:
do
код цикла;
while (выражение);
Код цикла будет выполняться до тех пор, пока выражение истинно. Все, что говорилось выше справедливо и здесь, за исключением того, что данный цикл всегда выполняется хотя бы один раз, даже если изначально выражение ложно.
Здесь сначала выполняется код цикла, после чего проверяется, надо ли его выполнять еще раз.
Следующая программа будет вас приветствовать до тех пор, пока будем вводить символ Y или y (Yes). После введения любого другого символа цикл завершит свою работу.
#include <stdio.h>
void main(void)
{
char answer;
do {
puts(" Hello! => ");
scanf("%c", &answer);
fflush(stdin);
}
while ((answer=='y')||(answer=='Y'));
}
Результат выполнения программы:
Hello! => Y
Hello! => y
Hello! => d