Упражнение 1.9. Напишите программу для копирования входного потока в выходной с заменой каждой строки, состоящей из одного или нескольких пробелов, одним пробелом.
/* замена нескольких пробелов одним пробелом */
#include "stdafx.h"
int main()
{
int c;
int nspace = 0; // пробелы
while ((c = getchar()) != EOF) {
/* если c - пробел, увеличиваем счетчик пробелов на 1 */
if(c == ' ')
++nspace;
/* если число пробелов больше одного, затираем один символ и уменьшаем счетчик пробелов на 1 */
if
...
Читать дальше »
|
Упражнение 1.8. Напишите программу для подсчета пробелов, знаков табуляций и символов конца строки.
/* подсчет пробелов, знаков табуляции и символов новой строки */
#include "stdafx.h"
int main()
{
int c;
int nspace = 0, ntab = 0, nline = 0; // пробелы, знаки табуляции, символы новой строки
while ((c = getchar()) != EOF) {
if(c == ' ')
++nspace;
if(c == '\t')
++ntab;
if(c == '\n')
++nline;
...
Читать дальше »
|
Упражнение 1.7. Напишите программу для вывода константы EOF.
Элементарное задание, элементарная программа:
/* Программа для вывода значения константы EOF */
#include "stdafx.h"
int main()
{
printf("EOF = %d", EOF);
}
Результат выполнения:
Получили значение константы EOF = -1.
|
Упражнение 1.6. Проверьте, что выражение getchar() != EOF действительно равно 1 или 0.
Присваеваем c значение выражения getchar() != EOF, получаем программу:
/* Программа для проверки значения выражения getchar() != EOF */
#include "stdafx.h"
int main()
{
int c;
c = getchar() != EOF;
printf("%d", c);
}
Результат выполнения:
Видим что выражение getchar() != EOF действительно равно 1.
|
Упражнение 1.5. Доработайте программу преобразования температур так, чтобы она выводила таблицу в обратном порядке, т.е. от 300 градусов до нуля.
Дорабатываем, теперь температура у нас не прибавляется, как в книге, а вычитается. Ну и меняем инструкцию инициализации и условие выполнения.
/* вывод таблицы температур по Фарингейту и Цельсию с использованием оператора for*/
#include "stdafx.h"
int main()
{
double fahr; // температура по Фарингейту
printf("Temperature Conversion Table\n\n");
printf(" Fahrenheit \t Celsius\n\n"); // выводим заголовок
for (fahr = 300; fahr >= 0; fahr -= 20)
printf
...
Читать дальше »
|
Упражнение 1.4. Напишите программу для перевода температуры по Цельсию в шкалу Фаренгейта и вывода соответствующей таблицы.
Делаем:
/* вывод таблицы температур по Цельсию и Фарингейту */
#include "stdafx.h"
int main()
{
double fahr, celsius; // температура по Фарингейту и Цельсию
int lower, upper, step;
lower=0; // нижняя граница температур
upper=300; // верхняя граница температур
step=20; // величина шага
celsius=lower; // задаем начальное значение темературы по Цельсию
printf("Temperature Conversion Table\n\n");
printf(
...
Читать дальше »
|
Упражнение 1.3. Модифицируйте программу преобразования температур так, чтобы она выводила заголовок над таблицей.
Модифицируем:
/* вывод таблицы температур по Фарингейту и Цельсию */
#include "stdafx.h"
int main()
{
double fahr, celsius; // температура по Фарингейту и Цельсию
int lower, upper, step;
lower=0; // нижняя граница температур
upper=300; // верхняя граница температур
step=20; // величина шага
fahr=lower; // задаем начальное значение темературы по Фаренгейту
printf("Temperature Conversion Table\n\n");
printf(" F
...
Читать дальше »
|
Упражнение 1.2. Попытайтесь выяснить экспериментально, что происходит при передаче в функцию printf строки, содержащей управляющую последовательность \c, где c - некий символ, не входящий в вышеперечисленные комбинации.
Программа та же, вышеперечисленные комбинации в учебнике. Подставляем:
\a
Результат на экране не меняется, но спикер вашего компьютера издаст короткий сигнал.
\с Ничего интересного, просто буква с после приветствия.
\d, \e - то же, что и \c
\f Получили закорючку.
Дальнейшие эксперименты я собрал в таблицу, которую можно посмотреть
...
Читать дальше »
|
Упражнение 1.1. Запустите программу "hello, world" на выполнение в вашей системе. Поэкспериментируйте с ней, выбрасывая определенные фрагменты программы и наблюдая за сообщениями об ошибках, которые будут появляться в связи с этим.
Здесь все понятно. Вот программа:
/* Первая программа на C */
#include "stdafx.h" // включение информации о стандартной библиотеке
int main() // определение функции main без аргументов
{
printf("Hello, World!\n"); // библиотечная функция printf выводит строку
}
Результат выполнения:
Что-нибудь убрали, поглазели на ошибки, вернули, убрали что-нибуд
...
Читать дальше »
|
Доброго всем времени суток. Сегодня начал читать книгу Брайан Керниган и Деннис Ритчи "Язык программирования C". По мере продвижения в дебри изучения буду выкладывать здесь, выполненные мной, упражнения из этой книги. Надеюсь, кому-нибудь пригодится ;)
Купить книгу можно здесь.
Скачать книгу можно тут.
Все программы написаны и протестированы в Microsoft Visual Studio 2008.
|
|