Читаем Программирование. Принципы и практика использования C++ Исправленное издание полностью

5. Почему язык С++ (почти) совместим с языком C?

6. Почему язык C++ только почти совместим с языком C?

7. Перечислите десять особенностей языка C++, отсутствующих в языке C.

8. Какой организации “принадлежат” языки C и C++?

9. Перечислите шесть компонентов стандартной библиотеки языка C++, которые не используются в языке C.

10. Какие компоненты стандартной библиотеки языка C можно использовать в языке C++?

11. Как обеспечить проверку типов аргументов функций в языке C?

12. Какие свойства языка C++, связанные с функциями, отсутствуют в языке C? Назовите по крайней мере три из них. Приведите примеры.

13. Как вызвать функцию, написанную на языке C, в программе, написанной на языке C++?

14. Как вызвать функцию, написанную на языке C++, в программе, написанной на языке C?

15. Какие типы совместимы в языках C и C++? Приведите примеры.

16. Что такое дескриптор структуры?

17. Перечислите двадцать ключевых слов языка C++, которые не являются ключевыми словами языка C.

18. Является ли инструкция int x; определением в языке C++? А в языке C?

19. В чем заключается приведение в стиле языка С и чем оно опасно?

20. Что собой представляет тип void* и чем он отличается в языках C и C++?

21. Чем отличаются перечисления в языках C и C++?

22. Что надо сделать в программе на языке C, чтобы избежать проблем, связанных с совпадением широко распространенных имен?

23. Назовите три наиболее широко используемые функции для работы со свободной памятью в языке C.

24. Как выглядит определение в стиле языка С?

25. Чем отличаются оператор == и функция strcmp() для С-строк?

26. Как скопировать С-строки?

27. Как определить длину С-строки?

28. Как скопировать большой массив целых чисел типа int?

29. Назовите преимущества и недостатки функции printf().

30. Почему никогда не следует использовать функцию gets()? Что следует использовать вместо нее?

31. Как открыть файл для чтения в программе на языке C?

32. В чем заключается разница между константами (const) в языке C и C++?

33. Почему мы не любим макросы?

34. Как обычно используются макросы?

35. Что такое “страж включения”?

Термины

Упражнения

Для этих упражнений может оказаться полезным скомпилировать все программы с помощью компиляторов и языка C, и языка C++. Если использовать только компилятор языка C++, можно случайно использовать свойства, которых нет в языке C. Если вы используете только компилятор языка C, то ошибки, связанные с типами, могут остаться незамеченными

1. Реализуйте варианты функций strlen(), strcmp() и strcpy().

2. Завершите пример с интрузивным контейнером List из раздела 27.9 и протестируйте каждую его функцию.

3. Усовершенствуйте пример с интрузивным контейнером List из раздела 27.9 по своему усмотрению. Предусмотрите перехват и обработку как можно большего количества ошибок. При этом можно изменять детали определений структур, использовать макросы и т.д.

4. Если вы еще на переписали пример с интрузивным контейнером List из раздела 27.9 на языке C++, сделайте это и протестируйте каждую функцию.

5. Сравните результаты упр. 3 и 4.

6. Измените представление структур Link и List из раздела 27.9 без изменения интерфейса пользователя, обеспеченного функциями. Разместите узлы в массивах и предусмотрите члены first, last, pre, и suc типа int (индексы массива).

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

8. Какой лексикографический порядок принят на вашем компьютере? Выведите на печать каждый символ вашей клавиатуры и ее целочисленный код; затем выведите на печать символы в порядке, определенном их целочисленными кодами.

9. Используя только средства языка C, включая его стандартную библиотеку, прочитайте последовательность слов из потока stdin и выведите ее в поток stdout в лексикографическом порядке. Подсказка: функция сортировки в языке C называется qsort(); найдите ее описание. В качестве альтернативы вставляйте слова в упорядоченный список по мере его считывания. В стандартной библиотеке языка C списка нет.

10. Составьте список свойств языка C, заимствованных у языков C++ или C with Classes (раздел 27.1).

11. Составьте список свойств языка C, не заимствованных у языка C++.

12. Реализуйте (либо с помощью С-строк, либо с помощью типа int) таблицу поиска с операциями find(struct table*, const char*), insert(struct table*, const char*, int) и remove(struct table*, const char*). Эту таблицу можно представить в виде массива пар структур или пар массивов (const char*[] и int*); выбирайте сами. Выберите типы возвращаемых значений для ваших функций. Документируйте ваши проектные решения.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных