Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_cpp.doc
Скачиваний:
10
Добавлен:
07.06.2015
Размер:
2.81 Mб
Скачать

Контрольные вопросы для подготовки и самостоятельной работы

  1. Что означают символы: ’\r’, ’\f ’, ’\b’, ’\a’, ’\n’, ’\\’, ’\’’ ’, ’\’ ’, ’\000’, ’\0x00’, ’\0x0a’, ’\0x5c’?

  2. Какие переменные относятся к скалярным, арифметическим, составным, символьным ?

  3. Почему в строке ’’c:\\bc\\test\\f.c’’ знак \ повторяется два раза ?

  4. Что означает ключевое слово signed ?

  5. Что означает ключевое слово #define, для чего используется ?

  6. Что означает ключевое слово const, для чего используется ?

  7. Что означает ключевое слово typedef, для чего используется?

  8. Что означает ключевое слово #include, для чего используется ?

  9. Правильно ли выражение #include ’’c:\bc\test\my.h’’?

  10. Что означают записи: 1254L, 34l, 0xf9ac, 0875, 76678UL ?

  11. Какой размер в байтах имеют базовые типы Си ?

  12. Где можно объявить переменную? Какой тип имеет переменная по умолчанию?

  13. Что означает множественное объявление переменных ?

  14. Как определить размер типа в байтах ?

  15. Происходит ли инициализация переменной по умолчанию? В каких случаях?

  16. Назовите класс памяти переменной по умолчанию. Зависит ли он от места объявления?

Лабораторная работа №4 Разработка программ с циклическими вычислительными процессами

(2 часа)

Цель работы: Изучить написание программ на языке С, используя итерационные (циклические) методы, освоить основные операторы, поддерживающие работу с циклами (for, while, do... while). Научиться писать программы, используя данные операторы.

Теоретические сведения

Каждый оператор С заканчивается оператором (;), который является пустым оператором. Циклы или итерационные процедуры позволяют выполнять отдельные операторы или блоки операторов (составные операторы {…}). Число повторов определяется выражением в скобках, значение которого сравнивается с (-прекращение цикла). Циклы бывают с проверкой значения выражения перед началом выполнения тела цикла (с предусловием), по окончанию выполнения тела (с постусловием) или внутри тела цикла. В С определено три вида операторов цикла: оператор цикла с предусловием - while, оператор цикла с постусловием do... while и оператор цикла for. Рассмотрим эти операторы детально:

Цикл while имеет следующий формат:

while (<выражение>) <оператор>

Условие выполнения итерации в цикле while предварительно проверяется и в случае истинности выражения (не равно ) выполняются те операторы, которые описаны в теле цикла. В противном случае цикл заканчивается, и программа продолжает свое выполнение с того места, где закончилось тело цикла. Если тело цикла содержит несколько операторов, оно ограничивается операторными скобками: "{" и "}" и является составным оператором.

Прервать выполнение цикла можно, используя операторы break, goto, return. Ниже продемонстрировано два примера работы с циклом while в виде фрагментов программ.

Первый пример демонстрирует применение операторов while и break, перекрывающего цикл. Второй пример показывает использование цикла while для проверки ответа, который вводится с клавиатуры.

Пример 1

Пример 2

int i=10,k,s =;

printf ("ввести шаг приращения к: "); scanf("%i",&k );

while (i) //выполнять цикл, пока i не

// равно

{ s+=k; // увеличить s на k

i- - ; // уменьшить i на 1

if (i=k) break; //выйти, если выполнится

// условие: i=k

}...

...

char ch =’a’;

do // начать цикл do while

{ printf("\n Отвечайте yes или no (y/n):");

scanf(ch!=’y’ &&ch!= 'n'); // выполнять

цикл до тех пор, пока не будет нажата

// буква ‘y’ или ‘n’

Оператор цикла do while() является циклом с постусловием. В этом случае тело цикла всегда выполнится хотя бы один раз.

Формат оператора цикла следующий:

do <оператор>

while(<выражение>);

Телом цикла может являться один или несколько операторов (составной оператор). Ниже приведены аналогичные примеры реализации цикла с постусловием.

Пример 1

Пример 2

int i=10, k, s=;

printf ("ввести шаг приращения к: "); scanf("%i", &k);

do // начать цикл do while

{ s+=k; //увеличить s на k

i-- ; //уменьшить i

if (i=k) break; //выйти, если // выполнится условие: i= =k

while (i); // выполнять цикл, пока i // не равно

char ch;

do //начать цикл do while

printf ("\n Отвечайте yes или no (y/n):");

scanf("%c",&ch);

while (ch!='y' && ch!='n'); // выполнять //цикл до тех пор, пока не будет нажата //буква 'y' или 'n'

Оператор цикла for является наиболее удобным и мощным средством организации циклических вычислений в С.

Формат цикла for:

for([<выражение1>];[<выражение2>];[<выражение3>]) <оператор>

где : <выражение1> - производит инициализацию тех переменных, которые будут непосредственно изменяться в цикле, в частности, задаётся начальное значение переменной-счётчика

<выражение2> - определяет условие выхода из цикла. При равенстве его значения цикл прерывается;

ыражение3> - это выражение задает изменение на каждом шаге переменных, проинициализированных в <выражении1>. Можно задавать также изменение других переменных, не связанных с <выражением1>.

Каждое из описанных выражений может отсутствовать. Оператор цикла for, заданный как for(;;){<тело_цикла>}, является бесконечным циклом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]