К экзамену по курсу «Программирование и алгоритмизация»




 

 

  1. Структура программы на языке С++. Директивы препроцессора - > объявление внешних объектов -> начало гл.функции {тело гл.функции} конец главной функции

 

 

  1. А)Основные типы переменных в С. Б)Правила определения переменных и типов. В)Инициализация данных. А) int- целый, char­- символьный, float- с плавающей точкой одинарной точности, double- с плавающей точкой двойной точности, bool – тру фолс, string- требуется для работы со строками.

Б) Объявление переменной имеет следующий формат:

[ модификаторы] спецификатор_типа идентификатор [, идентификатор]...
Модификаторы - ключевые слова signed, unsigned, short, long.
Спецификатор типа - ключевое слово char или int, определяющее тип объявляемой переменной.
Идентификатор - имя переменной.
Пример: char x; int a, b, c; unsigned long long y;

B) При объявлении переменную можно проинициализировать, то есть присвоить ей начальное значение. Сделать это можно следующим образом. Int x=100, а можно сначала объявить переменную, а затем отдельно инициализировать. Int x; x=100; Оператор "=" не следует понимать как равенство. Например, выражение a = 5; следует читать как "присвоить переменной a значение 5". Примеры: x = 5 + 3; // сложить значения 5 и 3, // результат присвоить переменной x (записать в переменную x)

 

 

  1. A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных

Время жизни переменной (глобальной или локальной) определяется по следующим правилам. 1. Переменная, объявленная глобально (т.е. вне всех блоков), существует на протяжении всего времени выполнения программы. 2. Локальные переменные (т.е. объявленные внутри блока) имеют время жизни только на период выполнения того блока, в котором они объявлены. Если локальная переменная объявлена с классом памяти static или extern, то она имеет время жизни на период выполнения всей программы.

Видимость переменных и функций в программе определяется следующими правилами.

1. Переменная, объявленная глобально, видима от точки объявления до конца исходного файла. Можно сделать переменную видимой и в других исходных файлах, для чего в этих файлах следует ее объявить с классом памяти extern.

2. Переменная, объявленная локально, видима от точки объявления до конца текущего блока. Такая переменная называется локальной.

3. Переменные из объемлющих блоков, включая переменные объявленные на глобальном уровне, видимы во внутренних блоках. Эту видимость называют вложенной. Если переменная, объявленная внутри блока, имеет то же имя, что и переменная, объявленная в объемлющем блоке, то это разные переменные, и переменная из объемлющего блока во внутреннем блоке будет невидимой.

4. Функции с классом памяти static видимы только в исходном файле, в котором они определены. Всякие другие функции видимы во всей программе. Метки в функциях видимы на протяжении всей функции. Имена формальных параметров, объявленные в списке параметров прототипа функции, видимы только от точки объявления параметра до конца объявления функции.

 

 

  1. Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода

Начало формы

Конец формы

Все операторы языка СИ могут быть условно разделены на следующие категории: - условные операторы, к которым относятся оператор условия if и оператор выбора switch; - операторы цикла (for,while,do while); - операторы перехода (break, continue, return, goto); - другие операторы (оператор "выражение", пустой оператор).

Операторы в программе могут объединяться в составные операторы с помощью фигурных скобок. Любой оператор в программе может быть помечен меткой, состоящей из имени и следующего за ним двоеточия.

Любое выражение, которое заканчивается точкой с запятой, является оператором. Выполнение оператора выражение заключается в вычислении выражения. Полученное значение выражения никак не используется, поэтому, как правило, такие выражения вызывают побочные эффекты. Заметим, что вызвать функцию, невозвращающую значения можно только при помощи оператора выражения. Правила вычисления выражений были сформулированы выше. Примеры: ++ i;Этот оператор представляет выражение, которое увеличивает значение переменной i на единицу. a=cos(b * 5);Этот оператор представляет выражение, включающее в себя операции присваивания и вызова функции. a(x,y); Этот оператор представляет выражение состоящее из вызова функции.

Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки: { [oбъявление ]: оператор; [оператор];:} Заметим, что в конце составного оператора точка с запятой не ставится. Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов. Пример: int main () { int q,b; double t,d;: if (...) { int e,g; double f,q;:}: return (0);}

If Формат оператора: if (выражение) оператор-1; [else оператор-2;] Выполнение оператора if начинается с вычисления выражения. Далее выполнение осуществляется по следующей схеме: - если выражение истинно (т.е. отлично от 0), то выполняется оператор-1.- если выражение ложно (т.е. равно 0),то выполняется оператор-2. - если выражение ложно и отсутствует оператор-2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор. После выполнения оператора if значение передается на следующий оператор программы, если последовательность выполнения операторов программы не будет принудительно нарушена использованием операторов перехода. Пример: if (i < j) i++:else { j = i-3; i++; }Допускается использование вложенных операторов if. Оператор if может быть включен в конструкцию if или в конструкцию else другого оператора if. Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким if, для которого нет else.

switch Оператор switch предназначен для организации выбора из множества различных вариантов. Формат оператора следующий: switch (выражение) { [объявление]: [ case константное-выражение1]: [ список-операторов1] [ case константное-выражение2]: [ список-операторов2]:: [ default: [ список операторов ]] }

 

 

5. Оператор цикла for - это наиболее общий способ организации цикла. Он имеет следующий формат: for (выражение 1; выражение 2; выражение 3){ тело }

Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом. Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться. Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла. Схема выполнения оператора for: 1. Вычисляется выражение 1 | 2. Вычисляется выражение 2. | 3. Если значения выражения 2 отлично от нуля (истина), выполняется тело цикла, вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for. Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

  1. Операторы цикла while и do … while

Оператор цикла while называется циклом с предусловием и имеет следующий формат: while (выражение) {тело}; В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая: 1. Вычисляется выражение. 2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while. 3. Процесс повторяется с пункта 1.

Оператор цикла do while называется оператором цикла с постусловием и используется в тех случаях, когда необходимо выполнить тело цикла хотя бы один раз. Формат оператора имеет следующий вид: do{ тело }while (выражение);

Схема выполнения оператора do while:1. Выполняется тело цикла (которое может быть составным оператором).2. Вычисляется выражение.3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break. Операторы while и do while могут быть вложенными.

 

 

7. Форматированный ввод-вывод. Форматированный ввод-вывод позволяет за одно обращение к библиотечной функции обрабатывать несколько объектов данных. Запись оператора обращения к стандартной функции форматного консольного вывода имеет вид

printf (“<строка формата>” [,<аргументы>]); где:

строка формата - совокупность необязательных символов, задаваемых программистом, и спецификаций формата преобразования данных;

аргументы - имена объектов, перечисленные через запятую.

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

%[<флаг>][<ширина>][.<точность>]<тип преобразования > где:

<флаг> - символ, устанавливающий форму вывода (“-“ - выравнивание влево, “+” – вывод знака числа и т.д.);

<ширина> - число, устанавливающее максимальную ширину поля вывода;

<точность> - число, устанавливающее максимальное количество позиций после десятичной точки, предназначенных для вывода данных;

тип преобразования - символ, указывающий как должны трактоваться данные, хранящие­ся в памяти компьютера при их выводе на экран.

Используются следующие символы для задания типа преобразования данных при их выводе:

c – вывод одного символа;

d - вывод десятичного целого числа;

f - вывод десятичного вещественного числа в естественной форме представления;

e - вывод десятичного вещественного числа в экспоненциальной форме представления;

s - вывод строки символов.

Три первых элемента записи спецификации формата преобразования в функции printf (флаг, ширина, точность) являются необязательными

Запись оператора обращения к стандартной функции форматного консольного ввода имеет вид

scanf (“<строка формата>” [,<адреса аргументов>]); где:

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

<адреса аргументов> -адреса объектов, перечисленные через запятую.

 

  1. Указатели. Типизированные и нетипизированные.
  1. Работа с файлами. Файловая переменная, открытие, закрытие файла.

Для обработки файлов используют библиотеку ввода-вывода stdio.h. Файловая переменная описывается с помощью типа данных FILE Пример:FILE*fi;

Необходимо определить способо ткрытия, задать местонахождение файла и связать с ним файловую переменную. Функция fopen():FILE*fopen(constchar*filename,constchar*mode); Первый параметр–путь к файлу. Второй параметр –способ открытия файла. FILE*fi; fi=fopen("data.txt","rt"); if(fi==0)//обработка ошибки…

Команда закрытия файла: fclose (имя-файловой-переменной)

 

  1. Чтение и запись в файлы. Функция eof()

 

 

  1. Определение и вызов функций. Фактические и формальные параметры.

Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на СИ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.

 

Определение функции должно располагаться в глобальной области видимости, до начала функции main, могут бы и варианты когда функции описаны в другом файле. Можно перед мэйн функцией описать прототип функции т.е. int kp101 (int, char, int), а где-то после мэйн() описать функцию

int kp101 (int a, char name, int kar)

{

Int c;

Операторы;

Return c;

}

Тип_возвращаемого_значения индификатор_функции (Список аргументов или параметров) { тело}. Формальные параметры – это что мы передаем так сказать из окружающей среды, ну т.е аргументы, а фактические параметры это то некоторые значения используемые во время выполнения функции.

Бля пример) хз поймете меня нетJ и вообще правильно ли отвечаю не знаю!

double summ (double a, double c) { int d; d=a+c; return d;}

int main(){ double opa; double x1,x2; scanf(“%f”, x1); scanf(“%f”, x2); opa=summ(x1,x1); printf(“%f”, opa) getch(); return 0; }



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: