Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Название:Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Автор:
- Жанр:
- Издательство:Вильямс
- Год:0101
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание
Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
4. Идентифицируйте тип и назначение каждой из следующих констант:
5. Кое-кто написал программу с ошибками. Найдите эти ошибки.
include main
{
float g; h; float tax, rate; g = e21; tax = rate*g;
}
Данные в языке C115 6. Идентифицируйте тип данных (но тому, как он используется в операторах объявления) и спецификатор формата printf() для каждой из следующих констант.
7. Определите тип данных (по тому, как он используется в операторах объявления) и спецификатор формата printf() для каждой из следующих констант (предполагая, что тип int является 16-битным).
8. Предположим, что программа начинается со следующих объявлений:
9. Предположим, что ch является переменной типа char. Покажите, как присвоить ей символ возврата каретки, используя управляющую последовательность, десятичное значение, восьмеричную символьную константу и шестнадцатеричную символьную константу. (Предположите, что применяются значения кода ASCII.)
10. Исправьте следующую нелепую программу. (В языке С символом / обозначается операция деления.)
Глава 3
11. Определите, что представляет каждая из следующих управляющих последовательностей:
Упражнения по программированию
1. Экспериментальным путем выясните, как ваша система обрабатывает переполнение при выполнении операций над целыми числами и над числами с плавающей запятой, а также потерю значимости при выполнении операций над числами с плавающей запятой; т.е. напишите программу, в которой присутствуют такие проблемы. (Для получения сведений о наибольших и наименьших значениях просмотрите обсуждение limits.h и float.h в главе 4.)
2. Напишите программу, которая приглашает ввести некоторое значение в коде ASCII, например, 66, а затем выводит символ, которому соответствует введенный код.
3. Напишите программу, которая выдает предупредительный звуковой сигнал, а затем выводит следующий текст:
Напуганная внезапным звуком, Вика вскрикнула:
"Во имя всех звезд, что это было!"
4. Напишите программу, которая считывает число с плавающей запятой и выводит его сначала в десятичном представлении, потом в экспоненциальном представлении и затем в двоично-экспоненциальном представлении, если система его поддерживает. Вывод должен быть представлен в следующем формате (фактическое количество отображаемых цифр показателя степени зависит от системы):
Введите значение с плавающей запятой: 64.25 Запись с фиксированной запятой: 64.250000 Экспоненциальная форма записи: 6.425000е+01 Двоично-экспоненциальное представление: 0xl.dp+6
5. В году содержится примерно 3.156х10 7секунд. Напишите программу, которая предлагает ввести возраст в годах, а затем выводит на экран эквивалентное значение в секундах.
6. Масса одной молекулы воды приблизительно составляет 3.0x10 -23грамм. Кварта воды весит примерно 950 грамм. Напишите программу, которая предлагает ввести значение объема воды в квартах и отображает количество молекул воды в этом объеме.
7. В дюйме имеется 2.54 сантиметра. Напишите программу, которая предлагает ввести рост в дюймах, после чего выводит на экран этот рост в сантиметрах. Либо, если вам так больше нравится, программа может запрашивать рост в сантиметрах и переводить его в дюймы.
8. В американской системе единиц измерений объема пинта равна 2 чашкам, чашка — 8 унциям, унция — 2 столовым ложкам, а столовая ложка — 3 чайным ложкам. Напишите программу, которая предлагает ввести объем в чашках и отображает эквивалентные значения в пинтах, унциях, столовых ложках и чайных ложках. Почему для этой программы тип с плавающей запятой подходит больше, чем целочисленный?
4
Символьные строки и форматированный
ввод-вывод
В ЭТОЙ ГЛАВЕ...
• Функция: strlen()
• Ключевое слово: const
• Символьные строки
• Создание и храпение символьных строк
• Использование функций printf() и scant() для чтения и отображения символьных строк
• Использование функции st rle n() для измерения длины строки
• Использование директивы #define препроцессора С и модификатора const стандарта ANSI С
для создания символических констант
118 Глава 4
В
этой главе основное внимание сосредоточено на вводе и выводе. После изучения всего предлагаемого здесь материала вы сможете придать своим программам индивидуальность, сделав их интерактивными и использующими символьные строки. Кроме того, более подробно рассматриваются две удобные функции ввода-вывода — printf() и scanf(). Эти функции являются программными инструментами для взаимодействия с пользователями и форматирования выходных данных в соответствие с конкретными потребностями и предпочтениями. Наконец, вы вкратце ознакомитесь с таким важным средством языка С, как препроцессор, и узнаете, каким образом опре делять и применять символические константы.
Вводная программа
К этому времени вы, вероятно, уже привыкли, что в начале каждой главы следует ожидать очередной простой учебной программы. Именно такая программа, реализующая диалог с пользователем, представлена в листинге 4.1. Чтобы внести некоторое разнообразие, в ней используется новый стиль комментариев.
Листинг 4.1. Программа talkback.с
Запустив на выполнение программу talkback.с, получаем следующий результат:
Здравствуйте! Как вас зовут?
Кристина
Кристина, сколько вы весите в фунтах?
154
Хорошо, Кристина, ваш объем составляет 2.47 кубических футов.
К тому же ваше имя состоит из 8 букв, и мы располагаем 40 байтами для его сохранения.
Символьные строки и форматированный ввод-вывод 119
Эта программа отличается следующими новыми особенностями.
• В ней применяется массив для хранения символьной строки. Имя пользователя считывается в массив, в этом случае представляющий собой набор из 40 последовательных байтов памяти, каждый из которых способен хранить значение одного символа.
• В рассматриваемой программе для обработки ввода и вывода строки используется спецификатор преобразования %s. Обратите внимание, что с переменной name, в отличие от weight, префикс & не указывается, когда она применяется в вызове функции scanf(). (Позже вы увидите, что как &weight, так и name являются адресами.)
Читать дальшеИнтервал:
Закладка: