Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Резюме

Главной темой этой главы было управление выполнением программы. Язык С предлагает много средств для структурирования программ. Операторы while и for позволяют строить циклы с предусловием. Оператор for особенно хорошо подходит для циклов, в которых производится инициализация и обновление. Инициализировать и обновлять более одной переменной в цикле for можно с помощью операции запятой. Для менее распространенных случаев, когда требуется цикл с постусловием, в языке С предусмотрен оператор do while.

Типичная конструкция цикла while имеет следующий вид:

получить первое значение

while (значение удовлетворяет условию проверки)

{

обработать значение получить следующее значение

}

Цикл for, выполняющий те же действия, выглядит так:

for (получить первое значение; значение удовлетворяет условию проверки;

получить следующее значение) обработать значение

Во всех этих циклах условие проверки служит для выяснения, должна ли выполняться еще одна итерация цикла. В общем случае цикл продолжает работу, если проверочное выражение имеет ненулевое значение, иначе цикл завершается. Часто условием проверки является выражение отношения, которое представляет собой выражение, содержащее операцию отношения. Такое выражение получает значение 1, если отношение истинно, и 0 — во всех остальных случаях. Переменные типа Bool, введенного стандартом С99, могут принимать только значения 1 и 0, обозначающие “истину” и “ложь”.

В дополнение к операциям отношений в главе рассматривались арифметические операции присваивания языка С, такие как += и *=. Эти операции модифицируют значения операнда слева от знака операции, выполняя над ним указанные арифметические операции.

240 глава 6

Следующей темой были массивы. Массив объявляется с применением квадрата скобок для указания количества элементов в нем. Первый элемент произвольного ъ сива имеет номер 0, второй — номер 1 и т.д. Например, объявление

double hippos[20];

создает массив из 20 элементов; отдельные элементы массива получают имена в диа зоне от hippos [0] до hippos [19]. Манипулировать индексами, используемыми , нумерации элементов массива, удобно с помощью циклов. Наконец, в главе было пс зано, как создавать и выполнять функцию с возвращаемым значением.

Вопросы для самоконтроля

Ответы на вопросы для самоконтроля приведены в приложении А.

1. Каким будет значение quack после выполнения каждой строки кода? Каждый последних пяти операторов использует значение quack, сгенерированное пр шествующим оператором.

int quack = 2; quack += 5; quack *= 10; quack -= 6; quack /= 8; quack % = 3;

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

for ( value = 36; value > 0; value /= 2) printf("%3d", value);

Какие проблемы могли бы возникнуть, если бы переменная value имела i double вместо int?

3. Запищите выражение для каждого из следующих условий проверки.

а. х больше 5.

б. Функция scanf() предпринимает неудачную попытку прочитать одно зна ние типа double (по имени х).

в. х имеет значение 5.

4. Запищите выражение для каждого из следующих условий проверки.

а. Функция scanf() успешно читает одно целое число.

б. х не равно 5.

в. х равно 20 или больше.

5. Приведенная ниже программа не идеальна. Какие ошибки вы можете найти?

#include int main(void)

картинка 179{

int i, j, list(10); for (1 = 1, i <= 10, i++)

{

list [i] = 2*i + 3; for (j = 1, j > = i, j++) printf(" %d", list[j]); printf("\n");

}

Управляющие операторы С: циклы 241

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

$$$$$$$$

$$$$$$$$

$$$$$$$$

$$$$$$$$

7. Что выведет каждая из следующих программ?

#include int main(void)

{

int i = 0;

while (++i < 4)

printf("Hi ! ");

do

printf("Bye! "); while (i++< 8); return 0;

}

#include

int main(void)

{

int i; char ch;

for (i = 0, ch = 'A'; i < 4; i++, ch += 2 * i) printf("%c", ch); return 0;

}

8. Что выведут приведенные далее программы в случае ввода Go west, young man! ? (В кодировке ASCII символ ! следует за символом пробела.)

#include int main(void)

{

char ch;

scanf("%c", &ch); while ( ch != 'g')

{

printf("%c", ch); scanf("%c", &ch);

}

return 0;

}

#include int main(void)

{

char ch;

scanf("%c", &ch); while ( ch != 'g')

{

242 глава 6

printf ("%c",++ch); scanf("%c", &ch);

}

return 0;

}

#include int main(void)

{

char ch; do {

scanf("%c", &ch); printf("%c", ch);

} while ( ch != 'g'); return 0;

}

#include int main(void)

{

char ch;

scanf("%c", &ch);

for ( ch = ch != 'g'; scanf("%c", &ch))

printf("%c", ch); return 0;

)

9. Что выведет следующая программа?

#include int main(void)

{

int n, m; n = 30;

while (++n <= 33) printf("%d|",n); n = 30;

do

printf("%d|",n); while (++n <= 33);

printf("\n***\n");

for (n = 1; n*n < 200; n += 4) printf("%d\n", n);

printf("\n***\n");

for (n = 2, m = 6; n < m; n *= 2, m+= 2) printf("%d %d\n", n, m);

printf("\n***\n"); for (n = 5; n > 0; n--)

{

for (m = 0; m <= n; m++) printf("="); printf("\n");

}

return 0;

}

Управляющие операторы С: циклы 243

10. Взгляните на следующее объявление: double mint[10];

а. Какое имя назначено массиву?

б. Сколько элементов в массиве?

в. Какие виды значений могут храниться в каждом элементе массива?

г. Что из перечисленного ниже является корректным использованием функции scanf() с этим массивом?

• scanf("%lf", mint [2])

• scanf("%lf", &mint[2])

• scanf("%lf", &mint)

11. Кое-кому нравится считать двойками, поэтому он написал программу, которая создает массив и заполняет его четными числами 2, 4, 6, 8 и т.д. Есть ли ошибки в этой программе?

#include

#define SIZE 8 int main(void)

{

int by_twos[SIZE]; int index;

for (index = 1; index <= SIZE; index++) by_twos[index] = 2 * index; for (index = 1; index <= SIZE; index++) printf("%d ", by_twos); printf("\n"); return 0;

}

12. Вы хотите написать функцию, которая возвращает значение типа long. Что должно включать определение этой функции?

13. Определите функцию, которая принимает аргумент типа int и возвращает результат его возведения в квадрат как значение типа long.

14. Что выведет следующая программа?

#include int main(void)

{

int k;

for(k= 1, printf! "%d: Hi ! \ n", k); printf("k= %d\n", k) , k*k < 26; k+=2, printf ("Now k is %d\n", k) ) printf ("k is %d in the loopin\n", k); return 0;

}

Упражнения по программированию

1. Напишите программу, которая создает массив из 26 элементов и помещает в него 26 строчных букв английского алфавита. Также предусмотрите вывод содержимого этого массива.

244 Глава 6

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

$

$$

$$$

$$$$

$$$$$

3. Воспользуйтесь вложенными циклами, чтобы написать программу, которая выводит следующую последовательность символов:

F

FE

FED

FEDC

FEDCB

FEDCBA

Примечание: если в вашей системе не используется ASCII или какая-то другая кодировка, в которой буквы представлены в числовом порядке, то для инициализации символьного массива буквами алфавита вы можете применять следующее объявление:

char lets[27] = "ABODEFGHIJKLMNOPQRSTUVWXYZ";

Затем для выбора конкретных букв можно использовать индексы массива, например, lets [0] для 'А' и т.д.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

Стивен Прата - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x