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

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

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

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

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

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

Интервал:

Закладка:

Сделать

10. Первая версия возвращает значение х*х. При этом просто возвращается значение типа double квадратах. Например, square (1.3) возвратит 1.69. Вторая версия возвращает (int) (х*х). Здесь результат усекается до типа int. Из-за того, что возвращаемым типом является double, значение int затем повышается до double. Таким образом, 1.69 сначала преобразуется в 1, после чего — в 1.00. Третья версия возвращает (int) (х*х+0.5). Добавление 0.5 приводит к округлению до ближайшего целого числа вместо его усечения. Следовательно, 1.69 становится 2.19, которое усекается до 2 и затем преобразуется в 2.00. Но 1.44 становится 1.94, что усекается до 1 и после этого преобразуется в 1.00.

11. Вот одна из возможных версий:

#define BOOL(X) _Generic((X) , _Bool : "boolean", default : "not boolean")

12. Аргумент argv должен быть объявлен с типом char *argv[]. Аргументы командной строки хранятся в виде строк, поэтому сначала программа должна преобразовать строку, хранящуюся в элементе массива argv[l], в значение типа double — например, с помощью функции atof() из библиотеки stdlib.h. Чтобы можно было использовать функцию sqrt(), в программу потребуется включить заголовочный файл math.h. Прежде чем извлекать квадратный корень, программа должна выполнить проверку на предмет передачи отрицательных значений.

13. а. Вызов функции должен выглядеть следующим образом:

qsort( (void *)scores, (size t) 1000, sizeof (double), comp);

б. Ниже показано подходящее определение функции сравнения:

int comp(const void * p1, const void * p2)

{

/* Для получения доступа к значениям необходимо */

/* использовать указатели на константу int */

/* Приведения типов не обязательны в С, */

/* но обязательны в C++ */

const int * al = (const int *) p1; const int * a2 = (const int *) p2;

if (*al > * a 2) return -1;

else if (*al = *a2) return 0; else

return 1;

}

14. а. Вызов функции должен выглядеть примерно так:

memcpy(datal, data2, 100 * sizeof(double));

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

memcpy(datal, data2 + 200 , 100 * sizeof(double));

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

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

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

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

3. ADT — аббревиатура от abstract data type (абстрактный тип данных). ADT представляет собой формальное определение свойств типа и операций, которые можно выполнять с этим типом. ADT должен быть выражен в обобщенных терминах, а не терминах какого-то конкретного языка программирования или деталей реализации.

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

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

Преимущества передачи адреса переменной. Если переменная является крупной структурой, то передача адреса и доступ к исходным данным выполняются быстрее и требуют меньшего объема памяти, чем при передаче переменной напрямую. Недостатки передачи адреса переменной. Необходимо помнить о применении операции взятия адреса или указателя. В K&R С функция могла бы неумышленно изменить исходные данные, но этой опасности можно избежать, используя спецификатор const стандарта ANSI С.

5. а.

Имя типа: Стек.

Свойства типа: Может содержать упорядоченную последовательностъ элементов. Операции типа: Инициализация стека пустым значением.

Определение, является ли стек пустым.

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

Добавление элемента в верхушку стека (заталкивание элемента)

Удаление и восстановление элемента из верхушки стека (выталкивание элемента).

Б Справочные материалы этой части книги предоставлен итоговый перечень базовых - фото 616

Б Справочные материалы этой части книги предоставлен итоговый перечень базовых - фото 617 Б Справочные материалы этой части книги предоставлен итоговый перечень базовых - фото 618

Б

Справочные

материалы

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

• Раздел I. Дополнительные ис точники информации

• Раздел II. Операции в языке C

• Раздел III. Базовые типы и классы хранения

• Раздел IV Выражения, операторы и поток управления программы

• Раздел V. Стандартная библиотека ANSI C с дополнениями С99 и Cl1

• Раздел VI. Расширенные целочисленные типы

• Раздел VII. Расширенная поддержка символов

• Раздел VIII. Расширенные вычислительные средства С99/С11

• Раздел IX. Отличия между С и C++

830 Приложение Б

Раздел I. Дополнительные источники информации

Если вы хотите узнать больше о языке С и программировании, вам будут полезны следующие ссылки.

Онлайновые ресурсы

Программисты на С помогали создавать Интернет, и теперь Интернет может помочь вам в изучении С. Интернет постоянно растет и изменяется; перечисленные ниже ресурсы — это пример того, что доступно на время написания книги. Разумеется, вы можете найти и другие онлайновые ресурсы.

В качестве возможного места старта, если у вас есть специфические вопросы о С, или же вы хотите расширить свои знания, обратитесь на сайт С FAQ (Frequently Asked Questions — часто задаваемые вопросы):

c-faq.com

Тем не менее, на указанном сайте раскрываются главным образом аспекты языка только до версии С89.

Если у вас есть вопросы по библиотеке С, то соответствующую информацию можно найти на следующем сайте:

www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html

По приведенному ниже адресу предлагается всестороннее обсуждение указателей:

pweb.netcom.com/~tjensen/ptr/pointeB.htm

Можете также использовать поисковые механизмы, чтобы найти статьи и сайты интересующей тематики:

www.google.com

search.yahoo.com

www.bing.com

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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