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

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

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

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

6. Отличие между двоичным и текстовым файлами определяется системнозависимыми особенностями этих файловых форматов. Отличие между двоичным и текстовым потоками связано с преобразованиями, выполняемыми программой во время чтения или записи потоков. (В двоичном потоке преобразования не делаются; в текстовом потоке могут осуществляться преобразования символов новой строки и других символов.)

7. а. Сохранение числа 8238201 с помощью функции fprintf() приводит к его со

хранению в виде семи символов, занимающих 7 байтов. При использовании функции fwrite() число сохраняется в виде двоичного представления 4-байтового целого числового значения.

б. Ни в чем. В обоих случаях символ сохраняется в виде 1-байтового двоичного кода.

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

820 Приложение А

9. Режим "г+ " позволяет выполнять чтение и запись в любом месте файла, поэтому он наиболее подходит в данном случае. Режим "а+ " позволяет только дописывать данные в конец файла, а режим "w+" начинает работу с “чистого листа”, удаляя предыдущее содержимое файла.

Ответы на вопросы для самоконтроля из главы 14

1. Правильным ключевым словом является struct, а не structure. Шаблон требует наличия либо дескриптора перед открывающей скобкой, либо имени переменной после закрывающей скобки. Кроме того, символ точки с запятой должен присутствовать после выражения * togs и в конце шаблона.

2. Вывод имеет следующий вид:

6 1

22 Spiffo Road S р

3. struct month {

char name[10]; char abbrev[4]; int days; int monumb;

};

5 extern struct month months 11 int daysint month int index total if - фото 614

5. extern struct month months 11; int days(int month)

{

int index, total; if (month <111 month > 12)

return(-l); /* сигнал ошибки */ else

{

for (index = 0, total = 0; index < month; index ++) total += months[index].days; return(total);

}

}

Ответы на вопросы для самоконтроля 821

картинка 615

ный файл string.h:

typedef struct lens ( /* дескриптор структуры lens */

float foclen; /* фокусное расстояние в миллиметрах */

float fstop; /* диафрагма */

char brand[30]; /* марка производителя */

} LENS;

LENS bigEye [10];

bigEye[2].foclen = 500;

bigEye[2].fstop = 2.0;

strcpy(bigEye[2].brand, "Remarkatar");

6. LENS bigEye[10] = { [2] = {500, 2, "Remarkatar") };

7. a. 6

Arcturan cturan

б. Для этого можно использовать имя структуры и указатель:

deb.title.last pb->title.last

в. Одна из возможных версий выглядит так:

#include

#include "starfolk.h" /* обеспечение доступности определений структуры*/ void prbem (const struct bem * pbem)

{

printf("%s %s - это %d-конечный %s.\n", pbem->title.hrst,

pbem->title.last, pbem->limbs, pbem->type);

}

8. a. willie.born

б. pt->born

в. scanf("%d", &willie.born); r. scanf ("%d", &pt->born);

д. scanf("%s", willie.name.lname);

е. scanf("%s", pt->name.lname);

ж. willie.name.fname [2]

з. strlen(willie.name.fname) + strlen(willie.name.lname)

9. Один из возможных вариантов имеет вид:

struct car {

char name[20]; float hp; float epampg; float wbase; int year;

};

822 Приложение А

10. Функции можно было бы реализовать следующим образом:

struct gas {

float distance; float gals; float mpg;

};

struct gas mpgs(struct gas trip)

{

if (trip.gals > 0)

trip.mpg = trip.distance / trip.gals; else

trip.mpg = -1.0; return trip;

}

void set_mpgs(struct gas * ptrip)

{

if (ptrip->gals > 0)

ptrip->mpg = ptrip->distance / ptrip->gals; else

ptrip->mpg = -1.0;

}

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

struct gas idaho = {430.0, 14.8}; // установка значений двух первых членов idaho = mpgs(idaho); // переустановка структуры

Однако вторая функция обращается к исходной структуре непосредственно:

struct gas Ohio = {583, 17.6}; // установка значений двух первых членов

set_mpgs(ohio); // установка значения третьего члена

11. enum choices {no, yes, maybe};

12. char * (*pfun)(char *, char);

13. double sum(double, double); double diff(double, double); double times(double, double); double divide(double, double);

double (*pf1[4]) (double, double) = {sum, diff, times, divide};

Чтобы упростить код, последнюю строку можно заменить следующими двумя строками:

typedef double (*ptype)(double, double); ptype pf[4] = {sum, diff, times, divide};

Функция diff() вызывается следующим образом:

pfl[l](10.0, 2.5); // первая форма записи

(*рf1[1]) (10.0, 2.5); // эквивалентная форма записи

Ответы на вопросы для самоконтроля 823

Ответы на вопросы для самоконтроля из главы 15

1. а. 00000011

б. 00001101

в. 00111011

г. 01110111

2. а. 21,025,0x15

б. 85, 0125, 0x55

в. 76, 0114, 0х4С

г. 157,0235,0x91)

3. а. 252

б. 2

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

Интервал:

Закладка:

Сделать

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

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x